小编Sha*_*ANG的帖子

打开 MP 如果 OpenMP:...else

问题:我有一些我自己和其他人编写的代码,我使用了这些代码并使用 mpi 和 openmp 取得了很好的结果(有助于我在 Blue Gene/Q 上运行它)。

我不喜欢的一件事是,现在我无法在没有 -openmp 指令的情况下编译代码,因为为了获得我需要的加速,我使用了缩减变量。例子:

!$OMP parallel do schedule(DYNAMIC, 4) reduction(min:min_val)
....
    min_val = some_expression(i)
....
!$OMP end parallel do
result = sqrt(min_val)
Run Code Online (Sandbox Code Playgroud)

我正在寻找类似的东西:

!$OMP if OMP:
!$OMP min_val = some_expression(i)
!$OMP else:
if ( min_val .gt. some_expression(i) ) min_val = some_expression(i)
!$OMP end else
Run Code Online (Sandbox Code Playgroud)

有人知道这样的事情吗?请注意,如果没有 -openmp,!$OMP 行将被忽略,代码会正常运行,并给出正确的、呃相同的答案。

谢谢,

(是的,它是 FORTRAN 代码,但它与 C 和 C++ 几乎相同)

fortran openmp fortran90

3
推荐指数
1
解决办法
1602
查看次数

标签 统计

fortran ×1

fortran90 ×1

openmp ×1