SCore PBS/SCore(Open PBS/SCore) 管理ガイド


目次

  1. はじめに
  2. ホストの構成
  3. 全ホストに共通して行う設定
    1. pbs_server_name ファイルの編集
  4. PBS のサーバを務めるホストの設定
    1. /var/scored/pbs/ ディレクトリ
    2. server_priv/nodes ファイルの編集
  5. コンピュートホストの設定
    1. /var/scored/pbs/ ディレクトリ
    2. mom_priv/config ファイルの編集
  6. 一般ユーザのホストの設定
  7. SCore の並列ジョブを起動するホストの設定
    1. /var/scored/pbs/ ディレクトリ
    2. mom_priv/config ファイルの編集
  8. サーバの起動
    1. pbs_mom の起動
    2. pbs_sched の起動
    3. pbs_server の起動
    4. 起動確認
    5. デフォルトキューの作成
    6. スケジューリングの開始
  9. PBS と PBS/SCore の相違点について
    1. score プロパティ
    2. 起動ホストの指定

はじめに

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

PBS を利用するためには、SCore の設定とは別に PBS の設定作業を行わなけ ればなりません。 このドキュメントでは、PBS の設定の概要について記します。 詳細については、PBS 付属の Administrator Guide を参照して下さい。

なお、SCore クラスタシステムの設定は完了しており、使用可能な状態である ものとします。

SCore システムを EIT からインストールした場合、このドキュメントに書か れている設定事項はすべて EIT が自動的に行います。

ホストの構成

SCore 環境下で PBS を使用するには、以下の 4 種類のホストをクラスタシス テムのどのホストに行わせるかを決める必要があります。

  1. PBS のサーバを務めるホスト

    クラスタには PBS のサーバを務めるホストが 1 台必要になります。 このホストの上では PBS の中心となるサーバ (pbs_server) お よびスケジューラ (pbs_sched) を動かします。

    SCore の msgbserv, scoreboard といったサーバ プログラムを動作させているホストを選ぶことをお薦めします。

  2. コンピュートホスト

    バッチジョブの実行を行うホストです。 各コンピュートホストでは、マシンの資源の監視とジョブの実行を行うサーバ (pbs_mom) を動かします。

    SCore のコンピュートホストと同じか、その一部を割り当てます。

  3. PBS を利用する一般ユーザのホスト

    PBS を利用する一般ユーザのホストには、バッチジョブを投入、削除といった PBS コマンド群 (qsub, qdel など) をインス トールしておく必要があります。

  4. SCore の並列ジョブを起動するホスト

    通常 PBS では、ジョブを実行するために割り当てられたコンピュートホスト のいずれか一台からジョブの起動が行われます。

    これに加えて PBS/SCore 固有の機能として、SCore の並列プログラムをジョ ブとして実行する場合に限り、常にあらかじめ指定しておいたホストからジョ ブを起動することができます。

    指定できるホストは 1 台に限られます。SCore の並列プログラムをジョブと して起動するために、scout, scrun といった SCore のコマンドを実行しますので、ホストはこれらのコマンドが利用可能で なければなりません。

    コンピュートホストと同様に、このホストでも pbs_mom を動か します。 PBS のサーバを務めるホストと同じホストにしておくことをお薦めします。 ただし、コンピュートホストと重複するホストに行わせることはできません。

    このホストは設けないことにしても構いません。 設けない場合、PBS に投入されたジョブはすべて、ジョブの実行に割り当てら れたコンピュートホストのいずれか一台から起動されます。

これらのホストは重複していても構いませんが、 コンピュートホストと SCore の並列ジョブを起動するホストは重複すること はできません。

このガイドの中では、次のような設定を用いています。

  1. server.pccluster.org
  2. 以下の 4 台
    comp0.pccluster.org
    comp1.pccluster.org
    comp2.pccluster.org
    comp3.pccluster.org
  3. server.pccluster.org
  4. server.pccluster.org

全ホストに共通して行う設定

全ホストに共通して次のような設定を行います。

pb_server_name ファイルの編集

PBS のサーバ名を指定せずに PBS のコマンドを実行したときに使われるサー バ名を、/opt/score/etc/pbs_server_name ファイルに指定して おきます。

	server.pccluster.org

PBS のサーバを務めるホストの設定

PBS のサーバを務めるホストの設定を行います。

/var/scored/pbs/ ディレクトリ

次のコマンドを実行して /var/scored/pbs/ ディレクトリの セットアップを行います。 この作業は、SCore システムをバイナリ rpm や EIT でインストールした 場合は不要です。

	# cd /opt/score/install
	# ./pbs_mkdirs aux server
	# cp dedicated_time holidays resource_group sched_config \
	    /var/scored/pbs/sched_priv

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 でインストールした 場合は不要です。

	# /opt/score/install/pbs_mkdirs aux mom

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 の並列ジョブを起動するホストの設定

SCore の並列プログラムを起動するホストの設定を行います。 先にも記した通り、このホストの設置は必須ではありません。

/var/scored/pbs/ ディレクトリ

次のコマンドを実行して /var/scored/pbs/ ディレクトリの セットアップを行います。 この作業は、SCore システムをバイナリ rpm や EIT でインストールした 場合は不要です。

	# /opt/score/install/pbs_mkdirs aux mom

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

起動確認

各サーバプログラムの起動を確認してみます。

	# /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" を参照して下さい。

PBS と PBS/SCore の相違点について

この節は、もともとの PBS と PBS/SCore の相違点について記してあります。

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 クラスタ向けの プログラムを含むすべてのジョブプログラムは従来通りの方法で起動されます。


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

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