= CERN Batch System (HTCondor) = <> == バッチ・システム == 大量のデータを解析する必要がある場合、あるいは計算に時間が掛かる場合は一つのプログラムを延々と走らせ続けるよりも、 プログラムを複数同時に走らせた方が短い時間で結果を得られる。素粒子実験のデータ解析においてはデータが独立な事象ごとに 分かれているため、簡単に並列化ができる。 CERN lxplusは多くのユーザーが作業をする共用のコンピュータなので、ここで重い計算をすることは避けるべきで、lxplusでは30分(?) 以上走り続けているプログラムは強制終了される。 多数のプログラムを同時に走らせたい場合や処理時間の長いプログラムを走らせる必要がある場合のために、作業用のコンピュータではなく プログラムを走らせるためだけの専用のコンピュータが多数用意されている。このようなコンピュータ・システムをバッチ・システムといい、 そこでプログラムを走らせることを通常「バッチ・システムにジョブを投げる」という表現をする。 バッチ・システムには直接ログインできないため、 * 実行するプログラム * 入力ファイル * 出力ファイル * 標準出力に表示されるメッセージを保存するファイル 等を指定してバッチ・システムに知らせる必要がある。 CERN batch system: http://information-technology.web.cern.ch/services/batch <
> Quick start guide: http://batchdocs.web.cern.ch/batchdocs/local/quick.html <
> == ジョブの設定 == バッチ・システムにジョブを投げるには通常、実行したいプログラムやそれに必要な環境設定や後処理をまとめたスクリプトを用意する。 そして、CERNで使っているHTCondorというバッチ・システムでは、その他にプログラムを実行して結果を得るために必要なジョブの内容を設定ファイルに記述する。 スクリプト([[attachment:sayhello.sh|sayhello.sh]])と設定ファイル([[attachment:job1.sub|job1.sub]])の例を載せてある。 === ジョブの最大実行時間 === ジョブの最大実行時間を設定する必要がある。最大実行時間を超えたジョブは終了する。 実行時間は、計算されたCPU時間ではなく、ジョブの実際の経過時間である。 {{{ espresso = 20 minutes microcentury = 1 hour longlunch = 2 hours workday = 8 hours tomorrow = 1 day testmatch = 3 days nextweek = 1 week }}} 最大実行時間を設定するには、次のようにする。 {{{ +JobFlavour = "longlunch" }}} == ジョブのsubmit == ジョブを投げる準備が整ったら、以下のコマンドでジョブを投げる。 {{{ condor_submit job1.sub }}} これをやると、ジョブはバッチ・システムのキューに入る。バッチ・システムに大量のジョブが溜まっている場合は、実行されるまでにしばらく待たなくてはいけないが、 通常は数10秒程度で実行が開始される。 == ジョブのモニター == バッチ・キューにあるジョブのリストは次のコマンドで確認できる。 {{{ condor_q }}} == 出力ファイルの確認 == バッチ・システム上のコンピュータからで作成したファイルは、lxplusからアクセスできる領域にコピーする必要がある。 HTCondorでは、バッチ・システムのコンピュータ上で作成したファイルは自動的にジョブをsubmitしたディレクトリに コピーされるようである。 == ジョブの削除 == バッチ・キューにあるジョブの削除は次のコマンドでできる。オプションは[[http://research.cs.wisc.edu/htcondor/manual/current/condor_rm.html|ここ]]を参照。 {{{ condor_rm }}}