bob*_*obo 4 windows cpu multithreading
我想在一台机器上运行一批20个CPU密集型comps(基本上很长时间嵌套for循环).
这20个工作中的每一个都不与其他工作共享数据19.
如果机器有N个核心,那么我应该将这些工作中的N-1分开吗?还是N?或者我应该只启动所有20,并让Windows弄清楚如何安排它们?
不幸的是,没有简单的答案.确切知道的唯一方法是实现然后分析您的应用程序.
通常,为了获得最大吞吐量,如果作业是纯CPU,则每个核心需要一个.根据工作类型,这将包括每个超线程代码一个或每个"真正的物理核心"一个.(如果所有20个工作的工作相同,那么超线程通常会减慢整体工作......)
如果作业具有任何非CPU功能(例如读取文件,等待任何事情等),那么每个核心> 1个工作项往往要好得多.在许多情况下,这将会改善.
| 归档时间: |
|
| 查看次数: |
192 次 |
| 最近记录: |