现代计算机的内核越来越多。我们想改变我们当前的线性算法来使用这些核心。
只有在有空闲处理器的情况下,拆分任何算法以使用不同的线程才有意义。
如果有免费处理器,是否有任何好的库可以帮助并行化某些步骤?
我会举一些例子。
- 如果只有一个处理器,那么创建多个线程是没有意义的。它会降低速度。
- 如果在一个核心二重奏上运行 2 个进程(服务器上的请求),那么启动线程也是没有意义的。
- 如果核心二重奏上只有一个进程,那是有道理的。
抽象算法有 4 个步骤 A、B、C 和 D。步骤 A、B 和 C 可以并行执行。步骤 D 需要来自 A、B 和 C 的结果。
编辑:我的意思是一个数学算法。无 IO,无事件等