OpenPBSで構築した複数ワークステーションからなるバッチシステムにジョブを依頼して、計算結果を得る方法を確認します。
2003-07-16 | 改訂1 | |
2003-03-09 | 桑村 潤 |
OpenPBSによるバッチシステム環境は既に構築されていることとします。
サーバと実行ホストの設定が終わったら、ジョブを依頼(投入)してみます。キューサーバとすべての実行ホストにジョブを投入するユーザのアカウントをつくり、SSH系のリモートアクセスが自動的に可能になるように設定します(設定の仕方はVMNetを参照ください)。この際に、FQDN(フルクォリファイド・ドメインネーム)のホスト名でもアクセスできるようにしておいたほうが無難なようです。 ここでは、作成したアカウントのユーザIDを www とし、そのホームディレクトリを /home/www とします。
ジョブとして投入するプロシージャを記述したシェルを用意します。ここでは、簡単なコマンドを実行してみます。次のようなfindtest.shというシェルをつくりました。
$ cat findtest.sh #!/bin/sh #PBS -e /home/www/spool #PBS -o /home/www/spool #PBS -m be pwd cd ${HOME} pwd find / -name \"*~\" -print sleep 60 echo ${HOSTNAME} echo findtest
はじめの数行、"#PBS" で始まる行は PBS へのコマンドです。
出力用のディレクトリを用意しておきます。ここではホームディレクトリ下の spool ディレクトリです。
$ mkdir ~/spool
ジョブの依頼(投入)は qsub コマンドで行います。
$ qsub findtest.sh
いくつかジョブを投入してみました。
ジョブの状態は qstat コマンドでみることができます。
$ qstat Job id Name User Time Use S Queue ---------------- ---------------- ---------------- -------- - ----- 78.server findtest.sh www 0 R dque 79.server findtest.sh www 0 R dque 80.server findtest.sh www 0 R dque
開始時のメールは次のような内容です。
Date: Fri, 28 Feb 2003 21:10:04 +0900 From: adm <adm@server.vmnet.rccm.jp> To: www@server.vmnet.rccm.jp Subject: PBS JOB 78.server.vmnet.rccm.jp PBS Job Id: 78.server.vmnet.rccm.jp Job Name: findtest.sh Begun execution
終了後のメールは次のような内容です。
Date: Fri, 28 Feb 2003 21:11:05 +0900 From: adm <adm@server.vmnet.rccm.jp> To: www@server.vmnet.rccm.jp Subject: PBS JOB 78.server.vmnet.rccm.jp PBS Job Id: 78.server.vmnet.rccm.jp Job Name: findtest.sh Execution terminated Exit_status=0 resources_used.cput=00:00:00 resources_used.mem=2840kb resources_used.vmem=12144kb resources_used.walltime=00:01:01
実行結果は指定したディレクトリに標準出力ファイルがリモートコピーされます。
$ cat /home/www/spool/78.server.s.OU /home/www /home/www linux2.vmnet.rccm.jp findtest
pbs_iff: cannot connect to host No Permission. qsub: cannot connect to server server (errno=15007)
chmod u+s $PBS_ROOT/sbin/pbs_iff
pbs_iff: error returned: 15008 pbs_iff: Access from host not allowed, or unknown host No Permission. qsub: cannot connect to server server (errno=15007)
set server acl_host_enable = True
set server acl_hosts = *.vmnet.rccm.jp
set server acl_hosts + client.ether.rccm.jp
qsub: Unauthorized Request
set server acl_user_enable = True
set server acl_users = adm@server.vmnet.rccm.jp
set server acl_users + www@server.vmnet.rccm.jp
set server acl_users + www@client.ether.rccm.jp
qsub: Bad UID for job execution
echo "client.ether.rccm.jp" >> ~www/.rhosts