Oracle Solaris Studio 12.2:OpenMP API 用户指南

B.1.1 转换 Sun 风格的 Fortran 指令

下列各表提供了与 Sun 并行化指令及其子子句几乎等效的 OpenMP 指令和子子句。这些只是建议值。

表 B–1 将 Sun 并行化指令转换为 OpenMP

Sun 指令  

等效 OpenMP 指令  

C$PAR DOALL [qualifiers]

!$omp parallel do [qualifiers]

C$PAR DOSERIAL

无完全等效指令。可以使用: 

!$omp master

loop

!$omp end master

C$PAR DOSERIAL*

无完全等效指令。可以使用: 

!$omp master

loopnest

!$omp end master

C$PAR TASKCOMMON block[,...]

!$omp threadprivate (/block/[,...])

DOALL 指令可带有下列可选的限定符子句。

表 B–2 DOALL 限定符子句和等效的 OpenMP 子句

Sun DOALL 子句  

等效的 OpenMP PARALLEL DO 子句  

PRIVATE(v1,v2,...)

private(v1,v2,...)

SHARED(v1,v2,...)

shared(v1,v2,...)

MAXCPUS(n)

num_threads(n)。无完全等效子句。

READONLY(v1,v2,...)

无完全等效指令。使用 firstprivate(v1,v2,...) 可以获得相同效果。

STOREBACK(v1,v2,...)

lastprivate(v1,v2,...)

SAVELAST

无完全等效指令。使用 lastprivate(v1,v2,...) 可以获得相同效果。

REDUCTION(v1,v2,...)

reduction(operator:v1,v2,...) 必须提供约简操作符和变量列表。

SCHEDTYPE(spec)

schedule(spec)(请参见表 B–3

SCHEDTYPE(spec) 子句接受下列调度规范。

表 B–3 SCHEDTYPE 调度和等效的 OpenMP schedule 子句

SCHEDTYPE(spec)  

等效的 OpenMP schedule(spec) 子句

SCHEDTYPE(STATIC)

schedule(static)

SCHEDTYPE(SELF(chunksize))

schedule(dynamic,chunksize)

缺省 chunksize 为 1。

SCHEDTYPE(FACTORING(m))

无完全等效指令。 

SCHEDTYPE(GSS(m))

schedule(guided, m)

缺省 m 为 1。

B.1.1.1 Sun 风格的 Fortran 指令和 OpenMP 指令间的问题