Oracle® Developer Studio 12.5: パフォーマンスライブラリユーザーズガイド

印刷ビューの終了

更新: 2016 年 6 月
 
 

並列処理の例

このセクションでは、コンパイルおよびリンクオプションとともに OMP_NUM_THREADS 環境変数を使用して、順次または並列で実行するコードを作成する方法を説明します。

シリアルアプリケーションを作成するには:

  • 1 つ以上の Oracle Developer Studio パフォーマンスライブラリルーチンを呼び出します

  • -library=sunperf とリンクし、コマンド行の末尾にフラグを配置します。-xopenmp=parallel または -xautopar とコンパイルまたはリンクしないでください

  • OMP_NUM_THREADS 環境変数を設定解除するか、1 に設定します

次の例は、共有 Oracle Developer Studio パフォーマンスライブラリ libsunperf.so とコンパイルおよびリンクする方法を示しています。

my_host% cc -xmemalign=8s -xarch=native any.c -library=sunperf
my_host% f95 -dalign -xarch=native any.f95 -library=sunperf

複数のプロセッサで実行する並列アプリケーションを作成するには:

  • 1 つ以上の Oracle Developer Studio パフォーマンスライブラリルーチンを呼び出します

  • コンパイルコマンドとリンクコマンドで同じ並列化オプション (-xopenmp=parallel または -xautopar) を使用します。

  • -library=sunperf とリンクし、コマンド行の末尾にフラグを配置します。

  • 実行可能ファイルを実行する前に、OMP_NUM_THREADS を使用可能なプロセッサの数に設定します

たとえば、24 個のプロセッサを使用するには、次のコマンドを入力します。

my_host% f95 -dalign -xarch=native my_app.f -library=sunperf
my_host% setenv OMP_NUM_THREADS 24
my_host% ./a.out

前の例では、Oracle Developer Studio パフォーマンスライブラリルーチンを並列で実行できますが、ユーザーコード my_app.f のどの部分も並列で実行されません。コンパイラが my_app.f の並列化を試みるには、コンパイル行で -xopenmp=parallel、または -xautopar のいずれかが必要です。

my_host% f95 -dalign -xopenmp=parallel my_app.f -library=sunperf
my_host% setenv OMP_NUM_THREADS 24
my_host% ./a.out