XL Fortran for AIX V8.1.1

ランゲージ・リファレンス


SMP ディレクティブの概要

この章で説明される SMP ディレクティブを使用して、並列化を制御できます。たとえば、PARALLEL DO ディレクティブは、ディレクティブの直後に続くループが並列で実行されることを指定します。すべての SMP ディレクティブは、注釈形式ディレクティブです。注釈形式ディレクティブの規則および構文について詳しくは、注釈形式ディレクティブを参照してください。

XL Fortran は、次のように分類される以下の SMP ディレクティブをサポートします。

並列領域構造体

並列構造体は、XL Fortran で OpenMP ベースの並列実行の基礎を形成します。 PARALLEL/END PARALLEL ディレクティブの対は、基本並列構造体を形成します。実行中のスレッドが並列領域に入るたびに、そのスレッドはスレッドのチームを作成し、そのチームのマスターになります。これで、そのチームのスレッドによって、その構造体内で並列実行が行われます。並列領域には、以下のディレクティブが必要です。


PARALLEL END PARALLEL

作業共用構造体

作業共用構造体は、チーム内のスレッド間の構造体によって囲まれたコードの実行を分割します。作業共用が行われるようにするには、構造体が、並列領域の動的エクステント内で囲まれていなければなりません。作業共用構造体について詳しくは、以下のディレクティブを参照してください。


DO END DO
SECTIONS END SECTIONS
WORKSHARE END WORKSHARE

結合された並列作業共用構造体

結合された並列作業共用構造体を使用すると、単一作業共用構造体がすでに含まれている並列領域を指定できます。これらの結合構造体は、意味的に、単一作業共用構造体を囲む並列構造体を指定することと同じです。結合構造体のインプリメントについて詳しくは、以下のディレクティブを参照してください。


PARALLEL DO END PARALLEL DO
PARALLEL SECTIONS END PARALLEL SECTIONS
PARALLEL WORKSHARE END PARALLEL WORKSHARE

同期構造体

以下のディレクティブを使用して、チーム内の複数のスレッドによる並列領域の実行を同期化することができます。


ATOMIC
BARRIER
CRITICAL END CRITICAL
FLUSH
ORDERED END ORDERED

その他の OpenMP ディレクティブ

以下の OpenMP ディレクティブは、追加の SMP 機能を提供します。


MASTER END MASTER
SINGLE END SINGLE
THREADPRIVATE

非 OpenMP SMP ディレクティブ

以下のディレクティブは、追加の SMP 機能を提供します。


DO SERIAL
SCHEDULE
THREADLOCAL


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]