Singularity利用法

最終更新日:2021年3月15日

Singularityは、HPC向けのコンテナエンジンです。 ITO以外の環境で構築したコンテナイメージを用いることで、 ITOに入っていないソフトウェアに依存するアプリケーションの実行が可能となります。 また、コンテナイメージとして、Dockerのものも利用可能です。

なお、ITOでは管理者権限での Singularityの利用が出来ないため、コンテナイメージの buildは行えません。


利用環境

  • サブシステムA
  • バージョン 九州大学構成員 学術研究機関構成員 民間利用の方
    3.7.2
  • サブシステムB
  • バージョン 九州大学構成員 学術研究機関構成員 民間利用の方
    3.7.2
  • 基本フロントエンド
  • バージョン 九州大学構成員 学術研究機関構成員 民間利用の方
    3.7.2
  • 大容量フロントエンド
  • バージョン 九州大学構成員 学術研究機関構成員 民間利用の方
    3.7.2

利用方法

環境設定

$ module load singularity/3.7.2

TensorFlowのコンテナイメージを取得するコマンドの例

$ singularity pull docker://tensorflow/tensorflow:1.12.0-gpu-py3

実行時に仮想メモリ不足を起こす可能性がありますので、 ログインノード、フロントエンドノードで実行する場合は、 事前に以下のコマンドで利用可能な仮想メモリ領域を増やしておいてください。

$ ulimit -v 30000000

TensorFlowのコンテナイメージを実行するスクリプトの例

#!/bin/bash
#PJM -L "vnode=1"
#PJM -L "vnode-core=36"
#PJM -L "rscunit=ito-b"
#PJM -L "rscgrp=ito-g-4-dbg"
#PJM -L "elapse=00:10:00"
#PJM -j
 
module load singularity/3.7.2
 
export SINGULARITYENV_PATH=$PATH
export SINGULARITYENV_LD_LIBRARY_PATH=$LD_LIBRARY_PATH
 

singularity exec --nv tensorflow_1.12.0-gpu-py3.sif python3 tutorial.py

なお、singularity execのオプション --nv は、GPUを利用するためのもので、ITOでは、 フロントエンドのベアメタル使用時、およびバックエンドの ITOサブシステムBへのジョブで有効です。