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ソフトウェアタイルを選択します。

基本/実験計画法モードでのコンテナ/シンギュラリティ
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上のコンテナで実行します。