SlideShare a Scribd company logo
AIクラウドでのLinuxコンテナ利⽤
に向けた性能評価
佐藤 仁, ⼩川 宏⾼
産業技術総合研究所 ⼈⼯知能研究センター
1
2017年12⽉17⽇
第162回ハイパフォーマンスコンピューティング研究発表会
Exclusive Summary
2
とある講演を聞いた
某スパコンユーザの
Facebook(Twitterともリンク設定)
⼈⼯知能技術の発展には
アルゴリズム×ビッグデータ×計算基盤
の⼀体的な進展が不可⽋
3
ビッグデータ
アルゴリズム
計算基盤
深層学習, 機械学習, etc.
クラウド, スパコン, etc.
研究開発・実証・橋渡しを⾒据えたAIプラットフォームの構築・展開
4
NEDOプロ(NAIROBI)
人工知能研究開発・実証
のための研究テストベッド
H28.6運用開始
産総研AIクラウド(AAIC)
産総研と連携機関による
人工知能実証のための
共用プラットフォーム
H29.6運用開始
AI橋渡しクラウド(ABCI)
高密度・省エネ構成
運用技術・ノウハウ
うまくいった成果を
大規模実証
複数の産学官による
オープンイノベーションプ
ラットフォーム
最初からIDCへの技術移転
を見越した設計・運用
H30.3納入(予定)
IDCなどに
商用展開
AIRCの計算基盤ロードマップ
グリーンITプロ
実サービス化
5
産総研AIクラウド(通称AAIC)とは?
• 400x NVIDIA Tesla P100s and Infiniband EDR accelerate various AI workloads
including ML (Machine Learning) and DL (Deep Learning).
• Advanced data analytics leveraged by 4PiB shared Big Data Storage and Apache
Spark w/ its ecosystem.
AI Computation System Large Capacity Storage System
Computation Nodes (w/GPU) x50
• Intel Xeon E5 v4 x2
• NVIDIA Tesla P100 (NVLink) x8
• 256GiB Memory, 480GB SSD
Computation Nodes (w/o GPU) x68
• Intel Xeon E5 v4 x2
• 256GiB Memory, 480GB SSD
Mgmt & Service
Nodes x16
Interactive Nodes
x2
400 Pascal GPUs
30TB Memory
56TB SSD
DDN SFA14K
• File server (w/10GbEx2,
IB EDRx4) x4
• 8TB 7.2Krpm NL-SAS
HDD x730
• GRIDScaler (GPFS)
Computation Network
Mellanox CS7520 Director Switch
• EDR (100Gbps) x216
Bi-direction 200Gbps
Full bi-section bandwidth
Service and Management Network
IB EDR (100Gbps) IB EDR (100Gbps)
GbE or 10GbE GbE or 10GbE
Firewall
• FortiGate 3815D x2
• FortiAnalyzer 1000E x2
UTM Firewall
40-100Gbps class
10GbE
SINET5
Internet
Connection
10-100GbE
>4PiB effective
RW100GB/s
既存のGPUスパコン
に類似した構成
GPU計算ノードの構成
• NVIDIA TESLA P100 x 8
• Intel Xeon E5-2630 v4 x 2 ソケット
– ソケットあたり10コア
– Hyper Threading (HT) で動作
– ノードあたり40コアにみえる
• 256GiBのメモリ
• 480GBのSSD
• EDR Infiniband
– 計算ノード
– GPFSストレージへ接続
6
Machine (256GB total)
NUMANode P#0 (128GB)
Package P#0
L3 (25MB)
L2 (256KB)
L1d (32KB)
L1i (32KB)
Core P#0
PU P#0
PU P#20
L2 (256KB)
L1d (32KB)
L1i (32KB)
Core P#1
PU P#1
PU P#21
L2 (256KB)
L1d (32KB)
L1i (32KB)
Core P#2
PU P#2
PU P#22
L2 (256KB)
L1d (32KB)
L1i (32KB)
Core P#3
PU P#3
PU P#23
L2 (256KB)
L1d (32KB)
L1i (32KB)
Core P#4
PU P#4
PU P#24
L2 (256KB)
L1d (32KB)
L1i (32KB)
Core P#8
PU P#5
PU P#25
L2 (256KB)
L1d (32KB)
L1i (32KB)
Core P#9
PU P#6
PU P#26
L2 (256KB)
L1d (32KB)
L1i (32KB)
Core P#10
PU P#7
PU P#27
L2 (256KB)
L1d (32KB)
L1i (32KB)
Core P#11
PU P#8
PU P#28
L2 (256KB)
L1d (32KB)
L1i (32KB)
Core P#12
PU P#9
PU P#29
PCI 10de:15f9
card1
renderD128
PCI 10de:15f9
card2
renderD129
PCI 10de:15f9
card3
renderD130
PCI 10de:15f9
card4
renderD131
PCI 8086:8d62
sda
PCI 1a03:2000
card0
controlD64
PCI 8086:8d02
NUMANode P#1 (128GB)
Package P#1
L3 (25MB)
L2 (256KB)
L1d (32KB)
L1i (32KB)
Core P#0
PU P#10
PU P#30
L2 (256KB)
L1d (32KB)
L1i (32KB)
Core P#1
PU P#11
PU P#31
L2 (256KB)
L1d (32KB)
L1i (32KB)
Core P#2
PU P#12
PU P#32
L2 (256KB)
L1d (32KB)
L1i (32KB)
Core P#3
PU P#13
PU P#33
L2 (256KB)
L1d (32KB)
L1i (32KB)
Core P#4
PU P#14
PU P#34
L2 (256KB)
L1d (32KB)
L1i (32KB)
Core P#8
PU P#15
PU P#35
L2 (256KB)
L1d (32KB)
L1i (32KB)
Core P#9
PU P#16
PU P#36
L2 (256KB)
L1d (32KB)
L1i (32KB)
Core P#10
PU P#17
PU P#37
L2 (256KB)
L1d (32KB)
L1i (32KB)
Core P#11
PU P#18
PU P#38
L2 (256KB)
L1d (32KB)
L1i (32KB)
Core P#12
PU P#19
PU P#39
PCI 8086:1528
enp129s0f0
PCI 8086:1528
enp129s0f1
PCI 10de:15f9
card5
renderD132
PCI 10de:15f9
card6
renderD133
PCI 10de:15f9
card7
renderD134
PCI 10de:15f9
card8
renderD135
PCI 15b3:1013
ib0 mlx5_0
Indexes: physical
Date: Tue May 30 11:32:43 2017
MEM
CPU Cores
GPUs
Infiniband HBA
SSD
AIアプリケーションの事例(Linuxコンテナ)
• lang2program
– https://github.com/kelvinguu/
lang2program
– ACL 2017 paper内で⽤いられた実装
– Dockerfileの提供
• Tensorflow, PostgresQL,
Python pip Packages, etc.
• 依存関係のあるソフトウェアの
インストールが⼤量に発⽣
7
HPC環境(スパコン)で動くか?
• Dockerの⾮サポート
(セキュリティ上ホストのrootを与えることができない)
• マニュアルにインストールすれば可能だが煩雑
8
ユーザプログラム
数値計算
ライブラリBLAS
ドメイン
固有⾔語
デバッグ・ 性能プロファイル
MPI・OpenMP・CUDA/OpenCL
並列ファイルシステム
Lustre・GPFS
バッチ
ジョブスケジューラ
Linux OS
InfiniBabd
ネットワーク
SAN+ローカ
ルストレージ
X86+
GPU/
アクセラ
レーター
仮想マシン・Linuxコンテナ
Ethernet
ネットワーク
ローカル
ノード
ストレージ
x86 CPU
分散ファイルシステム
HDFS
MapReduceフレームワーク
Spark/Hadoop
ユーザプログラム
RDB
PostgresQL
機械学習
ライブラリ
MLlib/
Mahout
グラフ処理
ライブラリ
GraphX/
Giraph
Java・Scala+統合開発環境
SQLクエリ
エンジン
Hive/Pig
CloudDB/NoSQL
Hbase/Cassandra/MondoDB
コーディネーションエンジン
ZooKeeper
Linux OS
既存クラウド 既存スパコンアプリケーション層
システムソフトウェア層
ハードウェア層
OS層
Fortran・C・C+++統合開発環境
• クラウドはプログラムの実⾏に対話的な操作が必要。
• スパコンはバッチジョブによる実⾏のため不要。
• クラウドは利便性が⾼いプログラム⾔語を採⽤するも⾼速化には向かない。
データ解析等頻繁にプログラムを書き換える利⽤に特化。
• スパコンはマシンの性能を活かせるプログラム⾔語を採⽤するも、プログ
ラムが難しく⽣産性が低い。数値演算などコアな処理はあまりプログラム
を書き換える必要がないため。
• クラウドはデータベース利⽤が多い。
• スパコンは数千・数万台の計算機向けにデバッグ・性能チューニングが必要。
• クラウドは仮想マシン・コンテナ技術による⽤途に応じた環境構築が可能。
• スパコンは⾼速処理のためのベアメタル環境が主。
• クラウドはWebサーバ由来の技術、分散ストレージなどを採⽤。
• スパコンは超広帯域・低遅延ネットワーク、共有ストレージ、GPUなどを採⽤。
AI/ビッグデータ処理の⾼速化が最重要だがソフトウェアエコシステムは皆無
特に分散深層学習・強化学習、HPCと融合したワークロード等
既存のクラウドとスパコンで異なるソフトウェアエコシステム
AIクラウドのためのソフトウェアエコシステム
既存のクラウド・スパコンの両⽅の技術要素が必要
9
数値計算
ライブラリ
BLAS/Matlab
デバッグ・ 性能プロファイル
MPI・OpenMP・CUDA/OpenCL
バッチジョブスケジューラ・ワークフロー
Linux OS
InfiniBabd
ネットワーク
SAN+ローカ
ルストレージ
X86+GPU/
アクセラレーター
Linuxコンテナ
分散ファイ
ルシステム
HDFS
ユーザプログラム
RDB
PostgresQL
機械学習
ライブラリ
グラフ処理
ライブラリ
Python, Jupyter Notebook, R etc.+
統合開発環境
CloudDB/
NoSQL
AIクラウド
アプリケーション層
OS層
深層学習
ライブラリ
Web
サービス
ビッグデータ
処理カーネル
Sort etc.
Fortran・C・
C++
ネイティブコード
並列ファイ
ルシステム
Lustre・GPFS
システムソフトウェア層
ハードウェア層
• 分散深層学習をはじめとする各種フレームワークを簡
単にバッチ処理や対話的な操作で利⽤
• 場合によってはウェブサービスの提供
• Python, Rなどのスクリプト⾔語、Jupyter
Nodebookなどのフレームワークの利⽤
• MPI, OpenMP, CUDAを利⽤した並列処理、HPC由来
の数値演算カーネル(BLAS),ビッグデータ処理カーネ
ル(Sort, PrefixSum, Merge, SetIntersection)のサ
ポート
• ⼤規模なパラメータサーベイ、ジョブの⻑時間実⾏、
ワークフローのサポート
• 画像、映像、⾳声、テキストなど細粒度I/O, 秘匿性の
あるデータへのアクセス
• Linuxコンテナのサポート
• スーパコンピュータ由来のInfiniband, GPUの利⽤、
コモディティサーバの採⽤
Singularity
(ソフトウェアの名称です)
• Singularity
– ⽶国LBNLで開発中のHPC向けLinuxコンテナ
• http://singularity.lbl.gov/
• https://github.com/singularityware/singularity
• 修正BSDライセンス
– ユーザ権限でプログラムを実⾏、ストレージへアクセス
• rootで動作するデーモンが不要 => 資源管理をスケジューラに委ねる
• setuidでroot権限を与えたコマンドを実⾏
(マウント、名前空間の作成、コンテナ内へのホストのPathのʼ作成など)
– Dockerイメージが利⽤可能
• DockerHubと連携
– HPC系のソフトウェアスタックが利⽤可能
• CUDA, MPI, Infiniband, etc.
10
Singularityの利⽤イメージ
sudo singularity build –sandbox tmpdir/ Singularity
sudo singularity build –writable container.img Singularity
sudo singularity build container.img Singularity
sudo singularity build container.img docker://ubuntu
sudo singularity build container.img shub://ubuntu
Sandboxディレクトリの⽣成
コンテナイメージファイルの⽣成
sudo singularity shell –writable container.img
パッケージソフトウェアを
インストール(yum, apt等)
Recipeファイルの利⽤
DockerHubの利⽤ (Dockerコンテナイメージ)
SingularityHubの利⽤(Singularityコンテナイメージ)
container.img
コンテナイメージ
ファイルを転送
インタラクティブにコンテナイメージを作成
既存のコンテナイメージを利⽤して作成
予め定めた⼿順によりコンテナイメージを作成
singularity run container.img
singularity exec container.img …
singularity shell container.img
シェルを実⾏(shell)
コマンドを与えて実⾏
(exec)
予め定義された動作を
実⾏(run)
ユーザ環境 共有計算機環境
11
Singularityでできること
• GPU, Infiniband, XXXが利⽤できるか?
– ホスト側のデバイス関連ドライバ・ライブラリをコンテナ側
へみせる(nvidia-docker⽅式?)
• MPIが利⽤できるか?
– ホストのMPIをコンテナ側へみせる(コンテナなメリットが薄い)
– コンテナ内にMPIをインストールし、コンテナの外からキックする
(ホスト側と同じMPIを使⽤し, Buildも同じにする必要)
• mpirun –np N singularity exec container.img mpi_program
• mpi4pyが利⽤できるか?
– コンテナ内にMPIをインストール
– コンテナ内のMPIに対してmpi4pyをインストール
– コンテナ外からキック
12
分散深層学習フレームワーク向けコンテナイメージの構築
• ホスト側
– GPUやIninibandを活⽤するために
デバイス関連ドライバ・ライブラリを
コンテナ側へマウント
• GPUやIninibandの利⽤
• nvidia-docker⽅式
• コンテナ側
– ユーザランドライブラリの
インストール
• CUDA, CuDNN, NCCL2, ibverbs, MPI
– 分散深層学習フレームワークの
インストール
• 最適化されたビルド
13
Base Drivers, Libraries on Host
CUDA
Drivers
Infiniband
Drivers
Filesystem
Libraries
(GPFS, Lustre)
Userland Libraries on Container
CUDA CuDNN NCCL2
MPI
(mpi4py)
Mount
ibverbs
Distributed Deep Learning
Frameworks
Caffe2 ChainerMNDistributed
TensorflowMXNet
予備実験
• AIのワークロードを想定
– 演算性能(GEMM)
– メモリバンド幅性能(STREAM)
– 通信性能(OSU Micro Benchmarks)
– ストレージI/O性能 (FIO)
– 分散深層学習性能(Imagenet-1K)
• 実験環境
– AAIC
– ベアメタル
• CentOS 7.3, Linux 3.10.0,
gcc v4.8.5, glibc v2.17
– Singularity
• Singularity 2.4
• Ubuntu 16.04, Linux v3.10.0
gcc v5.4.0, glibc v2.23
– 両環境
• CUDA 8.0.61.2, CuDNN v6.0.21
NCCL v2.0.5, OpenMPI v2.1.1
14
GPU計算ノードの構成(再掲)
• NVIDIA TESLA P100 x 8
• Intel Xeon E5-2630 v4 x 2 ソケット
– ソケットあたり10コア
– Hyper Threading (HT) で動作
– ノードあたり40コアにみえる
• 256GiBのメモリ
• 480GBのSSD
• EDR Infiniband
– 計算ノード
– GPFSストレージへ接続
15
Machine (256GB total)
NUMANode P#0 (128GB)
Package P#0
L3 (25MB)
L2 (256KB)
L1d (32KB)
L1i (32KB)
Core P#0
PU P#0
PU P#20
L2 (256KB)
L1d (32KB)
L1i (32KB)
Core P#1
PU P#1
PU P#21
L2 (256KB)
L1d (32KB)
L1i (32KB)
Core P#2
PU P#2
PU P#22
L2 (256KB)
L1d (32KB)
L1i (32KB)
Core P#3
PU P#3
PU P#23
L2 (256KB)
L1d (32KB)
L1i (32KB)
Core P#4
PU P#4
PU P#24
L2 (256KB)
L1d (32KB)
L1i (32KB)
Core P#8
PU P#5
PU P#25
L2 (256KB)
L1d (32KB)
L1i (32KB)
Core P#9
PU P#6
PU P#26
L2 (256KB)
L1d (32KB)
L1i (32KB)
Core P#10
PU P#7
PU P#27
L2 (256KB)
L1d (32KB)
L1i (32KB)
Core P#11
PU P#8
PU P#28
L2 (256KB)
L1d (32KB)
L1i (32KB)
Core P#12
PU P#9
PU P#29
PCI 10de:15f9
card1
renderD128
PCI 10de:15f9
card2
renderD129
PCI 10de:15f9
card3
renderD130
PCI 10de:15f9
card4
renderD131
PCI 8086:8d62
sda
PCI 1a03:2000
card0
controlD64
PCI 8086:8d02
NUMANode P#1 (128GB)
Package P#1
L3 (25MB)
L2 (256KB)
L1d (32KB)
L1i (32KB)
Core P#0
PU P#10
PU P#30
L2 (256KB)
L1d (32KB)
L1i (32KB)
Core P#1
PU P#11
PU P#31
L2 (256KB)
L1d (32KB)
L1i (32KB)
Core P#2
PU P#12
PU P#32
L2 (256KB)
L1d (32KB)
L1i (32KB)
Core P#3
PU P#13
PU P#33
L2 (256KB)
L1d (32KB)
L1i (32KB)
Core P#4
PU P#14
PU P#34
L2 (256KB)
L1d (32KB)
L1i (32KB)
Core P#8
PU P#15
PU P#35
L2 (256KB)
L1d (32KB)
L1i (32KB)
Core P#9
PU P#16
PU P#36
L2 (256KB)
L1d (32KB)
L1i (32KB)
Core P#10
PU P#17
PU P#37
L2 (256KB)
L1d (32KB)
L1i (32KB)
Core P#11
PU P#18
PU P#38
L2 (256KB)
L1d (32KB)
L1i (32KB)
Core P#12
PU P#19
PU P#39
PCI 8086:1528
enp129s0f0
PCI 8086:1528
enp129s0f1
PCI 10de:15f9
card5
renderD132
PCI 10de:15f9
card6
renderD133
PCI 10de:15f9
card7
renderD134
PCI 10de:15f9
card8
renderD135
PCI 15b3:1013
ib0 mlx5_0
Indexes: physical
Date: Tue May 30 11:32:43 2017
MEM
CPU Cores
GPUs
Infiniband HBA
SSD
演算性能(GEMM)
CPU GPU
16
Better
メモリバンド幅性能(STREAM)
17
Triad
Better
通信性能(OSU Micro Benchmarks v5.3.2)
AllReduce (Ave. Latency, 2nodes, 8gpus/node)
AllReduce(h2h) AllReduce(d2d)
18
Better
ストレージI/O性能(FIO v2.19)
スループット
READ WRITE
19
Better
ストレージI/O性能(FIO v2.19)
IOPS (qdepth=1, 16)
READ WRITE
20
Better
Singularityを⽤いた分散深層学習フレームワークの実⾏
• 実験環境
– AAIC 8 nodes (64 GPUs)
– フレームワーク: CHainerMN v1.0.0
• Chainer 2.1.0, Cupy 1.0.3, mpi4py 2.0.0, Python 3.6.1
– コンテナ
• Singularity v2.3.1
• Ubuntu 16.04, gcc-5.4.0, glibc-2.23
– ベアメタル
• CentOS 7.3, gcc-4.8.5, glibc-2.17,
• 実験設定
– データセット: Imagenet-1K
– モデル: ResNet-50
– 訓練:
• バッチサイズ: GPU毎に32, 32 x 64
• 学習率: 30 epoch毎に0.1倍
• 最適化: Momentum SGD (momentum=0.9)
• Weight Decay: 0.0001
• 訓練エポック数: 100
21
ベアメタル実⾏とほぼ遜⾊のない性能を確認
Better
議論
• Singularity
– ベアメタルと⽐較してほぼ遜⾊のない性能を確認
• 演算性能だけでなく、メモリバンド幅、ストレージI/O,
ネットワーク性能(要確認)も
• メモリのフットプリントは未確認
– OSの違いを超えられる(CentOS vs. Ubuntu)
• 特に、glibcのバージョンの違いも容易に超えられる
(glibcが互換性を担保するような実装になっている)
– 導⼊しやすさ
• configure, make, make installで可能。共有ストレージへも可能。
– あとはエンジニアリングイシュー
• ソフトウェアの安定性の向上
• セキュリティイシューを潰す
22
議論 (contʼd)
• Singularityの⽋点
– コンテナ内常駐デーモン不可
– Debug系(gdb)不可
– 資源管理は(cgroupsではなく)スケジューラまかせ
23
議論 (contʼd)
• ユーザが任意のコンテナを動かして問題が起きるか?
– 特に問題がないと判断している(問題を定義したい)
– 基本的には実⾏するユーザの責任
(現状でも任意のソフトウェアをユーザが動かしているので
ほぼ同じ問題)
• 特殊なコンテナが必要?制限はある?
– 基本的には不要。ARMでもOPAでも(Linuxであれば)動く。
– ただし、計算環境に最適化するためには再コンパイルなどした⽅が良い。
• ISVアプリのライセンス
– コンテナに含めるのは難しい(気がする)
– ユーザ権限でホストの環境をコンテナ側にreadマウントすることはできる
– ホストにISVアプリをインストール、コンテナ側にマウント?
24
関連研究
• Docker
– root権限が必要なデーモンによりコンテナ起動
– cgroupによる資源管理 (rktも)
• Shifter
– NERSCで開発 (Coriとかで利⽤?)、CSCSで拡張(Piz Dizant)
– Singulairtyと同様の技術, ImageGatewayの存在, Crayのサポート
• ChalieCloud [SCʼ17]
– Singulairtyと同様の技術
– Singularityのほうが盛り上がっている感はある
(OpenMPI v3.0やMvapich v2.3.2のSingularityサポート)
• McKernel Integration [Rossʼ17]
– Oakforest PACSの事例
– GeoFM, CCS-QCD, mniFE、今回の報告と同様の結果・傾向
25
まとめ
• AIクラウドのためのソフトウェアエコシステムの必要性
– AIには既存のクラウドとスパコンの両⽅の技術要素が必要
– AIというマーケットが広そうなところに
如何にHPC技術を取り込みやすい環境を作っていくか?
• Singularityを⽤いたユーザ権限でのコンテナ実⾏
– 分散深層学習フレームワーク(≒HPCアプリケーション)の
コンテナ化
– 予備実験による性能⽐較
• ベアメタルと⽐較してほぼ遜⾊のない性能を確認
26
ABCI AI Bridging Cloud Infrastructure
The worlds first large-scale Open AI Infrastructure
27
ABCI
Serving your AI needs
in Spring 2018

