SCore PBS/SCore(Open PBS/SCore) ユーザガイド


目次

  1. はじめに
  2. コマンドラインでの使い方
    1. キューの状態の確認
    2. ジョブの投入
    3. SCore 用の並列プログラムをジョブとして投入
    4. sc_qsub
    5. ジョブの削除
  3. xpbs
    1. xpbs でのキューの状態の確認
    2. xpbs でのジョブの投入
    3. xpbs での SCore 用並列プログラムのジョブ投入
    4. xpbs でのジョブの削除
    5. xpbs の終了

はじめに

SCore 環境で並列プログラムのバッチを処理を行うためには、PBS というバッ チシステムを使用します。

このドキュメントでは、PBS の基本的な使用方法について記します。 詳細については、PBS 付属の man ページを参照して下さい。

コマンドラインでの使い方

キューの状態の確認

ジョブの実行キューの状態を確認するには、qstat コマンドを 使用します。

	qstat

キューにジョブが残っていれば、ジョブの情報が表示されます。

        Job id        Name           User         Time Use S Queue
	------------- ------------- ------------- -------- - -----
	95.user0      job1.sh       user0001      00:00:00 R default
	96.user0      job2.sh       user0001      00:00:00 R default
	97.user1      job3.sh       user0001             0 Q default

各行は左から順に、ジョブの ID、ジョブの名前、ジョブを投入したユーザ 名、ジョブが使用した CPU 時間、ジョブの状態、そのジョブを管理してい るキューの名前となっています。 ジョブの状態は、R が実行中、Q がキューイング されている状態を示します。

詳しくは qstat(1) の man ページを参照して下さい。

ジョブの投入

PBS では投入されたジョブはバイナリのプログラムではなく、スクリプト でなければなりません。 PBS はジョブを起動する際に、ジョブを投入したユーザの実行ホスト上で のログインシェルを実行し、そのログインシェルにスクリプトを実行させ ます。 したがって、ジョブを投入するにはまずスクリプトを作成し、そのスクリ プトをジョブとして投入しなくてはなりません。 以下は、ジョブスクリプトの例です。

	hostname
	date
	sleep 30

このスクリプトを test.sh という名前にして、ジョブとして投 入してみます。 ジョブの投入には qsub コマンドを使います。

	qsub test.sh

ジョブの投入が成功すると、ジョブに割り当てられたジョブ ID が出力され ます。

	1.user0

スクリプトが起動されたときの環境変数 PATH の値は、ユーザ の実行ホストでのログインシェルの設定に依存しますので注意して下さい。 また、スクリプトが起動されたときのカレントディレクトリは、PBS のジョ ブのスプールディレクトリの下 (/var/scored/pbs/mom_priv/jobs/<ジョブ ID>) になります。

ジョブが投入された直後に qstat を実行すれば、ジョブが投入 されたことが確認できるでしょう。

	qstat
	Job id	      Name	     User	  Time Use S Queue
	------------- ------------- ------------- -------- - -----
	1.user0	      test.sh	    user0001	  00:00:00 R default

qsub コマンドについて、詳しくは qsub(1) の man ページを参 照して下さい。

SCore 用の並列プログラムをジョブとして投入

コマンドラインでは以下のように実行していた SCore 用の並列プログラム があるものとします。

	scrun -nodes=4 ./cg.A.4

これを PBS のジョブとして投入するには、スクリプトに次のように記述し ます。 scout -F ${PBS_NODEFILE} によって scrun を起 動させるようにします。

	scout -wait -F ${PBS_NODEFILE} -e scrun -nodes=4 /work/naspar/cg.A.4

スクリプトが起動されたときのカレントディレクトリは、PBS のジョブのス プールディレクトリの下になります。 また、このスクリプト自体はコンピュートホスト上にコピーされますが、 scrun から起動するプログラム (cg.A.4) はコピー されません。 scrun から起動するプログラムは必ずコンピュートホストが共 通してアクセスできる位置に起き、絶対パスで指定するのが良いでしょう。

