SlideShare a Scribd company logo
5
Most read
8
Most read
10
Most read
COPYRIGHT ARGO GRAPHICS INC. ALL RIGHTS RESERVED.
ARGO GRAPHICS Inc.
COPYRIGHT ARGO GRAPHICS INC. ALL RIGHTS RESERVED.
ARGO GRAPHICS Inc.
Rescale で Singularity を使ってみよう!
株式会社アルゴグラフィックス / 古家 真之介
第一回 Singularity 勉強会 / 2018.01.10
COPYRIGHT ARGO GRAPHICS INC. ALL RIGHTS RESERVED.
ARGO GRAPHICS Inc.
Quick Overview of Containers
2
物理マシン 物理マシン 物理マシン
ホストOS ホストOS ホストOS
ハイパーバイザ Dockerエンジン
ゲストOS
ライブラリ
ミドルウェア
アプリ
ライブラリ
ミドルウェア
アプリ
ゲストOS
ライブラリ
ミドルウェア
アプリ
ライブラリ
ミドルウェア
アプリ
ライブラリ
ミドルウェア
アプリ
ライブラリ
ミドルウェア
アプリ
物理基盤 仮想化基盤 コンテナ
仮想化と似ているが、コンパクト&シンプル
COPYRIGHT ARGO GRAPHICS INC. 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
COPYRIGHT ARGO GRAPHICS INC. 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
COPYRIGHT ARGO GRAPHICS INC. ALL RIGHTS RESERVED.
ARGO GRAPHICS Inc.
Presentations of Singularity
▍2016年の Intel HPC Developer Conference
▍2017年の ISC で開催された Linux Container Workshop
5
COPYRIGHT ARGO GRAPHICS INC. 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
COPYRIGHT ARGO GRAPHICS INC. 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 GRAPHICS INC. ALL RIGHTS RESERVED.
ARGO GRAPHICS Inc.
Build Container Image
▍適当な環境で作成
 RHEL 7.4 / GCC 4.8.5 / glibc 2.17 / OpenMPI 1.6.4
 Singularity 2.4.2
▍コンテナ内の環境は以下
 CentOS 6.9 / GCC 4.4.7 / glibc 2.12 / OpenMPI 1.6.4
 LAMMPS 23Oct2017
▍コンテナ作成用のファイルを準備 (Dockerfile に相当するもの)
8
Bootstrap: docker ← Docker のイメージを利用
From: centos:6.9 ← CentOS 6.9
%runscript
/usr/local/bin/lmp_g++_openmpi ← “singularity run” した時に実行されるコマンド
%environment
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH ← 実行時の環境変数
%post
yum -y update ← OS のパッケージをいくつか追加
yum -y install gcc gcc-gfortran gcc-c++ make wget git
COPYRIGHT ARGO GRAPHICS INC. 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
COPYRIGHT ARGO GRAPHICS INC. ALL RIGHTS RESERVED.
ARGO GRAPHICS Inc.
Run My-LAMMPS on Rescale
▍入力ファイル
 コンテナのイメージファイル (lammps-23Oct2017.img) と
LAMMPS のインプットファイル (in.lj) を選択
10
COPYRIGHT ARGO GRAPHICS INC. 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
COPYRIGHT ARGO GRAPHICS INC. ALL RIGHTS RESERVED.
ARGO GRAPHICS Inc.
Run My-LAMMPS on Rescale
▍ハードウェア
 適切なものを選択 (今回は Nickel 32コア; 2ノード)
12
COPYRIGHT ARGO GRAPHICS INC. ALL RIGHTS RESERVED.
ARGO GRAPHICS Inc.
Run My-LAMMPS on Rescale
▍ジョブ実行
13
COPYRIGHT ARGO GRAPHICS INC. ALL RIGHTS RESERVED.
ARGO GRAPHICS Inc.
Run My-LAMMPS on Rescale
▍ジョブ終了
14
COPYRIGHT ARGO GRAPHICS INC. ALL RIGHTS RESERVED.
ARGO GRAPHICS Inc.
Run My-LAMMPS on Rescale
▍結果の確認
15
COPYRIGHT ARGO GRAPHICS INC. ALL RIGHTS RESERVED.
ARGO GRAPHICS Inc.
Summary
▍Singularity について概要を説明
 HPC 用途に特化したコンテナ
 GPU / Infiniband / MPI / Job Scheduler 等に対応
 コンテナは一つのファイルに全て入っている
▍Rescale は Bring Your Own Singularity Container でサポート
 シリアル版は GPU 対応 (CUDA 8.0)
 MPI 版は Intel MPI 5.0.3 と OpenMPI 1.6.4 に対応
▍LAMMPS が実行できるコンテナを作成し、Rescale で実行
 Nickel 2ノードで問題なく実行できた