More Related Content

What's hot

Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55
Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55
Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55
Preferred Networks
 
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
Preferred Networks
 
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
Yahoo!デベロッパーネットワーク
 
HPC+AI ってよく聞くけど結局なんなの
HPC+AI ってよく聞くけど結局なんなのHPC+AI ってよく聞くけど結局なんなの
HPC+AI ってよく聞くけど結局なんなの
NVIDIA Japan
 
Kubernetes 基盤における非機能試験の deepdive(Kubernetes Novice Tokyo #17 発表資料)
Kubernetes 基盤における非機能試験の deepdive(Kubernetes Novice Tokyo #17 発表資料)Kubernetes 基盤における非機能試験の deepdive(Kubernetes Novice Tokyo #17 発表資料)
Kubernetes 基盤における非機能試験の deepdive(Kubernetes Novice Tokyo #17 発表資料)
NTT DATA Technology & Innovation
 
Tensor flow usergroup 2016 (公開版)
Tensor flow usergroup 2016 (公開版)Tensor flow usergroup 2016 (公開版)
Tensor flow usergroup 2016 (公開版)
Hiroki Nakahara
 
How to Schedule Machine Learning Workloads Nicely In Kubernetes #CNDT2020 / C...
How to Schedule Machine Learning Workloads Nicely In Kubernetes #CNDT2020 / C...How to Schedule Machine Learning Workloads Nicely In Kubernetes #CNDT2020 / C...
How to Schedule Machine Learning Workloads Nicely In Kubernetes #CNDT2020 / C...
Preferred Networks
 
10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤ10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤTakashi Hoshino
 
KubernetesでGPUクラスタを管理したい
KubernetesでGPUクラスタを管理したいKubernetesでGPUクラスタを管理したい
KubernetesでGPUクラスタを管理したい
Yuji Oshima
 
Pythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみよう
Pythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみようPythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみよう
Pythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみよう
Shinya Takamaeda-Y
 
Fugaku, the Successes and the Lessons Learned
Fugaku, the Successes and the Lessons LearnedFugaku, the Successes and the Lessons Learned
Fugaku, the Successes and the Lessons Learned
RCCSRENKEI
 
ネットワークシミュレータで手軽にネットワークのお勉強(GNS3編)
ネットワークシミュレータで手軽にネットワークのお勉強(GNS3編)ネットワークシミュレータで手軽にネットワークのお勉強(GNS3編)
ネットワークシミュレータで手軽にネットワークのお勉強(GNS3編)
Wataru NOGUCHI
 
Deeplearning輪読会
Deeplearning輪読会Deeplearning輪読会
Deeplearning輪読会
正志 坪坂
 
Scapyで作る・解析するパケット
Scapyで作る・解析するパケットScapyで作る・解析するパケット
Scapyで作る・解析するパケット
Takaaki Hoyo
 
FPGA+SoC+Linux実践勉強会資料
FPGA+SoC+Linux実践勉強会資料FPGA+SoC+Linux実践勉強会資料
FPGA+SoC+Linux実践勉強会資料
一路 川染
 
GPU仮想化最前線 - KVMGTとvirtio-gpu -
GPU仮想化最前線 - KVMGTとvirtio-gpu -GPU仮想化最前線 - KVMGTとvirtio-gpu -
GPU仮想化最前線 - KVMGTとvirtio-gpu -
zgock
 
Hopper アーキテクチャで、変わること、変わらないこと
Hopper アーキテクチャで、変わること、変わらないことHopper アーキテクチャで、変わること、変わらないこと
Hopper アーキテクチャで、変わること、変わらないこと
NVIDIA Japan
 
CUDAプログラミング入門
CUDAプログラミング入門CUDAプログラミング入門
CUDAプログラミング入門
NVIDIA Japan
 
PostgreSQLでスケールアウト
PostgreSQLでスケールアウトPostgreSQLでスケールアウト
PostgreSQLでスケールアウト
Masahiko Sawada
 
2値化CNN on FPGAでGPUとガチンコバトル(公開版)
2値化CNN on FPGAでGPUとガチンコバトル(公開版)2値化CNN on FPGAでGPUとガチンコバトル(公開版)
2値化CNN on FPGAでGPUとガチンコバトル(公開版)
Hiroki Nakahara
 

What's hot (20)

Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55
Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55
Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55
 
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
 
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
 
HPC+AI ってよく聞くけど結局なんなの
HPC+AI ってよく聞くけど結局なんなのHPC+AI ってよく聞くけど結局なんなの
HPC+AI ってよく聞くけど結局なんなの
 
Kubernetes 基盤における非機能試験の deepdive(Kubernetes Novice Tokyo #17 発表資料)
Kubernetes 基盤における非機能試験の deepdive(Kubernetes Novice Tokyo #17 発表資料)Kubernetes 基盤における非機能試験の deepdive(Kubernetes Novice Tokyo #17 発表資料)
Kubernetes 基盤における非機能試験の deepdive(Kubernetes Novice Tokyo #17 発表資料)
 
Tensor flow usergroup 2016 (公開版)
Tensor flow usergroup 2016 (公開版)Tensor flow usergroup 2016 (公開版)
Tensor flow usergroup 2016 (公開版)
 
How to Schedule Machine Learning Workloads Nicely In Kubernetes #CNDT2020 / C...
How to Schedule Machine Learning Workloads Nicely In Kubernetes #CNDT2020 / C...How to Schedule Machine Learning Workloads Nicely In Kubernetes #CNDT2020 / C...
How to Schedule Machine Learning Workloads Nicely In Kubernetes #CNDT2020 / C...
 
10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤ10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤ
 
KubernetesでGPUクラスタを管理したい
KubernetesでGPUクラスタを管理したいKubernetesでGPUクラスタを管理したい
KubernetesでGPUクラスタを管理したい
 
Pythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみよう
Pythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみようPythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみよう
Pythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみよう
 
Fugaku, the Successes and the Lessons Learned
Fugaku, the Successes and the Lessons LearnedFugaku, the Successes and the Lessons Learned
Fugaku, the Successes and the Lessons Learned
 
ネットワークシミュレータで手軽にネットワークのお勉強(GNS3編)
ネットワークシミュレータで手軽にネットワークのお勉強(GNS3編)ネットワークシミュレータで手軽にネットワークのお勉強(GNS3編)
ネットワークシミュレータで手軽にネットワークのお勉強(GNS3編)
 
Deeplearning輪読会
Deeplearning輪読会Deeplearning輪読会
Deeplearning輪読会
 
Scapyで作る・解析するパケット
Scapyで作る・解析するパケットScapyで作る・解析するパケット
Scapyで作る・解析するパケット
 
FPGA+SoC+Linux実践勉強会資料
FPGA+SoC+Linux実践勉強会資料FPGA+SoC+Linux実践勉強会資料
FPGA+SoC+Linux実践勉強会資料
 
GPU仮想化最前線 - KVMGTとvirtio-gpu -
GPU仮想化最前線 - KVMGTとvirtio-gpu -GPU仮想化最前線 - KVMGTとvirtio-gpu -
GPU仮想化最前線 - KVMGTとvirtio-gpu -
 
Hopper アーキテクチャで、変わること、変わらないこと
Hopper アーキテクチャで、変わること、変わらないことHopper アーキテクチャで、変わること、変わらないこと
Hopper アーキテクチャで、変わること、変わらないこと
 
CUDAプログラミング入門
CUDAプログラミング入門CUDAプログラミング入門
CUDAプログラミング入門
 
PostgreSQLでスケールアウト
PostgreSQLでスケールアウトPostgreSQLでスケールアウト
PostgreSQLでスケールアウト
 
2値化CNN on FPGAでGPUとガチンコバトル(公開版)
2値化CNN on FPGAでGPUとガチンコバトル(公開版)2値化CNN on FPGAでGPUとガチンコバトル(公開版)
2値化CNN on FPGAでGPUとガチンコバトル(公開版)
 

Similar to 第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会

GTC Japan 2017
GTC Japan 2017GTC Japan 2017
GTC Japan 2017
Hitoshi Sato
 
45分で理解する 最近のスパコン事情 斉藤之雄
45分で理解する 最近のスパコン事情 斉藤之雄45分で理解する 最近のスパコン事情 斉藤之雄
45分で理解する 最近のスパコン事情 斉藤之雄Yukio Saito
 
Cmc cmd slim
Cmc cmd slimCmc cmd slim
Cmc cmd slim
Shinji Shimojo
 
20170421 tensor flowusergroup
20170421 tensor flowusergroup20170421 tensor flowusergroup
20170421 tensor flowusergroup
ManaMurakami1
 
seccamp2012 チューター発表
seccamp2012 チューター発表seccamp2012 チューター発表
seccamp2012 チューター発表Hirotaka Kawata
 
第1回 配信講義 計算科学技術特論A (2021)
第1回 配信講義 計算科学技術特論A (2021)第1回 配信講義 計算科学技術特論A (2021)
第1回 配信講義 計算科学技術特論A (2021)
RCCSRENKEI
 
20170726 py data.tokyo
20170726 py data.tokyo20170726 py data.tokyo
20170726 py data.tokyo
ManaMurakami1
 
Imaocande LT
Imaocande LTImaocande LT
Imaocande LT
Imaoka Micihihiro
 
2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF
Atomu Hidaka
 
【たぶん日本初導入!】Azure Stack Hub with GPUの性能と機能紹介
【たぶん日本初導入!】Azure Stack Hub with GPUの性能と機能紹介【たぶん日本初導入!】Azure Stack Hub with GPUの性能と機能紹介
【たぶん日本初導入!】Azure Stack Hub with GPUの性能と機能紹介
NTT Communications Technology Development
 
【A-1】AIを支えるGPUコンピューティングの今
【A-1】AIを支えるGPUコンピューティングの今【A-1】AIを支えるGPUコンピューティングの今
【A-1】AIを支えるGPUコンピューティングの今
Developers Summit
 
Deep Learning Lab - Microsoft Machine Learning meetup 2018/06/27 - 推論編
Deep Learning Lab - Microsoft Machine Learning meetup 2018/06/27 - 推論編Deep Learning Lab - Microsoft Machine Learning meetup 2018/06/27 - 推論編
Deep Learning Lab - Microsoft Machine Learning meetup 2018/06/27 - 推論編
Daiyu Hatakeyama
 
マルチコアのプログラミング技法 -- OpenCLとWebCL
マルチコアのプログラミング技法 -- OpenCLとWebCLマルチコアのプログラミング技法 -- OpenCLとWebCL
マルチコアのプログラミング技法 -- OpenCLとWebCLmaruyama097
 
PyCoRAMを用いたグラフ処理FPGAアクセラレータ
PyCoRAMを用いたグラフ処理FPGAアクセラレータPyCoRAMを用いたグラフ処理FPGAアクセラレータ
PyCoRAMを用いたグラフ処理FPGAアクセラレータ
Shinya Takamaeda-Y
 
NVIDIA deep learning最新情報in沖縄
NVIDIA deep learning最新情報in沖縄NVIDIA deep learning最新情報in沖縄
NVIDIA deep learning最新情報in沖縄
Tak Izaki
 
PCCC22:東京大学情報基盤センター 「Society5.0の実現を目指す「計算・データ・学習」の融合による革新的スーパーコンピューティング」
PCCC22:東京大学情報基盤センター 「Society5.0の実現を目指す「計算・データ・学習」の融合による革新的スーパーコンピューティング」PCCC22:東京大学情報基盤センター 「Society5.0の実現を目指す「計算・データ・学習」の融合による革新的スーパーコンピューティング」
PCCC22:東京大学情報基盤センター 「Society5.0の実現を目指す「計算・データ・学習」の融合による革新的スーパーコンピューティング」
PC Cluster Consortium
 
2015年度GPGPU実践基礎工学 第14回 GPGPU組込開発環境
2015年度GPGPU実践基礎工学 第14回 GPGPU組込開発環境2015年度GPGPU実践基礎工学 第14回 GPGPU組込開発環境
2015年度GPGPU実践基礎工学 第14回 GPGPU組込開発環境
智啓 出川
 
2値ディープニューラルネットワークと組込み機器への応用: 開発中のツール紹介
2値ディープニューラルネットワークと組込み機器への応用: 開発中のツール紹介2値ディープニューラルネットワークと組込み機器への応用: 開発中のツール紹介
2値ディープニューラルネットワークと組込み機器への応用: 開発中のツール紹介
Hiroki Nakahara
 
200625material naruse
200625material naruse200625material naruse
200625material naruse
RCCSRENKEI
 
JETSON 最新情報 & 自動外観検査事例紹介
JETSON 最新情報 & 自動外観検査事例紹介JETSON 最新情報 & 自動外観検査事例紹介
JETSON 最新情報 & 自動外観検査事例紹介
NVIDIA Japan
 

Similar to 第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会 (20)

GTC Japan 2017
GTC Japan 2017GTC Japan 2017
GTC Japan 2017
 
45分で理解する 最近のスパコン事情 斉藤之雄
45分で理解する 最近のスパコン事情 斉藤之雄45分で理解する 最近のスパコン事情 斉藤之雄
45分で理解する 最近のスパコン事情 斉藤之雄
 
Cmc cmd slim
Cmc cmd slimCmc cmd slim
Cmc cmd slim
 
20170421 tensor flowusergroup
20170421 tensor flowusergroup20170421 tensor flowusergroup
20170421 tensor flowusergroup
 
seccamp2012 チューター発表
seccamp2012 チューター発表seccamp2012 チューター発表
seccamp2012 チューター発表
 
第1回 配信講義 計算科学技術特論A (2021)
第1回 配信講義 計算科学技術特論A (2021)第1回 配信講義 計算科学技術特論A (2021)
第1回 配信講義 計算科学技術特論A (2021)
 
20170726 py data.tokyo
20170726 py data.tokyo20170726 py data.tokyo
20170726 py data.tokyo
 
Imaocande LT
Imaocande LTImaocande LT
Imaocande LT
 
2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF
 
【たぶん日本初導入!】Azure Stack Hub with GPUの性能と機能紹介
【たぶん日本初導入!】Azure Stack Hub with GPUの性能と機能紹介【たぶん日本初導入!】Azure Stack Hub with GPUの性能と機能紹介
【たぶん日本初導入!】Azure Stack Hub with GPUの性能と機能紹介
 
【A-1】AIを支えるGPUコンピューティングの今
【A-1】AIを支えるGPUコンピューティングの今【A-1】AIを支えるGPUコンピューティングの今
【A-1】AIを支えるGPUコンピューティングの今
 
Deep Learning Lab - Microsoft Machine Learning meetup 2018/06/27 - 推論編
Deep Learning Lab - Microsoft Machine Learning meetup 2018/06/27 - 推論編Deep Learning Lab - Microsoft Machine Learning meetup 2018/06/27 - 推論編
Deep Learning Lab - Microsoft Machine Learning meetup 2018/06/27 - 推論編
 
マルチコアのプログラミング技法 -- OpenCLとWebCL
マルチコアのプログラミング技法 -- OpenCLとWebCLマルチコアのプログラミング技法 -- OpenCLとWebCL
マルチコアのプログラミング技法 -- OpenCLとWebCL
 
PyCoRAMを用いたグラフ処理FPGAアクセラレータ
PyCoRAMを用いたグラフ処理FPGAアクセラレータPyCoRAMを用いたグラフ処理FPGAアクセラレータ
PyCoRAMを用いたグラフ処理FPGAアクセラレータ
 
NVIDIA deep learning最新情報in沖縄
NVIDIA deep learning最新情報in沖縄NVIDIA deep learning最新情報in沖縄
NVIDIA deep learning最新情報in沖縄
 
PCCC22:東京大学情報基盤センター 「Society5.0の実現を目指す「計算・データ・学習」の融合による革新的スーパーコンピューティング」
PCCC22:東京大学情報基盤センター 「Society5.0の実現を目指す「計算・データ・学習」の融合による革新的スーパーコンピューティング」PCCC22:東京大学情報基盤センター 「Society5.0の実現を目指す「計算・データ・学習」の融合による革新的スーパーコンピューティング」
PCCC22:東京大学情報基盤センター 「Society5.0の実現を目指す「計算・データ・学習」の融合による革新的スーパーコンピューティング」
 
2015年度GPGPU実践基礎工学 第14回 GPGPU組込開発環境
2015年度GPGPU実践基礎工学 第14回 GPGPU組込開発環境2015年度GPGPU実践基礎工学 第14回 GPGPU組込開発環境
2015年度GPGPU実践基礎工学 第14回 GPGPU組込開発環境
 
2値ディープニューラルネットワークと組込み機器への応用: 開発中のツール紹介
2値ディープニューラルネットワークと組込み機器への応用: 開発中のツール紹介2値ディープニューラルネットワークと組込み機器への応用: 開発中のツール紹介
2値ディープニューラルネットワークと組込み機器への応用: 開発中のツール紹介
 
200625material naruse
200625material naruse200625material naruse
200625material naruse
 
JETSON 最新情報 & 自動外観検査事例紹介
JETSON 最新情報 & 自動外観検査事例紹介JETSON 最新情報 & 自動外観検査事例紹介
JETSON 最新情報 & 自動外観検査事例紹介
 

More from Hitoshi Sato

ABCI: AI Bridging Cloud Infrastructure for Scalable AI/Big Data
ABCI: AI Bridging Cloud Infrastructure for Scalable AI/Big DataABCI: AI Bridging Cloud Infrastructure for Scalable AI/Big Data
ABCI: AI Bridging Cloud Infrastructure for Scalable AI/Big Data
Hitoshi Sato
 
AI橋渡しクラウド(ABCI)における高性能計算とAI/ビッグデータ処理の融合
AI橋渡しクラウド(ABCI)における高性能計算とAI/ビッグデータ処理の融合AI橋渡しクラウド(ABCI)における高性能計算とAI/ビッグデータ処理の融合
AI橋渡しクラウド(ABCI)における高性能計算とAI/ビッグデータ処理の融合
Hitoshi Sato
 
Building Software Ecosystems for AI Cloud using Singularity HPC Container
Building Software Ecosystems for AI Cloud using Singularity HPC ContainerBuilding Software Ecosystems for AI Cloud using Singularity HPC Container
Building Software Ecosystems for AI Cloud using Singularity HPC Container
Hitoshi Sato
 
産総研AIクラウドでChainerMN
産総研AIクラウドでChainerMN産総研AIクラウドでChainerMN
産総研AIクラウドでChainerMN
Hitoshi Sato
 
Japan Lustre User Group 2014
Japan Lustre User Group 2014Japan Lustre User Group 2014
Japan Lustre User Group 2014
Hitoshi Sato
 
MemoryPlus Workshop
MemoryPlus WorkshopMemoryPlus Workshop
MemoryPlus Workshop
Hitoshi Sato
 
LUG 2014
LUG 2014LUG 2014
LUG 2014
Hitoshi Sato
 
GTC Japan 2014
GTC Japan 2014GTC Japan 2014
GTC Japan 2014
Hitoshi Sato
 

More from Hitoshi Sato (8)

ABCI: AI Bridging Cloud Infrastructure for Scalable AI/Big Data
ABCI: AI Bridging Cloud Infrastructure for Scalable AI/Big DataABCI: AI Bridging Cloud Infrastructure for Scalable AI/Big Data
ABCI: AI Bridging Cloud Infrastructure for Scalable AI/Big Data
 
AI橋渡しクラウド(ABCI)における高性能計算とAI/ビッグデータ処理の融合
AI橋渡しクラウド(ABCI)における高性能計算とAI/ビッグデータ処理の融合AI橋渡しクラウド(ABCI)における高性能計算とAI/ビッグデータ処理の融合
AI橋渡しクラウド(ABCI)における高性能計算とAI/ビッグデータ処理の融合
 
Building Software Ecosystems for AI Cloud using Singularity HPC Container
Building Software Ecosystems for AI Cloud using Singularity HPC ContainerBuilding Software Ecosystems for AI Cloud using Singularity HPC Container
Building Software Ecosystems for AI Cloud using Singularity HPC Container
 
産総研AIクラウドでChainerMN
産総研AIクラウドでChainerMN産総研AIクラウドでChainerMN
産総研AIクラウドでChainerMN
 
Japan Lustre User Group 2014
Japan Lustre User Group 2014Japan Lustre User Group 2014
Japan Lustre User Group 2014
 
MemoryPlus Workshop
MemoryPlus WorkshopMemoryPlus Workshop
MemoryPlus Workshop
 
LUG 2014
LUG 2014LUG 2014
LUG 2014
 
GTC Japan 2014
GTC Japan 2014GTC Japan 2014
GTC Japan 2014
 

Recently uploaded

今さら聞けない人のためのDevOps超入門 OSC2024名古屋 セミナー資料
今さら聞けない人のためのDevOps超入門 OSC2024名古屋  セミナー資料今さら聞けない人のためのDevOps超入門 OSC2024名古屋  セミナー資料
今さら聞けない人のためのDevOps超入門 OSC2024名古屋 セミナー資料
Toru Miyahara
 
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
Toru Miyahara
 
Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHub
Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHubCompute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHub
Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHub
K Kinzal
 
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
Toru Miyahara
 
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
Masatsugu Matsushita
 
「VRC海のおはなし会_深海探査とロボットのお話」発表資料
「VRC海のおはなし会_深海探査とロボットのお話」発表資料「VRC海のおはなし会_深海探査とロボットのお話」発表資料
「VRC海のおはなし会_深海探査とロボットのお話」発表資料
Yuuitirou528 default
 
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
miyp
 

Recently uploaded (7)

今さら聞けない人のためのDevOps超入門 OSC2024名古屋 セミナー資料
今さら聞けない人のためのDevOps超入門 OSC2024名古屋  セミナー資料今さら聞けない人のためのDevOps超入門 OSC2024名古屋  セミナー資料
今さら聞けない人のためのDevOps超入門 OSC2024名古屋 セミナー資料
 
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
 
Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHub
Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHubCompute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHub
Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHub
 
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
 
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
 
「VRC海のおはなし会_深海探査とロボットのお話」発表資料
「VRC海のおはなし会_深海探査とロボットのお話」発表資料「VRC海のおはなし会_深海探査とロボットのお話」発表資料
「VRC海のおはなし会_深海探査とロボットのお話」発表資料
 
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
 

第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会

  • 1. AIクラウドでのLinuxコンテナ利⽤ に向けた性能評価 佐藤 仁, ⼩川 宏⾼ 産業技術総合研究所 ⼈⼯知能研究センター 1 2017年12⽉17⽇ 第162回ハイパフォーマンスコンピューティング研究発表会
  • 5. 5 産総研AIクラウド(通称AAIC)とは? • 400x NVIDIA Tesla P100s and Infiniband EDR accelerate various AI workloads including ML (Machine Learning) and DL (Deep Learning). • Advanced data analytics leveraged by 4PiB shared Big Data Storage and Apache Spark w/ its ecosystem. AI Computation System Large Capacity Storage System Computation Nodes (w/GPU) x50 • Intel Xeon E5 v4 x2 • NVIDIA Tesla P100 (NVLink) x8 • 256GiB Memory, 480GB SSD Computation Nodes (w/o GPU) x68 • Intel Xeon E5 v4 x2 • 256GiB Memory, 480GB SSD Mgmt & Service Nodes x16 Interactive Nodes x2 400 Pascal GPUs 30TB Memory 56TB SSD DDN SFA14K • File server (w/10GbEx2, IB EDRx4) x4 • 8TB 7.2Krpm NL-SAS HDD x730 • GRIDScaler (GPFS) Computation Network Mellanox CS7520 Director Switch • EDR (100Gbps) x216 Bi-direction 200Gbps Full bi-section bandwidth Service and Management Network IB EDR (100Gbps) IB EDR (100Gbps) GbE or 10GbE GbE or 10GbE Firewall • FortiGate 3815D x2 • FortiAnalyzer 1000E x2 UTM Firewall 40-100Gbps class 10GbE SINET5 Internet Connection 10-100GbE >4PiB effective RW100GB/s 既存のGPUスパコン に類似した構成
  • 6. GPU計算ノードの構成 • NVIDIA TESLA P100 x 8 • Intel Xeon E5-2630 v4 x 2 ソケット – ソケットあたり10コア – Hyper Threading (HT) で動作 – ノードあたり40コアにみえる • 256GiBのメモリ • 480GBのSSD • EDR Infiniband – 計算ノード – GPFSストレージへ接続 6 Machine (256GB total) NUMANode P#0 (128GB) Package P#0 L3 (25MB) L2 (256KB) L1d (32KB) L1i (32KB) Core P#0 PU P#0 PU P#20 L2 (256KB) L1d (32KB) L1i (32KB) Core P#1 PU P#1 PU P#21 L2 (256KB) L1d (32KB) L1i (32KB) Core P#2 PU P#2 PU P#22 L2 (256KB) L1d (32KB) L1i (32KB) Core P#3 PU P#3 PU P#23 L2 (256KB) L1d (32KB) L1i (32KB) Core P#4 PU P#4 PU P#24 L2 (256KB) L1d (32KB) L1i (32KB) Core P#8 PU P#5 PU P#25 L2 (256KB) L1d (32KB) L1i (32KB) Core P#9 PU P#6 PU P#26 L2 (256KB) L1d (32KB) L1i (32KB) Core P#10 PU P#7 PU P#27 L2 (256KB) L1d (32KB) L1i (32KB) Core P#11 PU P#8 PU P#28 L2 (256KB) L1d (32KB) L1i (32KB) Core P#12 PU P#9 PU P#29 PCI 10de:15f9 card1 renderD128 PCI 10de:15f9 card2 renderD129 PCI 10de:15f9 card3 renderD130 PCI 10de:15f9 card4 renderD131 PCI 8086:8d62 sda PCI 1a03:2000 card0 controlD64 PCI 8086:8d02 NUMANode P#1 (128GB) Package P#1 L3 (25MB) L2 (256KB) L1d (32KB) L1i (32KB) Core P#0 PU P#10 PU P#30 L2 (256KB) L1d (32KB) L1i (32KB) Core P#1 PU P#11 PU P#31 L2 (256KB) L1d (32KB) L1i (32KB) Core P#2 PU P#12 PU P#32 L2 (256KB) L1d (32KB) L1i (32KB) Core P#3 PU P#13 PU P#33 L2 (256KB) L1d (32KB) L1i (32KB) Core P#4 PU P#14 PU P#34 L2 (256KB) L1d (32KB) L1i (32KB) Core P#8 PU P#15 PU P#35 L2 (256KB) L1d (32KB) L1i (32KB) Core P#9 PU P#16 PU P#36 L2 (256KB) L1d (32KB) L1i (32KB) Core P#10 PU P#17 PU P#37 L2 (256KB) L1d (32KB) L1i (32KB) Core P#11 PU P#18 PU P#38 L2 (256KB) L1d (32KB) L1i (32KB) Core P#12 PU P#19 PU P#39 PCI 8086:1528 enp129s0f0 PCI 8086:1528 enp129s0f1 PCI 10de:15f9 card5 renderD132 PCI 10de:15f9 card6 renderD133 PCI 10de:15f9 card7 renderD134 PCI 10de:15f9 card8 renderD135 PCI 15b3:1013 ib0 mlx5_0 Indexes: physical Date: Tue May 30 11:32:43 2017 MEM CPU Cores GPUs Infiniband HBA SSD
  • 7. AIアプリケーションの事例(Linuxコンテナ) • lang2program – https://github.com/kelvinguu/ lang2program – ACL 2017 paper内で⽤いられた実装 – Dockerfileの提供 • Tensorflow, PostgresQL, Python pip Packages, etc. • 依存関係のあるソフトウェアの インストールが⼤量に発⽣ 7 HPC環境(スパコン)で動くか? • Dockerの⾮サポート (セキュリティ上ホストのrootを与えることができない) • マニュアルにインストールすれば可能だが煩雑
  • 8. 8 ユーザプログラム 数値計算 ライブラリBLAS ドメイン 固有⾔語 デバッグ・ 性能プロファイル MPI・OpenMP・CUDA/OpenCL 並列ファイルシステム Lustre・GPFS バッチ ジョブスケジューラ Linux OS InfiniBabd ネットワーク SAN+ローカ ルストレージ X86+ GPU/ アクセラ レーター 仮想マシン・Linuxコンテナ Ethernet ネットワーク ローカル ノード ストレージ x86 CPU 分散ファイルシステム HDFS MapReduceフレームワーク Spark/Hadoop ユーザプログラム RDB PostgresQL 機械学習 ライブラリ MLlib/ Mahout グラフ処理 ライブラリ GraphX/ Giraph Java・Scala+統合開発環境 SQLクエリ エンジン Hive/Pig CloudDB/NoSQL Hbase/Cassandra/MondoDB コーディネーションエンジン ZooKeeper Linux OS 既存クラウド 既存スパコンアプリケーション層 システムソフトウェア層 ハードウェア層 OS層 Fortran・C・C+++統合開発環境 • クラウドはプログラムの実⾏に対話的な操作が必要。 • スパコンはバッチジョブによる実⾏のため不要。 • クラウドは利便性が⾼いプログラム⾔語を採⽤するも⾼速化には向かない。 データ解析等頻繁にプログラムを書き換える利⽤に特化。 • スパコンはマシンの性能を活かせるプログラム⾔語を採⽤するも、プログ ラムが難しく⽣産性が低い。数値演算などコアな処理はあまりプログラム を書き換える必要がないため。 • クラウドはデータベース利⽤が多い。 • スパコンは数千・数万台の計算機向けにデバッグ・性能チューニングが必要。 • クラウドは仮想マシン・コンテナ技術による⽤途に応じた環境構築が可能。 • スパコンは⾼速処理のためのベアメタル環境が主。 • クラウドはWebサーバ由来の技術、分散ストレージなどを採⽤。 • スパコンは超広帯域・低遅延ネットワーク、共有ストレージ、GPUなどを採⽤。 AI/ビッグデータ処理の⾼速化が最重要だがソフトウェアエコシステムは皆無 特に分散深層学習・強化学習、HPCと融合したワークロード等 既存のクラウドとスパコンで異なるソフトウェアエコシステム
  • 9. AIクラウドのためのソフトウェアエコシステム 既存のクラウド・スパコンの両⽅の技術要素が必要 9 数値計算 ライブラリ BLAS/Matlab デバッグ・ 性能プロファイル MPI・OpenMP・CUDA/OpenCL バッチジョブスケジューラ・ワークフロー Linux OS InfiniBabd ネットワーク SAN+ローカ ルストレージ X86+GPU/ アクセラレーター Linuxコンテナ 分散ファイ ルシステム HDFS ユーザプログラム RDB PostgresQL 機械学習 ライブラリ グラフ処理 ライブラリ Python, Jupyter Notebook, R etc.+ 統合開発環境 CloudDB/ NoSQL AIクラウド アプリケーション層 OS層 深層学習 ライブラリ Web サービス ビッグデータ 処理カーネル Sort etc. Fortran・C・ C++ ネイティブコード 並列ファイ ルシステム Lustre・GPFS システムソフトウェア層 ハードウェア層 • 分散深層学習をはじめとする各種フレームワークを簡 単にバッチ処理や対話的な操作で利⽤ • 場合によってはウェブサービスの提供 • Python, Rなどのスクリプト⾔語、Jupyter Nodebookなどのフレームワークの利⽤ • MPI, OpenMP, CUDAを利⽤した並列処理、HPC由来 の数値演算カーネル(BLAS),ビッグデータ処理カーネ ル(Sort, PrefixSum, Merge, SetIntersection)のサ ポート • ⼤規模なパラメータサーベイ、ジョブの⻑時間実⾏、 ワークフローのサポート • 画像、映像、⾳声、テキストなど細粒度I/O, 秘匿性の あるデータへのアクセス • Linuxコンテナのサポート • スーパコンピュータ由来のInfiniband, GPUの利⽤、 コモディティサーバの採⽤
  • 10. Singularity (ソフトウェアの名称です) • Singularity – ⽶国LBNLで開発中のHPC向けLinuxコンテナ • http://singularity.lbl.gov/ • https://github.com/singularityware/singularity • 修正BSDライセンス – ユーザ権限でプログラムを実⾏、ストレージへアクセス • rootで動作するデーモンが不要 => 資源管理をスケジューラに委ねる • setuidでroot権限を与えたコマンドを実⾏ (マウント、名前空間の作成、コンテナ内へのホストのPathのʼ作成など) – Dockerイメージが利⽤可能 • DockerHubと連携 – HPC系のソフトウェアスタックが利⽤可能 • CUDA, MPI, Infiniband, etc. 10
  • 11. Singularityの利⽤イメージ sudo singularity build –sandbox tmpdir/ Singularity sudo singularity build –writable container.img Singularity sudo singularity build container.img Singularity sudo singularity build container.img docker://ubuntu sudo singularity build container.img shub://ubuntu Sandboxディレクトリの⽣成 コンテナイメージファイルの⽣成 sudo singularity shell –writable container.img パッケージソフトウェアを インストール(yum, apt等) Recipeファイルの利⽤ DockerHubの利⽤ (Dockerコンテナイメージ) SingularityHubの利⽤(Singularityコンテナイメージ) container.img コンテナイメージ ファイルを転送 インタラクティブにコンテナイメージを作成 既存のコンテナイメージを利⽤して作成 予め定めた⼿順によりコンテナイメージを作成 singularity run container.img singularity exec container.img … singularity shell container.img シェルを実⾏(shell) コマンドを与えて実⾏ (exec) 予め定義された動作を 実⾏(run) ユーザ環境 共有計算機環境 11
  • 12. Singularityでできること • GPU, Infiniband, XXXが利⽤できるか? – ホスト側のデバイス関連ドライバ・ライブラリをコンテナ側 へみせる(nvidia-docker⽅式?) • MPIが利⽤できるか? – ホストのMPIをコンテナ側へみせる(コンテナなメリットが薄い) – コンテナ内にMPIをインストールし、コンテナの外からキックする (ホスト側と同じMPIを使⽤し, Buildも同じにする必要) • mpirun –np N singularity exec container.img mpi_program • mpi4pyが利⽤できるか? – コンテナ内にMPIをインストール – コンテナ内のMPIに対してmpi4pyをインストール – コンテナ外からキック 12
  • 13. 分散深層学習フレームワーク向けコンテナイメージの構築 • ホスト側 – GPUやIninibandを活⽤するために デバイス関連ドライバ・ライブラリを コンテナ側へマウント • GPUやIninibandの利⽤ • nvidia-docker⽅式 • コンテナ側 – ユーザランドライブラリの インストール • CUDA, CuDNN, NCCL2, ibverbs, MPI – 分散深層学習フレームワークの インストール • 最適化されたビルド 13 Base Drivers, Libraries on Host CUDA Drivers Infiniband Drivers Filesystem Libraries (GPFS, Lustre) Userland Libraries on Container CUDA CuDNN NCCL2 MPI (mpi4py) Mount ibverbs Distributed Deep Learning Frameworks Caffe2 ChainerMNDistributed TensorflowMXNet
  • 14. 予備実験 • AIのワークロードを想定 – 演算性能(GEMM) – メモリバンド幅性能(STREAM) – 通信性能(OSU Micro Benchmarks) – ストレージI/O性能 (FIO) – 分散深層学習性能(Imagenet-1K) • 実験環境 – AAIC – ベアメタル • CentOS 7.3, Linux 3.10.0, gcc v4.8.5, glibc v2.17 – Singularity • Singularity 2.4 • Ubuntu 16.04, Linux v3.10.0 gcc v5.4.0, glibc v2.23 – 両環境 • CUDA 8.0.61.2, CuDNN v6.0.21 NCCL v2.0.5, OpenMPI v2.1.1 14
  • 15. GPU計算ノードの構成(再掲) • NVIDIA TESLA P100 x 8 • Intel Xeon E5-2630 v4 x 2 ソケット – ソケットあたり10コア – Hyper Threading (HT) で動作 – ノードあたり40コアにみえる • 256GiBのメモリ • 480GBのSSD • EDR Infiniband – 計算ノード – GPFSストレージへ接続 15 Machine (256GB total) NUMANode P#0 (128GB) Package P#0 L3 (25MB) L2 (256KB) L1d (32KB) L1i (32KB) Core P#0 PU P#0 PU P#20 L2 (256KB) L1d (32KB) L1i (32KB) Core P#1 PU P#1 PU P#21 L2 (256KB) L1d (32KB) L1i (32KB) Core P#2 PU P#2 PU P#22 L2 (256KB) L1d (32KB) L1i (32KB) Core P#3 PU P#3 PU P#23 L2 (256KB) L1d (32KB) L1i (32KB) Core P#4 PU P#4 PU P#24 L2 (256KB) L1d (32KB) L1i (32KB) Core P#8 PU P#5 PU P#25 L2 (256KB) L1d (32KB) L1i (32KB) Core P#9 PU P#6 PU P#26 L2 (256KB) L1d (32KB) L1i (32KB) Core P#10 PU P#7 PU P#27 L2 (256KB) L1d (32KB) L1i (32KB) Core P#11 PU P#8 PU P#28 L2 (256KB) L1d (32KB) L1i (32KB) Core P#12 PU P#9 PU P#29 PCI 10de:15f9 card1 renderD128 PCI 10de:15f9 card2 renderD129 PCI 10de:15f9 card3 renderD130 PCI 10de:15f9 card4 renderD131 PCI 8086:8d62 sda PCI 1a03:2000 card0 controlD64 PCI 8086:8d02 NUMANode P#1 (128GB) Package P#1 L3 (25MB) L2 (256KB) L1d (32KB) L1i (32KB) Core P#0 PU P#10 PU P#30 L2 (256KB) L1d (32KB) L1i (32KB) Core P#1 PU P#11 PU P#31 L2 (256KB) L1d (32KB) L1i (32KB) Core P#2 PU P#12 PU P#32 L2 (256KB) L1d (32KB) L1i (32KB) Core P#3 PU P#13 PU P#33 L2 (256KB) L1d (32KB) L1i (32KB) Core P#4 PU P#14 PU P#34 L2 (256KB) L1d (32KB) L1i (32KB) Core P#8 PU P#15 PU P#35 L2 (256KB) L1d (32KB) L1i (32KB) Core P#9 PU P#16 PU P#36 L2 (256KB) L1d (32KB) L1i (32KB) Core P#10 PU P#17 PU P#37 L2 (256KB) L1d (32KB) L1i (32KB) Core P#11 PU P#18 PU P#38 L2 (256KB) L1d (32KB) L1i (32KB) Core P#12 PU P#19 PU P#39 PCI 8086:1528 enp129s0f0 PCI 8086:1528 enp129s0f1 PCI 10de:15f9 card5 renderD132 PCI 10de:15f9 card6 renderD133 PCI 10de:15f9 card7 renderD134 PCI 10de:15f9 card8 renderD135 PCI 15b3:1013 ib0 mlx5_0 Indexes: physical Date: Tue May 30 11:32:43 2017 MEM CPU Cores GPUs Infiniband HBA SSD
  • 18. 通信性能(OSU Micro Benchmarks v5.3.2) AllReduce (Ave. Latency, 2nodes, 8gpus/node) AllReduce(h2h) AllReduce(d2d) 18 Better
  • 21. Singularityを⽤いた分散深層学習フレームワークの実⾏ • 実験環境 – AAIC 8 nodes (64 GPUs) – フレームワーク: CHainerMN v1.0.0 • Chainer 2.1.0, Cupy 1.0.3, mpi4py 2.0.0, Python 3.6.1 – コンテナ • Singularity v2.3.1 • Ubuntu 16.04, gcc-5.4.0, glibc-2.23 – ベアメタル • CentOS 7.3, gcc-4.8.5, glibc-2.17, • 実験設定 – データセット: Imagenet-1K – モデル: ResNet-50 – 訓練: • バッチサイズ: GPU毎に32, 32 x 64 • 学習率: 30 epoch毎に0.1倍 • 最適化: Momentum SGD (momentum=0.9) • Weight Decay: 0.0001 • 訓練エポック数: 100 21 ベアメタル実⾏とほぼ遜⾊のない性能を確認 Better
  • 22. 議論 • Singularity – ベアメタルと⽐較してほぼ遜⾊のない性能を確認 • 演算性能だけでなく、メモリバンド幅、ストレージI/O, ネットワーク性能(要確認)も • メモリのフットプリントは未確認 – OSの違いを超えられる(CentOS vs. Ubuntu) • 特に、glibcのバージョンの違いも容易に超えられる (glibcが互換性を担保するような実装になっている) – 導⼊しやすさ • configure, make, make installで可能。共有ストレージへも可能。 – あとはエンジニアリングイシュー • ソフトウェアの安定性の向上 • セキュリティイシューを潰す 22
  • 23. 議論 (contʼd) • Singularityの⽋点 – コンテナ内常駐デーモン不可 – Debug系(gdb)不可 – 資源管理は(cgroupsではなく)スケジューラまかせ 23
  • 24. 議論 (contʼd) • ユーザが任意のコンテナを動かして問題が起きるか? – 特に問題がないと判断している(問題を定義したい) – 基本的には実⾏するユーザの責任 (現状でも任意のソフトウェアをユーザが動かしているので ほぼ同じ問題) • 特殊なコンテナが必要?制限はある? – 基本的には不要。ARMでもOPAでも(Linuxであれば)動く。 – ただし、計算環境に最適化するためには再コンパイルなどした⽅が良い。 • ISVアプリのライセンス – コンテナに含めるのは難しい(気がする) – ユーザ権限でホストの環境をコンテナ側にreadマウントすることはできる – ホストにISVアプリをインストール、コンテナ側にマウント? 24
  • 25. 関連研究 • Docker – root権限が必要なデーモンによりコンテナ起動 – cgroupによる資源管理 (rktも) • Shifter – NERSCで開発 (Coriとかで利⽤?)、CSCSで拡張(Piz Dizant) – Singulairtyと同様の技術, ImageGatewayの存在, Crayのサポート • ChalieCloud [SCʼ17] – Singulairtyと同様の技術 – Singularityのほうが盛り上がっている感はある (OpenMPI v3.0やMvapich v2.3.2のSingularityサポート) • McKernel Integration [Rossʼ17] – Oakforest PACSの事例 – GeoFM, CCS-QCD, mniFE、今回の報告と同様の結果・傾向 25
  • 26. まとめ • AIクラウドのためのソフトウェアエコシステムの必要性 – AIには既存のクラウドとスパコンの両⽅の技術要素が必要 – AIというマーケットが広そうなところに 如何にHPC技術を取り込みやすい環境を作っていくか? • Singularityを⽤いたユーザ権限でのコンテナ実⾏ – 分散深層学習フレームワーク(≒HPCアプリケーション)の コンテナ化 – 予備実験による性能⽐較 • ベアメタルと⽐較してほぼ遜⾊のない性能を確認 26
  • 27. ABCI AI Bridging Cloud Infrastructure The worlds first large-scale Open AI Infrastructure 27 ABCI Serving your AI needs in Spring 2018