menu

コンテナの利用

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-1. Docker Hubを検索

Docker Hubからイメージを検索します.イメージを選択するとpullコマンドが表示されますので,コピーしておきます.

Docker Hub

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

2: JAIST リポジトリからダウンロードして変換

イメージをカスタマイズしたい場合は,あらかじめ作成したイメージをJAISTレジストリにアップロードし,これをダウンロードして利用できます.

JAISTレジストリへのアップロード方法はこちらをご覧ください.

JAISTレジストリ

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