16

More Related Content

PDF
Singularityで分散深層学習
PDF
Hopper アーキテクチャで、変わること、変わらないこと
PDF
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
PDF
DNNコンパイラの歩みと最近の動向 〜TVMを中心に〜
PDF
ゼロから始める転移学習
PDF
GAN(と強化学習との関係)
PDF
SSII2022 [OS3-02] Federated Learningの基礎と応用
KEY
PyOpenCLによるGPGPU入門
Singularityで分散深層学習
Hopper アーキテクチャで、変わること、変わらないこと
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
DNNコンパイラの歩みと最近の動向 〜TVMを中心に〜
ゼロから始める転移学習
GAN(と強化学習との関係)
SSII2022 [OS3-02] Federated Learningの基礎と応用
PyOpenCLによるGPGPU入門

What's hot (20)

PDF
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
PPTX
RustによるGPUプログラミング環境
PDF
【プライム・ストラテジー】ローカルLLMを複数組み合わてみた(インフラエンジニアのためのChatGPT入門LT)
PDF
最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2
PDF
第12回 配信講義 計算科学技術特論B(2022)
PDF
第13回 配信講義 計算科学技術特論B(2022)
PDF
[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介
PDF
One Class SVMを用いた異常値検知
PDF
Optimizer入門&最新動向
PDF
Vision and Language(メタサーベイ )
PDF
LLVM最適化のこつ
PDF
JupyterLabを中心とした快適な分析生活
PDF
【DL輪読会】GPT-4Technical Report
PDF
ブロックチェーン系プロジェクトで着目される暗号技術
PDF
なぜGPUはディープラーニングに向いているか
PDF
ブースティング入門
PDF
最適化超入門
PPTX
【DL輪読会】Scaling Laws for Neural Language Models
PDF
【DL輪読会】Domain Generalization by Learning and Removing Domainspecific Features
PDF
一般向けのDeep Learning
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
RustによるGPUプログラミング環境
【プライム・ストラテジー】ローカルLLMを複数組み合わてみた(インフラエンジニアのためのChatGPT入門LT)
最新リリース:Optuna V3の全て - 2022/12/10 Optuna Meetup #2
第12回 配信講義 計算科学技術特論B(2022)
第13回 配信講義 計算科学技術特論B(2022)
[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介
One Class SVMを用いた異常値検知
Optimizer入門&最新動向
Vision and Language(メタサーベイ )
LLVM最適化のこつ
JupyterLabを中心とした快適な分析生活
【DL輪読会】GPT-4Technical Report
ブロックチェーン系プロジェクトで着目される暗号技術
なぜGPUはディープラーニングに向いているか
ブースティング入門
最適化超入門
【DL輪読会】Scaling Laws for Neural Language Models
【DL輪読会】Domain Generalization by Learning and Removing Domainspecific Features
一般向けのDeep Learning
Ad

Similar to Rescale で Singularity を使ってみよう! (20)

PDF
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
PPTX
ラズパイ2で動く Docker PaaS
PDF
今だからこそ知りたい Docker Compose/Swarm 入門
PDF
パフォーマンス計測Ciサービスを作って得た知見を共有したい
PDF
Docker実践入門
PDF
成長を加速する minne の技術基盤戦略
PDF
Al mininum 47redmine-2nd
PDF
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
PPTX
ラズパイ2で動く Docker PaaSを作ってみたよ
PDF
Grailsのススメ(仮)
PDF
Docker ComposeでMastodonが必要なものを梱包する話
PPTX
コンテナの基本 ~Docker実践~
PDF
マルチクラウド環境でモビンギはどのようにコンテナを動かしているか
PPTX
Goで作って配布するAzureコマンドラインユーティリティ
PDF
Dockerfileを改善するためのBest Practice 2019年版
PPTX
BuildKitによる高速でセキュアなイメージビルド
PPTX
Docker活用ソリューション紹介
PDF
ゆるふわAzure Functions
PDF
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
PDF
GitHub Actions で CI/CD
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
ラズパイ2で動く Docker PaaS
今だからこそ知りたい Docker Compose/Swarm 入門
パフォーマンス計測Ciサービスを作って得た知見を共有したい
Docker実践入門
成長を加速する minne の技術基盤戦略
Al mininum 47redmine-2nd
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
ラズパイ2で動く Docker PaaSを作ってみたよ
Grailsのススメ(仮)
Docker ComposeでMastodonが必要なものを梱包する話
コンテナの基本 ~Docker実践~
マルチクラウド環境でモビンギはどのようにコンテナを動かしているか
Goで作って配布するAzureコマンドラインユーティリティ
Dockerfileを改善するためのBest Practice 2019年版
BuildKitによる高速でセキュアなイメージビルド
Docker活用ソリューション紹介
ゆるふわAzure Functions
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
GitHub Actions で CI/CD
Ad

Rescale で Singularity を使ってみよう!

  • 1. COPYRIGHT ARGO GRAPHICS INC. ALL RIGHTS RESERVED. ARGO GRAPHICS Inc. COPYRIGHT ARGO GRAPHICS INC. ALL RIGHTS RESERVED. ARGO GRAPHICS Inc. Rescale で Singularity を使ってみよう! 株式会社アルゴグラフィックス / 古家 真之介 第一回 Singularity 勉強会 / 2018.01.10
  • 2. COPYRIGHT ARGO GRAPHICS INC. ALL RIGHTS RESERVED. ARGO GRAPHICS Inc. Quick Overview of Containers 2 物理マシン 物理マシン 物理マシン ホストOS ホストOS ホストOS ハイパーバイザ Dockerエンジン ゲストOS ライブラリ ミドルウェア アプリ ライブラリ ミドルウェア アプリ ゲストOS ライブラリ ミドルウェア アプリ ライブラリ ミドルウェア アプリ ライブラリ ミドルウェア アプリ ライブラリ ミドルウェア アプリ 物理基盤 仮想化基盤 コンテナ 仮想化と似ているが、コンパクト&シンプル
  • 3. COPYRIGHT ARGO GRAPHICS INC. 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 GRAPHICS INC. 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 GRAPHICS INC. ALL RIGHTS RESERVED. ARGO GRAPHICS Inc. Presentations of Singularity ▍2016年の Intel HPC Developer Conference ▍2017年の ISC で開催された Linux Container Workshop 5
  • 6. COPYRIGHT ARGO GRAPHICS INC. 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 GRAPHICS INC. 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
  • 8. COPYRIGHT ARGO GRAPHICS INC. ALL RIGHTS RESERVED. ARGO GRAPHICS Inc. Build Container Image ▍適当な環境で作成  RHEL 7.4 / GCC 4.8.5 / glibc 2.17 / OpenMPI 1.6.4  Singularity 2.4.2 ▍コンテナ内の環境は以下  CentOS 6.9 / GCC 4.4.7 / glibc 2.12 / OpenMPI 1.6.4  LAMMPS 23Oct2017 ▍コンテナ作成用のファイルを準備 (Dockerfile に相当するもの) 8 Bootstrap: docker ← Docker のイメージを利用 From: centos:6.9 ← CentOS 6.9 %runscript /usr/local/bin/lmp_g++_openmpi ← “singularity run” した時に実行されるコマンド %environment export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH ← 実行時の環境変数 %post yum -y update ← OS のパッケージをいくつか追加 yum -y install gcc gcc-gfortran gcc-c++ make wget git
  • 9. COPYRIGHT ARGO GRAPHICS INC. 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 GRAPHICS INC. ALL RIGHTS RESERVED. ARGO GRAPHICS Inc. Run My-LAMMPS on Rescale ▍入力ファイル  コンテナのイメージファイル (lammps-23Oct2017.img) と LAMMPS のインプットファイル (in.lj) を選択 10
  • 11. COPYRIGHT ARGO GRAPHICS INC. 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 GRAPHICS INC. ALL RIGHTS RESERVED. ARGO GRAPHICS Inc. Run My-LAMMPS on Rescale ▍ハードウェア  適切なものを選択 (今回は Nickel 32コア; 2ノード) 12
  • 13. COPYRIGHT ARGO GRAPHICS INC. ALL RIGHTS RESERVED. ARGO GRAPHICS Inc. Run My-LAMMPS on Rescale ▍ジョブ実行 13
  • 14. COPYRIGHT ARGO GRAPHICS INC. ALL RIGHTS RESERVED. ARGO GRAPHICS Inc. Run My-LAMMPS on Rescale ▍ジョブ終了 14
  • 15. COPYRIGHT ARGO GRAPHICS INC. ALL RIGHTS RESERVED. ARGO GRAPHICS Inc. Run My-LAMMPS on Rescale ▍結果の確認 15
  • 16. COPYRIGHT ARGO GRAPHICS INC. ALL RIGHTS RESERVED. ARGO GRAPHICS Inc. Summary ▍Singularity について概要を説明  HPC 用途に特化したコンテナ  GPU / Infiniband / MPI / Job Scheduler 等に対応  コンテナは一つのファイルに全て入っている ▍Rescale は Bring Your Own Singularity Container でサポート  シリアル版は GPU 対応 (CUDA 8.0)  MPI 版は Intel MPI 5.0.3 と OpenMPI 1.6.4 に対応 ▍LAMMPS が実行できるコンテナを作成し、Rescale で実行  Nickel 2ノードで問題なく実行できた 16