问题:
我和其他几个人写了一些代码,我将其改为使用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)
我正在寻找类似于以下内容的信息:
!$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
有人知道类似的东西吗?请注意,如果没有使用-openmp参数,将会忽略!$OMP行,并且代码将正常运行并得到正确的答案。
谢谢,
(是的,这是Fortran代码,但它几乎与C和C++相同)