JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Oracle Solaris Studio 12.2: OpenMP API ユーザーガイド
search filter icon
search icon

ドキュメントの情報

はじめに

1.  OpenMP API について

2.  OpenMP プログラムのコンパイルと実行

3.  実装によって定義される動作

4.  入れ子並列処理

5.  タスク化

6.  変数の自動スコープ宣言

7.  スコープチェック

8.  パフォーマンス上の検討事項

A.  指令での節の記述

B.  OpenMP への変換

B.1 従来の Fortran 指令の変換

B.1.1 Sun 形式の Fortran の指令の変換

B.1.1.1 Sun 形式の Fortran の指令と OpenMP の変換の問題

B.1.2 Cray 形式の Fortran の指令の変換

B.1.2.1 Cray 形式の Fortran の指令と OpenMP の指令の変換の問題

B.2 従来の C プラグマの変換

B.2.1 従来の C のプラグマと OpenMP の変換の問題

索引

B.1 従来の Fortran 指令の変換

従来の Fortran プログラムでは、Sun または Cray 形式の並列化指令が使用されています。これらの指令の詳細については、『Fortran プログラミングガイド』の「並列化」に関する章を参照してください。

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 の変換の問題

B.1.2 Cray 形式の Fortran の指令の変換

Cray 形式の Fortran 並列化指令は、指令を示す標識が !MIC$ である点を除き、Sun 形式のものと同一です。また、!MIC$ DOALL の修飾節も異なります。

表 B-4 Cray 形式の DOALL 修飾節とそれに相当する Open MP の節

Cray の DOALL 節
OpenMP の PARALLEL DO に相当する節
SHARED(v1,v2,...)
SHARED(v1,v2,...)
PRIVATE(v1,v2,...)
PRIVATE(v1,v2,...)
AUTOSCOPE
相当する句はありません。スコープは必ず、明示的に指定するか、DEFAULT 節か __AUTO 節と共に指定します。
SAVELAST
完全に相当する句はありません。lastprivate を使用して同じ効果を得ることができます。
MAXCPUS(n)
num_threads(n)完全に相当する句はありません。
GUIDED
schedule(guided, m)

デフォルトの m の値は 1 です。

SINGLE
schedule(dynamic,1)
CHUNKSIZE(n)
schedule(dynamic,n)
NUMCHUNKS(m)
schedule(dynamic,n/m) ここで、n には反復数を指定します。
B.1.2.1 Cray 形式の Fortran の指令と OpenMP の指令の変換の問題

両者の違いは、Cray の AUTOSCOPE に相当するものがない点を除き、Sun 形式の指令の場合と同様です。