SCASH Omni/OpenMP − はじめに

このドキュメントでは次のことを記述しています。 以下の例では SCore ユーザーズガイド内の はじめに で述べられているユーザ環境設定を想定しています。

SCASH 上での単純な OpenMP/C LAPLACE プログラム

コンパイル

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 コンパイラ omcclaplace_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 の下にあります。

関連項目
SCore クラスタソフトウェアシステムリファレンスガイド
Omni OpenMP コンパイラ
Omni OpenMP/C コンパイラ omcc
Omni OpenMP/F77 コンパイラ omf77
SCASH C はじめに


CREDIT
This document is a part of the SCore cluster system software developed at PC Cluster Consortium, Japan. Copyright (C) 2003 PC Cluster Consortium.