在openmp中的Mandelbrot优化

时间:2015-04-23 09:51:10

标签: parallel-processing openmp mandelbrot

我必须在C中对mandelbrot程序进行并列化。我认为我已经做得很好而且我无法获得更好的时间。我的问题是,如果某人有想法改进代码,我一直在思考外部和内部之间的嵌套并行区域...

此外,我怀疑它是否更优雅或建议将所有pragma放在一行中或编写单独的pragma(一个用于omp并行和共享和私有变量和一个条件,另一个pragma用omp for和schedule dynamic )。

我是否怀疑常量是否可以用作私有变量,因为我认为使用常量而不是定义变量更为清晰。

我也写了一个条件(如果是numcpu> 1),没有意义使用并行区域并进行正常的顺序执行。

最后,因为我已经阅读了动态块,它取决于硬件和你的系统配置...所以我把它作为一个常量,所以它可以很容易地改变。

此外,我还将线程数量调整为可用的处理器数量。

 XMLHttpRequest cannot load http://host/training_webapi The request was redirected to 'http:host/training_webapi/', which is disallowed for cross-origin requests that require preflight.

1 个答案:

答案 0 :(得分:0)

您可以扩展实施以利用SIMD扩展。据我所知,最新的OpenMP标准包括矢量结构。查看描述新功能的this article

这个whitepaper解释了在计算Mandelbrot集时如何使用SSE3。