このスクリプトのファイル名を score.sh とすると、 qsub には次のような引数を与えて実行します。

	qsub -l nodes=4:score score.sh

qsub-l オプションに渡すノード数は、 scrun に渡したノード数と一致する必要があります。

また、コンピュートホストとして割り当てるノードの指定として、必ず score というプロパティを指定して下さい。 score というプロパティが指定されると、PBS/SCore は SCore 用の並列プロ グラムが投入されたものと判断します。

プロパティをさらに細かく指定することも可能です。 たとえば、pcc というプロパティを持ったホストを割り当てて SCore 用の並 列プログラムを実行したいときは、次のように score と pcc の両方のプロパ ティを指定します。

	qsub -l nodes=4:score:pcc score.sh

ノードの指定方法については、PBS Administrator Guide "7.2. Parallel Jobs" により詳しい説明がありますので、そちらも参照して 下さい。

sc_qsub

既に記した通り、SCore のジョブを PBS/SCore に投入するにはスクリプトファ イルを作成する必要があります。 この節で説明する sc_qsub コマンドを用いると、スクリプトファ イルを自動的に生成できます。

PBS に次のような SCore ジョブを投入したいとしましょう。

        % scrun -nodes=4 /work/naspar/cg.A.4

上記のプログラムを sc_qsub を用いて投入するには、次のよう にします。

	% sc_qsub -nodes=4 /work/naspar/cg.A.4

このとき、nodes オプションは必ず指定する必要があるのでご 注意下さい。 qsub のオプションを指定する場合は、sc_qsub と引数 -nodes 引数の間に置きます。 qsub-l オプションでは nodes オプションを指定することができません。 REVISED

以下は、qsub のオプションと SCore のオプションを指定して sc_qsub コマンドを実行している例です。

	% sc_qsub -a 1000 -nodes=2x2,statistics /work/naspar/cg.A.4

ジョブの削除

投入したジョブをキューから削除するには qdel コマンドを使 用します。 いま、qstat の出力が次の通りだとします。

	qstat
	Job id	      Name	     User	  Time Use S Queue
	------------- ------------- ------------- -------- - -----
	1.user0       test.sh	    user0001	  00:00:00 R default
	2.user0       test.sh	    user0001	  00:00:00 R default

qdel は、削除したいジョブのジョブ ID を指定して実行します。

	qdel 1.user0

再び qstat を実行すると、ジョブが削除されているのが分かり ます。

	qstat
	Job id	      Name	     User	  Time Use S Queue
	------------- ------------- ------------- -------- - -----
	2.user0       test.sh	    user0001	  00:00:00 R default
なお、削除したジョブを投入したユーザのもとには、PBS から削除を通知す るメールが届きます。

詳しくは qdel(1) の man ページを参照して下さい。

xpbs

PBS には、qsub ようなコマンドラインインターフェースに加え て、X 上で動作する GUI アプリケーション xpbs が用意されて います。

xpbs を起動するには、コマンド行から以下の行を実行します。 環境変数 DISPLAY を適切な値に設定しておく必要があります。

	xpbs

xpbs が起動すると、ディスプレイに次のようなメインウィンド ウが現れます。

xpbs (メインウィンドウ)

xpbs でのキューの状態の確認

状態を表示させたいキューを QUEUE 領域の中から選択します。

xpbs (QUEUE 領域)

メインウィンドウの JOBS 領域に指定したキューの状態が表示されます。

xpbs (JOBS 領域 -- 1)

なお、そのままではキューの状態表示は更新されません。 手動で更新するには、ウィンドウ上部の "Manual Update" ボタンを押します。 押す度にキューの状態表示が更新されます。 一定時間おきに自動的にキューの状態表示を更新するには、メインウィンドウ 上の "Auto Update..." ボタンを押します。 押すと、次のように "Automatic Update of Data" ダイアログが現れます。

