【发布时间】:2014-12-10 19:38:41
【问题描述】:
我已经在这个网站上看到several posts 谈论这个问题。但是,我认为我的严重代码由于创建线程而产生的开销不应该是一个大问题,现在使用 open mp 变得更慢了!我正在使用带有 gfortran 4.6.3 的四核机器作为我的编译器。下面是一个测试代码的例子。
Program test
use omp_lib
integer*8 i,j,k,l
!$omp parallel
!$omp do
do i = 1,20000
do j = 1, 1000
do k = 1, 1000
l = i
enddo
enddo
enddo
!$omp end do nowait
!$omp end parallel
End program test
如果我在没有打开 mp 的情况下运行此代码大约需要 80 秒,但是使用打开 mp 大约需要 150 秒。我在串行模式下运行时间约为 5 分钟左右的其他严重代码也遇到了同样的问题。在这些代码中,我注意线程之间没有依赖关系。那么为什么这些代码应该变得更慢而不是更快呢?
提前致谢。
【问题讨论】:
标签: multithreading parallel-processing fortran openmp