并行作业性能

问题描述:

我使用time来构建make版本,我注意到有-j 8-j 4慢几毫秒。我正在使用英特尔Core2 Quad上的gcc进行编译,因此只有四个处理器内核。这种放缓可能是由于资源限制,无论make用于安排工作是否增加了一些开销?并行作业性能

如果您有比处理器更多的进程运行,那么操作系统将需要一些context switching。这不是make的问题;只是在资源不足的情况下如何安排工作。

老实说,我会考虑几个milli的差异 - 可能只是统计噪音。多次运行测试,并在假设差异显着之前查看差异是否可重复。这就是说,在4个CPU上运行8个CPU绑定进程通常会比运行两组4个进程承担更多的多任务开销。如果make过程涉及很多I/O(通常它会这样做),那么当其他进程在I/O上停滞时,运行超过4个(例如5或6个)来填充CPU队列会有一些好处,但是8可能是矫枉过正。