OpenMP/C プログラムのコンパイルは 通常のC言語プログラム のコンパイルとおなじくらい簡単です。LAPLCE プログラムの例が
/opt/score/example/scash/laplace.omp/laplace_omp.c
にあります。
プログラムファイルおよびインクルードファイル
/opt/score/example/scash/laplace.omp/laplace.h
を作業ディレクトリにコピーしてください。OpenMP/C コンパイラは拡張子が.c
であるソースファイルのみを受けつけるので、プログラムがlaplace_omp.c
として保存されていることを確認して下さい。プログラムを以下のようにコンパイルします:
$ omcc -omniconfig=scash -o laplace_omp laplace_omp.c $
普通の C/C++ コンパイラと同じように、Omni/OpenMP/C コンパイラ omcc は laplace_omp
という実行ファイルを生成します。omcc は C/C++ コンパイラの受け付けるほとんどのオプションを受け付けます。
コンピュートホストロッククライアント msgb
(1) を以下のように起動して、クラスタ内の空いているホストを見つけることができます:
$ msgb -group pcc &
pcc
は SCore クラスタデータベース scorehosts.db(5) で定義されたグループです。
scout
プログラムをユーザプログラムを実行させるのと同じグループ名を付けて呼び出します。
$ scout -g pcc SCOUT: Spawn done. SCOUT: session started $新しいシェルプロセスが
scout
プログラムの子プロセスとして生成されます。msgb
が動作中であれば、リモートプロセスが scout
によって呼び出されている間、msgb
ウィンドウ内のいくつかあるいは全てのホストが赤に変わります。scout
プログラムが呼び出されるホストはクラスタ内のホストである必要はありません。
これでようやくプログラムを起動させることができます:
$ scrun -nodes=2x1,network=myrinet ./laplace_omp SCORE: connected (jid=100) <0:0> SCORE: 2 hosts, single process/host ready. ... $その他の SCASH の例がディレクトリ
/opt/score/example/scash
の下にあります。