xpbs (Automatic Update of Data ウィンドウ)

上下の矢印ボタンを押して更新間隔を調整し、"start updating" ボタンを押 すと自動更新が開始されます。 同様に、"stop updating" ボタンを押すと、自動更新が止まります。

xpbs でのジョブの投入

xpbs 上で ジョブを投入するには、まずメインウィンドウ上の HOSTS 領域にある "Submit..." ボタンを押します。 すると、"Submit Job Dialog" ウィンドウが現れます。

xpbs (Submit Job Dialog ウィンドウのイメージ)

"Submit Job Dialog" の SCRIPT 領域で、ジョブとして投入するスクリプトの 指定を行います。

xpbs (SCRIPT 領域)

スクリプトのファイル名を指定するか、テキストボックス内に直接スクリプト の内容を書くかのいずれかの方法で行います。

ファイルを指定する場合は、"File..." ボタンで選択するか、その右隣にある エントリボックスで直接ファイル名を指定した後、"load" ボタンを押します。

"Submit Job Dialog" ウィンドウでの入力が終わったら、ウィンドウ底部にあ る "confirm submit" ボタンを押してジョブを投入します。 "Submit Job Dialog" ウィンドウが閉じられ、メインウィンドウの JOBS 領域 にいま投入したジョブの情報が加わります。

xpbs (JOBS 領域 -- 2)

xpbs での SCore 用並列プログラムのジョブ投入

SCore 用の並列プログラムの投入は、前節で記した "Submit Job Dialog" ウィンドウでも可能ですが、手順が複雑です。 より簡単に SCore 用の並列プログラムを投入するには、メインウィンドウ 上の HOSTS 領域にある "Submit SCore..." ボタンを押して下さい。 すると、"Submit SCore Job Dialog" ウィンドウが現れます。

xpbs (Submit SCore Job Dialog ウィンドウのイメージ)

"Submit SCore Job Dialog" の COMMAND LINE 領域で、ジョブとして投入する コマンド行の指定を行います。 投入するジョブを scrun コマンドで起動する場合のコマンド行 を記します。 "scrun -nodes=" は最初から記されていますので、それに続くコマンド行を記 すようにします。

xpbs (SCRIPT 領域)

ウィンドウ上での入力が終わったら、ウィンドウ底部にある "confirm submit" ボタンを押してジョブを投入します。"Submit SCore Job Dialog" ウィンドウ が閉じられ、メインウィンドウの JOBS 領域 にいま投入したジョブの情報が 加わります。

より高度なことが使い方、たとえばシェルスクリプトを記述して、その中 で SCore 用の並列プログラムをジョブとして起動するような場合は、お手数 でも (前節に記した) "Submit Job Dialog" ウィンドウをお使い下さい。 ただし、スクリプト内では scout -F ${PBS_NODEFILE} によっ て scrun を起動させるようにする必要があるのでご注意下さい。

	scout -wait -F ${PBS_NODEFILE} -e scrun -nodes=4 /work/naspar/cg.A.4

xpbs でのジョブの削除

xpbs でジョブの削除するには、メインウィンドウの JOBS 領域 で削除したいジョブを選択し、ウィンドウ右端にある "delete..." ボタンを 押します。

xpbs (JOBS 領域 -- 2)

"Delete Job Dialog" ウィンドウが現れ、削除するジョブの確認を求めてきま す。

xpbs (Delete Job Dialog)

本当に削除してよければ、"delete" ボタンを押します。

xpbs の終了

はじめて xpbs を立ち上げたときは、設定ファイル ~/.xpbsrc をセーブしてするどうか確認を求めるウィンドウが 現れます。

xpbs (Close Dialog)

通常は "yes" ボタンを押して xpbs を終了させます。 ファイル ~/.pbscrc が作られると、次回からはこの確認ウィン ドウは出現しません。


PCCC logo PCクラスタコンソーシアム

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