【发布时间】:2013-10-21 16:16:31
【问题描述】:
在我的 OPENMP 代码中,我希望所有线程都执行相同的工作,最后取平均值(基本上是计算错误)。 (我如何计算误差?每个线程生成不同的随机数,因此每个线程的结果是不同的。)
这是简单的代码
program ...
..
!$OMP PARALLEL
do i=1,Nstep
!.... some code goes here
result=...
end do
!$END PARALLEL
sum = result(from thread 0)+result(from thread 1)+...
sum = sum/(number of threads)
我必须将 OPENMP 中的 do 循环发送到所有线程,而不是阻塞这个循环。 我可以使用 MPI 和 MPI_reduce 做我想做的事,但我想编写一个混合代码 OPENMP + MPI。我还没有弄清楚 OPENMP 部分,请大家给点建议?
【问题讨论】:
标签: multithreading openmp