COPYRIGHT ARGO GRAPHICSINC. ALL RIGHTS RESERVED.
ARGO GRAPHICS Inc.
COPYRIGHT ARGO GRAPHICS INC. ALL RIGHTS RESERVED.
ARGO GRAPHICS Inc.
Rescale で Singularity を使ってみよう!
株式会社アルゴグラフィックス / 古家 真之介
第一回 Singularity 勉強会 / 2018.01.10
COPYRIGHT ARGO GRAPHICSINC. ALL RIGHTS RESERVED.
ARGO GRAPHICS Inc.
What is Singularity?
▍Docker のようなコンテナ
HPC 用途に特化
▍Lawrence Berkley National Laboratory で作られた
http://singularity.lbl.gov
▍GPU / Infiniband / MPI に対応
これらは HPC 用途では必須
▍Job Scheduler にも対応
SLURM / Torque / SGE など
▍実行時に root 権限不要
システム管理者的にハードルが低い
▍コンテナ管理がラク
コンテナが一つのファイルに全て入っているため、他のホストで実
行する際はこれをコピーするだけ
3
4.
COPYRIGHT ARGO GRAPHICSINC. ALL RIGHTS RESERVED.
ARGO GRAPHICS Inc.
What is Singularity?
▍主なコマンド
コンテナ作成時に設定したコマンドを実行
▶ singularity run xxx.img
▶ ./xxx.img
任意のコマンドを実行
▶ singularity exec xxx.img /path/to/command
コンテナ内でシェルを起動
▶ singularity shell xxx.img
▍詳細は以下の論文で。。。
Kurtzer GM, Sochat V, Bauer MW (2017)
Singularity: Scientific containers for mobility of compute.
PLoS ONE 12(5): e0177459.
https://doi.org/10.1371/journal.pone.0177459
4
5.
COPYRIGHT ARGO GRAPHICSINC. ALL RIGHTS RESERVED.
ARGO GRAPHICS Inc.
Presentations of Singularity
▍2016年の Intel HPC Developer Conference
▍2017年の ISC で開催された Linux Container Workshop
5
6.
COPYRIGHT ARGO GRAPHICSINC. ALL RIGHTS RESERVED.
ARGO GRAPHICS Inc.
Singularity on Rescale
▍Rescale で Singularity をサポート (ちょい古い 2.3系だが)
Bring Your Own Singularity Container
Bring Your Own Singularity Container (MPI)
6
7.
COPYRIGHT ARGO GRAPHICSINC. ALL RIGHTS RESERVED.
ARGO GRAPHICS Inc.
Singularity on Rescale - Let’s try!
▍Rescale の「Bring Your Own Singularity Container (MPI)」を
使って、複数ノードにまたがる MPI ジョブを実行してみる
Bring Your Own (MPI) Software との大きな違いは、OSやラ
イブラリ等を選ぶ自由度がある
▶ CentOS6 / CentOS7 / Ubuntu16.04 / SLES12 などなど
▍今回は分子動力学法のアプリ LAMMPS で試してみる
他のアプリでも基本的な手順は一緒
▍(お金が無いので) 今回は Nickel を 2ノード (32コア) で動作確認
2ノードで実行できるのであれば、3ノード以上も大丈夫かと。。。
7
COPYRIGHT ARGO GRAPHICSINC. ALL RIGHTS RESERVED.
ARGO GRAPHICS Inc.
Build Container Image
▍イメージファイル作成
9
$ singularity img.create -s 768 lammps-23Oct2017.img ← 768MBのイメージファイル作成
$ sudo singularity build -w lammps-23Oct2017.img singularity-lammps ← singularity-lammps (さっき作ったファイル) の内容に従い
イメージの中身作成
※バージョン2.4よりも古いSingularityで実行する場合、
-w を付けて読み書き可能な(古い)形式でビルドする
mkdir /tmp/build
cd /tmp/build ← ここから OpenMPI の build
wget https://www.open-mpi.org/software/ompi/v1.6/downloads/openmpi-1.6.4.tar.gz
tar xvfz openmpi-1.6.4.tar.gz
cd openmpi-1.6.4
./configure --prefix=/usr/local
make
make install
cd /tmp/build ← ここから LAMMPS の build
git clone https://github.com/lammps/lammps.git
cd lammps
git checkout -b patch_23Oct2017
cd src/
make g++_openmpi
cp lmp_g++_openmpi /usr/local/bin/
cd / ← 後処理とゴミ掃除
mkdir /enc
rm -rf /tmp/build
yum clean all
10.
COPYRIGHT ARGO GRAPHICSINC. ALL RIGHTS RESERVED.
ARGO GRAPHICS Inc.
Run My-LAMMPS on Rescale
▍入力ファイル
コンテナのイメージファイル (lammps-23Oct2017.img) と
LAMMPS のインプットファイル (in.lj) を選択
10
11.
COPYRIGHT ARGO GRAPHICSINC. ALL RIGHTS RESERVED.
ARGO GRAPHICS Inc.
Run My-LAMMPS on Rescale
▍ソフトウェア
Bring Your Own Singularity Container (MPI) を選択
バージョンは OpenMPI 1.6.4 を選択
コマンドは適切なものに変更
▶ mpirun ... singularity run lammps-23Oct2017.img < in.lj
11
12.
COPYRIGHT ARGO GRAPHICSINC. ALL RIGHTS RESERVED.
ARGO GRAPHICS Inc.
Run My-LAMMPS on Rescale
▍ハードウェア
適切なものを選択 (今回は Nickel 32コア; 2ノード)
12
13.
COPYRIGHT ARGO GRAPHICSINC. ALL RIGHTS RESERVED.
ARGO GRAPHICS Inc.
Run My-LAMMPS on Rescale
▍ジョブ実行
13
14.
COPYRIGHT ARGO GRAPHICSINC. ALL RIGHTS RESERVED.
ARGO GRAPHICS Inc.
Run My-LAMMPS on Rescale
▍ジョブ終了
14
15.
COPYRIGHT ARGO GRAPHICSINC. ALL RIGHTS RESERVED.
ARGO GRAPHICS Inc.
Run My-LAMMPS on Rescale
▍結果の確認
15