ジョブ管理システムを介したジョブの実行 - nibb-unix/gitc202502-unix GitHub Wiki

本コースでは、コマンドを直接シェル上でタイプして対話的に実行してきた。この場合、すべてのコマンドは現在ログインしている計算機(ログインノード)上で実行される。一方、多人数で利用する計算センターでは、計算を実行する計算機(計算ノード)はログインノードとは通常別になっており、実行するコマンド(ジョブ)は、ジョブ管理システムを介して、計算ノードに適切に割り振られて実行されるしくみになっている。そこで、実行するコマンドはスクリプトとして記述し、それをジョブ管理システムに渡して(サブミット)実行を委託する必要がある。

RCCSにおけるジョブ管理システムを介した実行

本コースで使用している岡﨑共通研究施設・計算科学研究センター(RCCS)では、PBSというジョブ管理システムを独自に拡張したシステムが用いられており、jsubコマンドを用いてジョブをサブミットする。

jsub [スクリプト]

(準備)ccfep 上で実行する。以下、RCCS利用登録を行なったユーザのみ実行可能 新たなディレクトリを作って、入力ファイルをコピー

$ cd
$ mkdir jsub_test
$ cd jsub_test
$ cp ~/gitc/data/5_NGS/ecoli.fastq .
$ cp ~/gitc/data/5_NGS/ecoli_genome.fa .

jsub用スクリプトを作成する。

$ emacs exec_bowtie2.sh

exec_bowtie2.sh の内容

#!/bin/sh
#PBS -l select=1:ncpus=4:mpiprocs=1:ompthreads=4
#PBS -l walltime=1:00:00
cd ${PBS_O_WORKDIR}
bowtie2-build ecoli_genome.fa ecoli
bowtie2 -p ${NCPUS} -U ecoli.fastq -x ecoli -S ecoli.sam

#PBS で始まる行で、PBSへの指示を記述する。

  • -l はジョブが使用する計算リソースを指定するオプション。
  • マルチスレッドで複数コア(CPU)を使用する場合、ncpusとompthreadsに使用するコア数を指定する。
  • walltime は実行時間の上限を指定する。
  • ${PBS_O_WORKDIR} にはqsubを実行しているカレントディレクトリ名、${NCPUS}には2行目で設定した本ジョブで使用するCPU数(ここでは4)が入る。

jsub で実行

$ jsub exec_bowtie2.sh

実行状況の確認。実行待ちや実行中のジョブが表示される。何も出力されなければ終了している。

$ jobinfo

実行結果を手元の端末にダウンロードするには、ローカル端末からscpで ccfepにアクセスする。

% scp [email protected]:jsub_test/ecoli.sam .

詳しくは、RCCSのホームページ https://ccportal.ims.ac.jp を参照