Apptainer/Singularityの利用

概要

Apptainer/Singularity コンテナはアプリケーションをパッケージングし、様々なホストシステムで再現性高く実行するためのツールです。SingularityはほとんどのDockerコンテナを問題なくインポートでき、管理者権限なしで実行できるユーザーアプリケーションとして簡単にデプロイできます。

RescaleでApptainerを使うには、Apptainer/Singularityのビルド環境を使ってイメージファイル(*.sif)を事前に作成する必要があります。 この作業については、Apptainer Quick Start guide: https://apptainer.org/user-docs/master/quick_start.html を参照してください。

作成後、新しいジョブを作成し、Bring Your Own Singularity Containerソフトウェアタイルを選択します。

image 25

基本/実験計画法モードでのコンテナ/シンギュラリティ

Rescaleの基本モードまたは実験計画法モードで実行するコンテナには、終了後にプロセスを返すexecコマンドまたはrunスクリプトが必要です。

E.g. Exec

singularity pull library://lolcow
singularity exec lolcow_latest.sif cowsay moo

E.g. Run

singularity pull library://lolcow
singularity run lolcow_latest.sif

or

singularity pull library://lolcow
./lolcow_latest.sif

End-to-EndデスクトップにおけるApptainer/Singularity

ApptainerがGUIの実行をサポートしている場合、そのインターフェースをRescaleのEnd-to-End デスクトップ上で簡単に実行することができます。 RescaleのマシンイメージにはX-Windowsサーバが含まれており、xhostコマンドを使ってApptainer/Singularityで利用することができます。

Apptainer から GUI を起動するには、Apptainer/Singularity アプリケーションの起動に使用するコマンドの前に xhost + コマンドを実行します。

xhost +
singularity exec <my_gui_application.sif> <path to gui command>

その他の注意事項

バージョン2.3では、SingularityはCUDAアプリケーションを実行するGPUも使用したコンテナの実行をサポートしており、パッケージ化された深層学習ジョブの実行に有用な選択肢となっています。

singularity exec --nv docker://rescale/tf-cnn-benchmarks:1.3.0 python /tf_cnn_benchmarks/tf_cnn_benchmarks.py --model resnet50 --batch_size 
64 --gpus

上記のコマンドラインの–nvフラグは、ホストGPUインターフェースをコンテナに渡すようSingularityに指示し、内部でCUDAアプリケーションを実行できるようにするものである。この例では、TensorFlow CNNベンチマークを1つまたは複数のGPU上のコンテナで実行します。