コンテナの利用
VPCCではDocker hub,プライベートリポジトリなどからコンテナイメージを呼び出し, 計算に利用することができます.
コンテナを用いた計算ジョブの実行
VPCCではコンテナの起動に"Singularity" コンテナエンジンを用います.
Dockerイメージを用いる場合は先にSingularityイメージファイルに変換する必要があります.変換方法は<Singularity イメージ変換>を参照してください.
1. インタラクティブ実行
ジョブの実行,計算を対話的に実行することができます.
以下の例では計算ノード上に"whalesay.sif"コンテナを起動し,"cowsay hello" コマンドを実行します.
GPU無し:
[sentan@vpcc]% qsub -q TINY -l select=1 -I
[sentan@vpcc-XXX]% singularity shell whalesay.sif
Singularity whalesay.sif: cowsay hello
GPU付き:
[sentan@vpcc]% qsub -q GPU-1 -l select=1 -I
[sentan@vpcc-gpuXXX]% singularity shell --nv whalesay.sif
Singularity whalesay.sif: cowsay hello
*事前にカレントディレクトリにwhalesay.sifを作成しておいてください.イメージのサンプルは/work/Samples/Images以下にあります
2.バッチファイル実行
実行内容をバッチファイルに記載して登録しておくことで,多数の計算を自動実行できます
以下のバッチファイルでは計算ノード上に"whalesay.sif"コンテナを起動し,コンテナ内で"cowsay hello" コマンドを実行します.
*事前にカレントディレクトリにwhalesay.sifファイルを準備しておいてください.サンプルは/work/Samples/Images以下にあります
GPU無し:
PBS_singularity.csh:
#PBS -N test_singularity
#PBS -j oe -l select=1
cd $PBS_O_WORKDIR
singularity exec ./whalesay.sif cowsay hello > result
バッチファイルは以下のように登録します.利用するリソースサイズ(CPU数等)はこちらをご覧ください.
[sentan@vpcc]% qsub -q TINY -l select=1 PBS_singularity.csh
GPU有:
#PBS -N test_singularity
#PBS -j oe -l select=1
cd $PBS_O_WORKDIR
singularity exec --nv ./whalesay.sif cowsay hello > result
バッチファイルは以下のように登録します.利用するリソースサイズ(CPU数等)はこちらをご覧ください.
[sentan@vpcc]% qsub -q GPU-1 -l select=1 PBS_singularity.csh
Singularity イメージ変換
1. Docker hubからダウンロードして変換
注意:Docker hubのイメージは必ずしも安全ではなく,不正なプログラム,脆弱性を含むライブラリが混入している場合があります.
可能な限りOfficialイメージ, Velified Publisherイメージを利用してください.
1-2. Dockerイメージを呼び出し,Singularityイメージに変換.
VPCC計算ノードを利用します.
VPCCにログインし,qsubコマンドで計算ノードにインタラクティブログインしてください.
[sentan@vpcc]% qsub -q TINY -l select=1
確認したpullコマンドを用いてsifファイルを作成します.
このとき,pullコマンド内の "docker pull" を "docker://"に置き換え,以下のように実行してください.
例:"docker pull python" で呼び出されるイメージを"python.sif"ファイルとして作成する場合
[sentan@vpcc-XXX]% singularity pull python.sif docker://python
sifファイルが作成されていることを確認してください.
[sentan@vpcc-XXX]% ls
python.sif
sifファイルが作成されたら,インタラクティブジョブを一旦終了しましょう.
[sentan@vpcc-XXX]% exit
VPCCにログインし,qsubコマンドで計算ノードにインタラクティブログインしてください.
[sentan@vpcc]% qsub -q TINY -l select=1
イメージファイル作成:
[sentan@vpcc-xxx]% singularity pull --docker-login XXXXX.sif<file名> docker://moby.jaist.ac.jp/<ユーザ名>/<プロジェクト>:<タグ>
Enter Docker Username: < ユーザ名
Enter Docker Password: < moby.jaist.ac.jpのパスワード
sifファイルが作成されたら,インタラクティブジョブを一旦終了しましょう.
[sentan@vpcc-xxx]% exit