我使用的是带有4核和4线程的Intel i5处理器。目前我正在使用pthreads和ISPC(英特尔SPMD程序编译器)模拟mandelbrot集。当我使用两个线程来计算mandelbrot设置图像时,基于任务划分,即图像的空间分解,我看到1.9倍的速度,当我使用3个线程时,我看到1.65倍速度和4个线程加速饱和到2.4倍。由于i5有4个线程,因此预计程序中有足够的并行性(使用pthread)可以加速4倍。为什么使用3个线程时速度会下降?我没有看到预期加速的原因是什么?在mandelbrot的情况下,有什么方法可以通过充足的并行性来提高速度?
注意:我使用gcc编译pthreads作为API。该划分基于图像的空间分解。我没有使用任何锁或信号量。
mandelbrot的wiki链接 http://en.wikipedia.org/wiki/Mandelbrot_set
ISPC文件的github链接 http://ispc.github.io/
如果您发现问题无关紧要,请将我重定向到合适的来源。谢谢您的时间。