SCore 環境で並列プログラムのバッチを処理を行うためには、PBS というバッ チシステムを使用します。
PBS を利用するためには、SCore の設定とは別に PBS の設定作業を行わなけ ればなりません。 このドキュメントでは、PBS の設定の概要について記します。 詳細については、PBS 付属の Administrator Guide を参照して下さい。
なお、SCore クラスタシステムの設定は完了しており、使用可能な状態である ものとします。
SCore システムを EIT からインストールした場合、このドキュメントに書か れている設定事項はすべて EIT が自動的に行います。
SCore 環境下で PBS を使用するには、以下の 4 種類のホストをクラスタシス テムのどのホストに行わせるかを決める必要があります。
クラスタには PBS のサーバを務めるホストが 1 台必要になります。
このホストの上では PBS の中心となるサーバ (pbs_server
) お
よびスケジューラ (pbs_sched
) を動かします。
SCore の msgbserv
, scoreboard
といったサーバ
プログラムを動作させているホストを選ぶことをお薦めします。
バッチジョブの実行を行うホストです。
各コンピュートホストでは、マシンの資源の監視とジョブの実行を行うサーバ
(pbs_mom
) を動かします。
SCore のコンピュートホストと同じか、その一部を割り当てます。
PBS を利用する一般ユーザのホストには、バッチジョブを投入、削除といった
PBS コマンド群 (qsub
, qdel
など) をインス
トールしておく必要があります。
通常 PBS では、ジョブを実行するために割り当てられたコンピュートホスト のいずれか一台からジョブの起動が行われます。
これに加えて PBS/SCore 固有の機能として、SCore の並列プログラムをジョ ブとして実行する場合に限り、常にあらかじめ指定しておいたホストからジョ ブを起動することができます。
指定できるホストは 1 台に限られます。SCore の並列プログラムをジョブと
して起動するために、scout
, scrun
といった
SCore のコマンドを実行しますので、ホストはこれらのコマンドが利用可能で
なければなりません。
コンピュートホストと同様に、このホストでも pbs_mom
を動か
します。
PBS のサーバを務めるホストと同じホストにしておくことをお薦めします。
ただし、コンピュートホストと重複するホストに行わせることはできません。
このホストは設けないことにしても構いません。 設けない場合、PBS に投入されたジョブはすべて、ジョブの実行に割り当てら れたコンピュートホストのいずれか一台から起動されます。
これらのホストは重複していても構いませんが、 コンピュートホストと SCore の並列ジョブを起動するホストは重複すること はできません。
このガイドの中では、次のような設定を用いています。
server.pccluster.org
comp0.pccluster.org
comp1.pccluster.org
comp2.pccluster.org
comp3.pccluster.org
server.pccluster.org
server.pccluster.org
全ホストに共通して次のような設定を行います。
pb_server_name
ファイルの編集
PBS のサーバ名を指定せずに PBS のコマンドを実行したときに使われるサー
バ名を、/opt/score/etc/pbs_server_name
ファイルに指定して
おきます。
server.pccluster.org
PBS のサーバを務めるホストの設定を行います。
/var/scored/pbs/
ディレクトリ
次のコマンドを実行して /var/scored/pbs/
ディレクトリの
セットアップを行います。
この作業は、SCore システムをバイナリ rpm や EIT でインストールした
場合は不要です。
# cd /opt/score/install # ./setup -pbs_comp
server_priv/nodes
ファイルの編集
/var/scored/pbs/server_priv/nodes
ファイルに、コンピュート
ホストの一覧を記します。
scbd2pbs
コマンドを使用すると、scoreboard
デー
タベースで定義されたグループに属するホストを自動的に
server_priv/nodes
ファイルに沿った形式にして列記します。
/opt/score/sbin/scbd2pbs pcc > /var/scored/pbs/server_priv/nodes
こうすると、pcc というグループに属しているホストをすべて、コンピュート
ホストとして登録するような server_priv/nodes
を生成します。
生成される内容は、次のようになります。
comp0.pccluster.org pcc score comp1.pccluster.org pcc score comp2.pccluster.org pcc score comp3.pccluster.org pcc score
各行にはホスト名と、そのホストのプロパティ名が記されます。プロパティ名
として、グループ名 (この例では pcc) および score が自動的に付加されま
す。
また、scoreboard
データベース内でそのホストが
pbs=
name という形の属性を持っていた場合、
name もプロパティ名として追加されます。
server_priv/nodes
ファイルの書式についての詳細は、
PBS Administrator Guide "3.3.2. Declaring Nodes" を参照して下さい。
コンピュートホストの設定を行います。 設定はコンピュートホスト各台に対して行う必要があります。
/var/scored/pbs/
ディレクトリ
次のコマンドを実行して /var/scored/pbs/
ディレクトリの
セットアップを行います。
この作業は、SCore システムをバイナリ rpm や EIT でインストールした
場合は不要です。
# cd /opt/score/install/ # ./setup -pbs_comp
mom_priv/config
ファイルの編集
ジョブの実行および資源の監視を行うサーバ pbs_mom
の設定ファ
イル /var/scored/pbs/mom_priv/config
ファイルを編集します。
次のように $clienthost
に PBS サーバのホスト名を記す必要
があります。
$logevent 0x1ff $clienthost server.pccluster.org
mom_priv/config
ファイルの書式についての詳細は、
PBS Administrator Guide "9.2. pbs_mom" を参照して下さい。
一般ユーザのホストに固有の設定事項は特にありません。
SCore の並列プログラムを起動するホストの設定を行います。 先にも記した通り、このホストの設置は必須ではありません。
/var/scored/pbs/
ディレクトリ
次のコマンドを実行して /var/scored/pbs/
ディレクトリの
セットアップを行います。
この作業は、SCore システムをバイナリ rpm や EIT でインストールした
場合は不要です。
# cd /opt/score/install/ # ./setup pbs_comp
mom_priv/config
ファイルの編集
pbs_mom の設定ファイル /var/scored/pbs/mom_priv/config
ファ
イルを編集します。
コンピュートホストの pbs_mom
の設定とは異なり、PBS サーバ
とコンピュートホストすべてを $clienthost
として列記します。
$logevent 0x1ff $clienthost server.pccluster.org $clienthost comp0.pccluster.org $clienthost comp1.pccluster.org $clienthost comp2.pccluster.org $clienthost comp3.pccluster.org
mom_priv/config
ファイルの書式についての詳細は、
PBS Administrator Guide "9.2. pbs_mom" を参照して下さい。
pbs_mom
の起動
全てのコンピュートホスト (comp0.pccluster.org
,
comp2.pccluster.org
, ...) 上で pbs_mom
を
起動します。
また、SCore の並列ジョブを起動するホストを設けた場合は、そのホスト
(server.pccluster.org
) の pbs_mom
も起動
します。
Red Hat Linuxの場合: # /etc/rc.d/init.d/pbs_mom start SuSE Linuxの場合: # /sbin/init.d/pbs_mom start
pbs_sched
の起動
PBS のサーバを務めるホスト上 (server.pccluster.org
) で、
スケジューラを起動します。
Red Hat Linuxの場合: # /etc/rc.d/init.d/pbs_sched start SuSE Linuxの場合: # /sbin/init.d/pbs_sched start
pbs_server
の起動
PBS のサーバを務めるホスト上 (server.pccluster.org
) で、
pbs_server
を起動します。
SCore の並列ジョブを起動するホストを設けた場合は、-m
オプ
ションでそのホスト名を指定します。
また、初回の起動だけは、データベースを初期化するために
-t create
オプションを指定する必要があります。
# /opt/score/sbin/pbs_server -t create -m server.pccluster.org
各サーバプログラムの起動を確認してみます。
# /opt/score/bin/qmgr -c 'p n @active'
正しく動作していれば、次のようにコンピュートホストの一覧が表示されます。
# # Create nodes and set their properties. # # # Create and define comp0.pccluster.org # # create node comp0.pccluster.org # unsuppored operation set node comp0.pccluster.org state = free set node comp0.pccluster.org properties = any set node comp0.pccluster.org properties += score set node comp0.pccluster.org properties += score-pcc set node comp0.pccluster.org ntype = cluster # # Create and define comp1.pccluster.org # # create node comp1.pccluster.org # unsuppored operation set node comp1.pccluster.org state = free set node comp1.pccluster.org properties = any set node comp1.pccluster.org properties += score set node comp1.pccluster.org properties += score-pcc set node comp1.pccluster.org ntype = cluster # # Create and define comp2.pccluster.org # # create node comp2.pccluster.org # unsuppored operation set node comp2.pccluster.org state = free set node comp2.pccluster.org properties = any set node comp2.pccluster.org properties += score set node comp2.pccluster.org properties += score-pcc set node comp2.pccluster.org ntype = cluster # # Create and define comp3.pccluster.org # # create node comp3.pccluster.org # unsuppored operation set node comp3.pccluster.org state = free set node comp3.pccluster.org properties = any set node comp3.pccluster.org properties += score set node comp3.pccluster.org properties += score-pcc set node comp3.pccluster.org ntype = cluster
デフォルトの実行キューを作ります。
この例では、キューの名前を default
にしています。
# qmgr -c "create queue default queue_type=execution" # qmgr -c "set queue default enabled=true" # qmgr -c "set queue default started=true" # qmgr -c "set server default_queue=default"
キューの設定についての詳細は、PBS Administrator Guide "3.5.2. Queue Configuration" を参照して下さい。
スケジューリング機能を有効にします。
# qmgr -c "set server scheduling=true"
PBS/SCore をソースコードからコンパイルせずに、バイナリパッケージを使っ てインストールした場合は C ベースのスケジューラが使用されます。 C ベースのスケジューラについて詳しくは PBS Administrator Guide "4.4. C Based Scheduler", "9.9. C Based Scheduler" を参照して下さい。
score
プロパティPBS/SCore では拡張機能として、投入されたジョブが SCore クラスタシステ ム向けの並列処理プログラムかどうかを区別するための仕組みを付け加えまし た。
PBS/SCore では score
というプロパティ名に特別な意味を持た
せています。
次のようにジョブ投入時に score
プロパティを持ったホストを
コンピュートホストとして割り当てるように指示すると、そのジョブを SCore
クラスタシステム向けの並列プログラムだと判断します。
qsub -l nodes=4:score ./job.sh
ただし、score
プロパティは、あからじめコンピュートホスト
の一覧を記しておく設定ファイル
(/var/scored/pbs/server\_priv/nodes
)
の中で、コンピュートホストに対して割り当てておく必要があります。
投入されたジョブが SCore クラスタシステム用の並列処理プログラムだと
判断されると、pbs_server
内での内部処理が変わり、そのジョ
ブは 次節で述べる「起動ホストの一元化」機能の利用対象となります。
もともとの PBS では、複数台のホストを用いたプログラムをジョブとして投 入する場合でも、そのジョブに割り当てたコンピュートホスト上のいずれか一 台だけに送信し、ジョブはそのホスト一台だけから起動されます
それに対して PBS/SCore では PBS を改造し、投入されたジョブが 「SCore クラスタシステム向けの並列処理プログラムの場合」に限り、そのジョ ブを必ず事前に決めておいた特定のホストから起動する機能を付け加えました。
起動ホストとして指定したホスト上では pbs_mom
を動作させて
おく必要があります。
また、SCore クラスタ向けのプログラムを実行するホストは、コンピュートホ
ストを兼ねることはできません。
(つまり、並列プログラムの起動は行いますが、プログラム内で指示されてい
る計算の実行はできません。
したがって、起動ホストとして指定したホストをコンピュートホストの一覧を
記しておく設定ファイル /var/scored/pbs/server_priv/nodes
に載せることはできません。)
SCore クラスタ向けのプログラムを起動するホストの指定は、
pbs_server
の -m
オプションで行うようにしま
す。
(このオプションは PBS/SCore にしか存在しないオプションです。)
-m
オプションは次のように指定します。
pbs_server -m ホスト[:ポート]
指定した「ホスト」を SCore クラスタ向けのプログラムを起動を行う専用の
ホストにします。
ポート番号を指定しなかった場合は、デフォルトのポート番号 (が
ポート番号を指定した場合は、そのホストの「ポート番号」を監視している
pbs_mom
に起動すべきプログラムを送信します。
-m
オプションを指定しなかった場合は、SCore クラスタ向けの
プログラムを含むすべてのジョブプログラムは従来通りの方法で起動されます。
![]() |
PCクラスタコンソーシアム |