增加的 CPU 时间(如time
CLI 命令所报告的)是否表明使用超线程时效率低下(例如花费在自旋锁或缓存未命中的时间),或者 CPU 时间是否可能因 HT 的奇怪性质而膨胀?(例如,真正的核心很忙,HT 无法启动)
我有四核 i7,我正在测试OpenMP 程序的可并行化部分(图像到调色板的重新映射) ——没有锁,没有关键部分。所有线程都访问一些只读共享内存(查找表),但只写入自己的内存。
cores real CPU
1: 5.8 5.8
2: 3.7 5.9
3: 3.1 6.1
4: 2.9 6.8
5: 2.8 7.6
6: 2.7 8.2
7: 2.6 9.0
8: 2.5 9.7
我担心当核心数量超过 1 或 2 时,使用的 CPU 时间量会迅速增加。
我想在理想情况下,CPU 时间不会增加太多(相同数量的工作只是分布在多个内核上)。
这是否意味着有 40% 的开销用于并行化程序?