データ利活⽤に向けた仮想化プラットフォームmdxの基本性能評価塙 敏博 1 中村 遼 1 空閑 洋平 1
杉⽊ 章義 2 ⽥浦 健次朗 1
1 東京⼤学

情報基盤センター
2 北海道⼤学 情報基盤センター
2022/3/17

第183回 HPC研究会

1Society 5.0：未来社会のコンセプト• 超スマート社会： AI, IoT, ビッグデータなどの⾰新技術を社会全体に活⽤し、サイバー空間（仮想）とフィジカル空間（現実）を⾼度に融合させた社会• 持続可能な開発⽬標(SDGs)：経済発展と社会的課題•
解決の両⽴

2022/3/17

第183回 HPC研究会

経団連HP http://www.keidanrensdgs.com

2データ利活⽤の推進を⽀える環境
⽤途に応じてオンデマンドで短時間に構築・拡張・融合できる
データ収集・集積・解析機能を提供するプラットホーム

データ活⽤社会創成
プラットフォーム計画

３本柱

SINETを活かしたリアルタイム収集・集積・解析環境の動的な構築

遠隔地のセンサーやストレージ、データプラットフォームの計算資源、ストレージをつないで、リアルタイムに⼊⼒から出⼒を得られるアプリケーションごとの収集・集積・解析環境（仮想データプラットフォーム：仮想DP）を、使いたいときに即時に構築する
SINETモバイル基盤によりセンサー等のデータを安定してセキュアにつなぐ

⾼性能計算環境によるデータ科学と計算科学の融合
データ科学、計算科学の⼿法を融合し、さらに国内最⾼の計算環境を⽤いて他に無い
⾼精度の予測を⾏えるようにする

異種データ・異種知識の融合活⽤の推進と利⽤者⽀援
様々な分野のデータ保持者、解析者、利⽤者が産学にまたがって連携するコミュニティーを形成し、新たな価値創造につなげる。
データ活⽤を⽬指す利⽤者へのコンサルティングや開発⽀援を実施する。

2022/3/17

第183回 HPC研究会

3mdxとは• データ利活⽤・セキュリティを重視した⾼性能仮想化環境• 9⼤学2研究所が共同運営し、全国共同利⽤• 東京⼤学 柏2キャンパスに設置

2022/3/17

研究所 (2)• 国⽴情報学研究所、産業技術総合研究所

⼤学 (9)• 北海道⼤、東北⼤、筑波⼤、東京⼤、
東京⼯業⼤、名古屋⼤、京都⼤、⼤阪⼤、九州⼤

第183回 HPC研究会

45

柏キャンパス
OFP，OBCX

柏IIキャンパス
Wisteria/BDEC-01，mdx
ABCI

TX「柏の葉キャンパス」駅
2022/3/17

第183回 HPC研究会

5mdxの構成

2つのネットワーク• 外部接続ネットワーク
ü SINETと100G x2で接続
ü 2022年4⽉400G x2増速

• 内部⾼速ネットワーク
ü RDMA、ストレージ
モバイル
SINET

汎⽤CPUノード
Intel IceLake x2ソケット x368ノード
理論ピーク性能(FP64): 2.1PFLOPS
総メモリバンド幅: 150.7 TB/s

外部接続ルータ(100/400Gbps)

GPU 演算加速ノード
Intel IceLake x2ソケット+NVIDIA A100 x8 x40ノード
理論ピーク性能(FP64): 6.4PFLOPS
理論ピーク性能(FP16): 100.7PFLOPS
総メモリバンド幅: 496.3 TB/s

Ethernet Network (100GbE/25GbE)

⾼速 NVMe ストレージ
x368

x40

Lustre Filesystem
1.0 PB (NVMe SSD)
252 GByte/sec

⼤容量HDDストレージ
Lustre Filesystem
16.3 PB (HDD)
157.5 GByte/sec

RDMA/ストレージ/仮想ディスクストレージネットワーク (100GbE、RDMA通信⽤)

外部共有オブジェクトストレージ
1.0PB

16.3PB

10.3PB

2022/3/17
第183回 HPC研究会

S3 Data Service
10.3 PB (HDD)
63.0 GByte/sec

6

mdx全景• 免震台(ストレージのみ)• ⼊室管理• スパコン室＋ケージ

2022/3/17

第183回 HPC研究会

7計算ノード
汎⽤CPUノード

演算加速GPUノード

ノード

富⼠通PRIMERGY CX2550 M6

富⼠通 PRIMERGY GX2570 M6

ノード数

368

40

FP64性能 / FP32性能

2.1 PFLOPS / 4.2 PFLOPS

6.4 PFLOPS / 6.7 PFLOPSCPUIntel Xeon Platinum 8368 (IceLake, 38c/76 ht, 2.4 GHz) x 2ソケット

メモリ

256 GB, 409.6 GB/s

512 GB, 409.6 GB/s
NVIDIA A100 40GB x 8基GPU
外部ネットワークNIC

Intel XXV710 25Gbps x1

同左 x2

内部ストレージNIC

Mellanox/NVIDIA ConnectX-6 Dx
100 Gbps x1

同左 x4

2022/3/17

第183回 HPC研究会

8mdx GPU演算加速ノード• Intel Xeon Platinum 8368 (38c 2.4GHz) x 2ソケット, 512GBメモリ• ノード当たり8基のNVIDIA A100 GPU
メモリバンド幅：
409.6 GB/sec

25G Ethernet
25 Gbps x 2 link DDR4
DDR4
DDR4
(ノード当たり) DDR4
DDR4
フロントエンド
DDR4
DDR4
DDR4
25G
NIC
100G
NIC

x16
x16

PCIe Gen4x16100G Ethernetwith RoCE
100 Gbps x 4 link
(ノード当たり)
RDMA/
ストレージ⽤

2022/3/17

A100

UPI

CPU1
Intel Xeon Platinum
8368
(ICX)

x16

x16

PCIe
sw

x16

x16

100G
NIC

A100

DDR4
DDR4
DDR4
DDR4
DDR4
DDR4
DDR4
DDR4

CPU2
Intel Xeon Platinum
8368
(ICX)
x16

PCIe
sw

PCIe
sw

25G
NIC

PCIe
sw

x16

x16

x16

x16

x16

A100

A100

A100

A100

100G
NIC

x16

A100

x16

PCI Express:
Gen4 x16 = 16 GHz
x 16 (128b130b)= 31.5 GB/s (⽚⽅向)

100G
NIC

PCIe Gen4
x16

A100

NVLink3:
GPU当たり 50 GHz x4x2 x6= 300 GB/s (⽚⽅向)NVSwitch
NVSwitch
NVSwitch
NVSwitch
NVSwitch
NVSwitch
第183回 HPC研究会

9ストレージ• 内部ストレージ• ⾼速NVMe, ⼤容量HDD：work領域、プロジェクト内共有• 仮想ディスク：VMWare ESXiのデータストア、VMイメージ• 外部共有ストレージ：Amazon S3互換
内部ストレージ

外部共有ストレージ

⾼速NVMe

⼤容量HDD

仮想ディスク

S3オブジェクト

サーバ

DDN ES7990X

DDN ES400NVX

DDN IntelliFlash HD2160

DDN ES7990X

台数

4

5

2

2

NFS

DDN S3 Data
Service on Lustre

ファイル
システム

Lustre File System

容量 (PB)

1.0

16.3

0.55

10.3

バンド幅
(GB/s)

252

157.5

31.5

63.0

2022/3/17

第183回 HPC研究会

10

利⽤イメージ「学認」を使える⽅は https://mdx.jp
からプロジェクト申請が可能です。
まずはご相談ください！

mdx運⽤ポータル

モバイル

SINET
プロジェクトごとに分離された仮想環境

パブリック
クラウド

対外接続ルータ (Ethernet 100Gbps)

御
制
、
イ 設定
ロ
プ ーク
デ
の トワ
VM ッ
ネ

2022/3/17

VM

VM

VM

VM

VM

VM

認証連携
学術認証
フェデレーション

Ethernet (100GbE/25GbE)

プロジェクトごとに分離された仮想環境

ユーザA

ユーザB

＋独⾃認証基盤

第183回 HPC研究会

11

SINET 6(400G bps)へ

SINET 5・モバイルSINET• SINET 5（有線）• 全都道府県にノード• ノード間は ³ 100Gbps• 冗⻑経路• 広域VPN （L3/L2）

クラウド

⼤学等

汎⽤サーバ

⾼性能サーバ等

データ

データ

データ

データ

共同研究データ
共同研究データ• モバイルSINET（広域データ収
集基盤）• SINET VPNに直結できるモバイ
ル環境

ノード

ノード

SINET直結モバイル網

各都道府県に設置• mdxの個別のプロジェクトから
VPNをSINETへ延伸可• IoTデバイスのセキュリティ確保に有⽤
2022/3/17

⼤学

企業

第183回 HPC研究会

地⽅公共団体遠隔地

広範囲エリア

海上・危険地域

12

計算ノードの仮想化

ノード占有も可能（セキュアプロジェクト）

仮想化ソフトウェア： VMware vSphere (vCenter, ESXi)• 演算加速GPUノード• 汎⽤CPUノード• 1GPU+18 vCPU+メモリ60GB = 1GPUパック• GPU接続: PCIe パススルー• 1 vCPU+メモリ1.6 GB= 1CPUパック• ベアメタルと同様のGPU直接アクセス(ライセンスの関係でvGPUは使⽤不可)

分離
ユーザAのVM
2 vCPU, 3.2 GB mem

ユーザBのVM
4 vCPU, 6.4 GB mem…

…
ユーザCのVM

分離

ユーザDのVM
2 GPU, 36 vCPU,
120 GB mem

1 GPU, 18 vCPU,
60 GB mem

仮想資源の割り当て (vCPU, vMem, etc)
ノードあたり全152コア(38c x 2ソケットx 2 SMT)…

…
2022/3/17…
第183回 HPC研究会

ノードあたり8 GPU(38c x 2ソケットx 2 SMT)

13

VMのネットワークインタフェース• 外部接続ネットワーク：VMXNET3 (準仮想化)• CPUノード: ノードあたり 25 Gbps Ethernet• GPUノード: ノードあたり 25 Gbps Ethernet x2• 内部⾼速ネットワーク（ストレージ，ノード間通信⽤）への接続• 各ノードのNICは100Gbps: x1/CPUノード、x4/GPUノード• デフォルト(VMXNET3, RDMA無し)： VM間，Lustre共にTCP接続• PVRDMA(準仮想化RDMA)： VM間のRDMA通信，Lustreは未対応• SR-IOV: VM間，Lustreも含めRDMAによる通信• 動作には mlx5ドライバが必要
2022/3/17

第183回 HPC研究会

14外部接続ネットワーク• Virtual eXtensible LAN (VXLAN)によるオーバーレイネットワーク• データセンター向けの仮想ネットワーク技術• 物理はSpine/LeafのIP Clos Fabric ネットワーク• IPネットワーク上にVXLANでVLANを通す(Ethernet over IP)
VXLANオーバーレイ

外部接続ルータ

L3スイッチL3スイッチL3スイッチL3スイッチ

外部接続ルータ
100
Gb
ps

100G/400G Coreルータ

L3スイッチ

100G多ポートSpineスイッチ

L3スイッチ...

L3スイッチL3スイッチ

25Gbpsノード

ノード

VLAN 10

...

ノード

VM
2022/3/17

100G+25G多ポートLeafスイッチ

VM
第183回 HPC研究会

15内部⾼速ネットワーク• RDMA over Converged Ethernet (RoCE) over VXLAN• RoCE: RDMAをIPネットワーク越しに⾏う技術• Infinibandでは⼗分なテナント間の分離を実現できないため• 外部接続ネットワークと同様、IP ClosトポロジにVXLANを利⽤• 各ノードのNICは100Gbps，ネットワークはフルバイセクション• Mellanox ConnectX-6 Dx x1/汎⽤CPUノード、x4/演算加速GPUノード
VXLANカプセル化
Eth

IP

RoCEv2フレーム

UDP VXLAN Eth

ネットワークを流れるパケット

IP

UDP IB BTH

L3スイッチIB Payload

L3スイッチ...

L3スイッチ
200Gbps

VXLANオーバーレイ
L3スイッチEthIP

UDP IB BTH

L3スイッチ...

L3スイッチ

200G多ポートLeafスイッチ

100Gbps

IB Payload

VMの送信したRoCEv2フレーム

2022/3/17

200G多ポートSpineスイッチ

ノード
VM

...

ノード

第183回 HPC研究会 VM

16

オーバーレイを使う利点• IPネットワークの利点を維持したままVLANを延伸• 複数パスを使ったロードバランスと冗⻑• ユーザのVMがどのノードに存在しても同じVLANに接続できる• 仮想マシンのネットワーク性能と分離• トンネルやルーティングの処理をHVのS/Wではなく外部のH/Wスイッチで実施• 仮想マシンのNICが仮想NICでもSR-IOVでもネットワーク側は1つのロジックで制御できる• 万が⼀HVが乗っ取られても、他のVLANにはアクセスできない• 運⽤

Leafスイッチ
VLAN 10VLAN 20

物理NIC• プロジェクト作成時にVLANも作ってしまう• ここが割と時間がかかる• 各スイッチの設定変更はAnsible Playbook
2022/3/17

VXLAN Encap/Decap

第183回 HPC研究会

仮想スイッチSR-IOV

vNIC

vNIC

VF

VM

VM

VM

計算ノード

17

セキュアプロジェクト• ノード占有

同⼀プロジェクトに固定• 他プロジェクトとの完全な分離• 汎⽤CPUノード、演算加速GPUノード
ともに利⽤可能、あらかじめ⽤意

プロジェクトAのVM1
2 vCPU, 3.2 GB mem

プロジェクトAのVM2
4 vCPU, 6.4 GB mem• ⼤容量ストレージ OST占有• 通常プロジェクトとは別に、セキュア
プロジェクトにそれぞれ専⽤の OSTを割り当て• 26.7TB x 40プロジェクト• 性能⾯では制約：「通常」では 53 OSTをstripeして利⽤可能

仮想資源の割り当て (vCPU, vMem, etc)
ノードあたり全152コア(38c x 2ソケットx 2 SMT)…

• ⾼速ストレージは通常プロジェクトと共⽤ (32 OST)
2022/3/17

第183回 HPC研究会

18

仮想マシンテンプレート• mdxに必要なデバイスドライバと設定を実施したインストール
済みOSイメージ• GPUテンプレート：NVIDIA GPUドライバ、CUDA• Mellanox OFED
• Lustreドライバ、設定• VMWare⽤のOVAイメージを作成、mdxポータルに登録• HashiCorp社 Packerを使⽤してイメージ作成• Ansibleで初期設定

2022/3/17

第183回 HPC研究会

19machine-configs• プロジェクトの複数マシンを⼀括管理するスクリプト集• Ansible playbook• Githubで公開中: https://github.com/mdx-jp/machine-configs• 例：クラスタ構築• LDAP• NFS• Jupyter環境設定• reverse_proxy• MPI
2022/3/17

第183回 HPC研究会

20基本性能評価• VMの構成• Ubuntu 20.04 server (GPU対応、20220212-1844版+改)• kernel 5.4.0-99-generic #112-ubuntu è 5.4.0-104-generic• DDN driver: 2.12.6-ddn13• 144 vCPU + 8 GPU• ストレージネットワーク：PortGroup/SR-IOV• PortGroup (TCPのみ): 1インタフェース (VMXNET3)• SR-IOV (RDMA可能): 8インタフェース (mlx5)• 物理的には 4インタフェース• 評価項⽬• ストレージ性能• 通信性能2022/3/17

メモリバンド幅：265.0 GB/sec(72c) vs 322.0 GB/sec (72c,
ベアメタル) è 85%
GPU間通信： 20GB/sec vs 275GB/sec (ベアメタル)
èNVLinkが使えないため(vGPUなら使えるかも）
第183回 HPC研究会

21

VM内のデバイス構成 (⾒え⽅) (PCIe)• SR-IOV構成• lspci -vtの出⼒ è• A100 GPU当たり
1インタフェースに⾒える• 実際は2 GPUに1個• 100 G x 4• しかも実際の接続とは無関係っぽい（続き）

2022/3/17-[0000:00]-+-00.0 Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge+-07.0 Intel Corporation 82371AB/EB/MB PIIX4 ISA+-07.1 Intel Corporation 82371AB/EB/MB PIIX4 IDE+-07.3 Intel Corporation 82371AB/EB/MB PIIX4 ACPI+-07.7 VMware Virtual Machine Communication Interface+-0f.0 VMware SVGA II Adapter+-10.0 Broadcom / LSI 53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI++-15.0-[03-04]----00.0 NVIDIA Corporation GA100 [A100 SXM4 40GB]+-15.1-[05-06]----00.0 NVIDIA Corporation GA100 [A100 SXM4 40GB]+-15.2-[07]----00.0 Mellanox Technologies ConnectX Family mlx5Gen Virtual Function+-15.3-[08]----00.0 Mellanox Technologies ConnectX Family mlx5Gen Virtual Function+-15.4-[09]----00.0 VMware VMXNET3 Ethernet Controller++-16.0-[0d-0e]----00.0 NVIDIA Corporation GA100 [A100 SXM4 40GB]+-16.1-[0f-10]----00.0 NVIDIA Corporation GA100 [A100 SXM4 40GB]+-16.2-[11]----00.0 Mellanox Technologies ConnectX Family mlx5Gen Virtual Function+-16.3-[12]----00.0 Mellanox Technologies ConnectX Family mlx5Gen Virtual Function++-17.0-[17-18]----00.0 NVIDIA Corporation GA100 [A100 SXM4 40GB]+-17.1-[19-1a]----00.0 NVIDIA Corporation GA100 [A100 SXM4 40GB]+-17.2-[1b]----00.0 Mellanox Technologies ConnectX Family mlx5Gen Virtual Function+-17.3-[1c]----00.0 Mellanox Technologies ConnectX Family mlx5Gen Virtual Function++-18.0-[21-22]----00.0 NVIDIA Corporation GA100 [A100 SXM4 40GB]+-18.1-[23-24]----00.0 NVIDIA Corporation GA100 [A100 SXM4 40GB]+-18.2-[25]----00.0 Mellanox Technologies ConnectX Family mlx5Gen Virtual Function+-18.3-[26]----00.0 Mellanox Technologies ConnectX Family mlx5Gen Virtual Function

第183回 HPC研究会

22

VM内のデバイス構成 (⾒え⽅) (PCIe, 続き)• ibv_devinfo• RoCEなのでIBと同じコマンドで同じようにインタフェースが⾒える
hca_id: mlx5_0• 右図
node_guid:0050:56ff:feb0:23ba• このノードでは以下のIFは同じ実体？
• mlx5_0とmlx5_7• mlx5_1とmlx5_6• mlx5_2とmlx5_4• mlx5_3とmlx5_5• ノードごとに組が異なる

2022/3/17

第183回 HPC研究会

sys_image_guid:
hca_id: mlx5_1
node_guid:
sys_image_guid:
hca_id: mlx5_2
node_guid:
sys_image_guid:
hca_id: mlx5_3
node_guid:
sys_image_guid:
hca_id: mlx5_4
node_guid:
sys_image_guid:
hca_id: mlx5_5
node_guid:
sys_image_guid:
hca_id: mlx5_6
node_guid:
sys_image_guid:
hca_id: mlx5_7
node_guid:
sys_image_guid:043f:7203:00db:7c840050:56ff:feb0:23b6
043f:7203:00e8:bfce
0050:56ff:feb0:23b9
043f:7203:00db:755c
0050:56ff:feb0:23b5
043f:7203:00e8:bdc20050:56ff:feb0:23b8
043f:7203:00db:755c
0050:56ff:feb0:23b4
043f:7203:00e8:bdc20050:56ff:feb0:23b7
043f:7203:00e8:bfce
0050:56ff:feb0:23b3
043f:7203:00db:7c84

23

VM内のデバイス構成 (⾒え⽅) (CPU)• 参考：ベアメタルのICX (36c x2ソケット)• numactl -H
available: 2 nodes (0-1)
node 0 cpus: 0 1 2 3 4 … 74 75…
node 1 cpus: 76 77 78 79 … 150 151…

• hwloc-info
depth 0:depth 1:depth 2:depth 3:depth 4:depth 5:depth 6:depth 7:
depth 8:Special depth -3:
Special depth -4:
Special depth -5:
Special depth -6:

2022/3/17

2 NUMAかと思えば
38 ソケットもある（ように⾒せている、
不都合は無いかもしれないが、、）

1 Machine (type #0)
2 Group0 (type #12)
38 Package (type #1)
38 L3Cache (type #6)
152 L2Cache (type #5)
152 L1dCache (type #4)
152 L1iCache (type #9)
152 Core (type #2)
152 PU (type #3)
2 NUMANode (type #13)
11 Bridge (type #14)
13 PCIDev (type #15)
13 OSDev (type #16)

depth 0:depth 1:depth 2:depth 3:depth 4:depth 5:depth 6:depth 7:

1 Machine (type #0)
2 Package (type #1)
2 L3Cache (type #6)
72 L2Cache (type #5)
72 L1dCache (type #4)
72 L1iCache (type #9)
72 Core (type #2)
144 PU (type #3)• hwloc-ls
Machine (472GB total)Group0 L#0
NUMANode L#0 (P#0 236GB)
Package L#0 + L3 L#0 (57MB)
L2 L#0 (1280KB) + L1d L#0 (48KB) + L1i L#0 (32KB) + Core L#0 + PU L#0 (P#0)
L2 L#1 (1280KB) + L1d L#1 (48KB) + L1i L#1 (32KB) + Core L#1 + PU L#1 (P#1)
L2 L#2 (1280KB) + L1d L#2 (48KB) + L1i L#2 (32KB) + Core L#2 + PU L#2 (P#2)
L2 L#3 (1280KB) + L1d L#3 (48KB) + L1i L#3 (32KB) + Core L#3 + PU L#3 (P#3)
Package L#1 + L3 L#1 (57MB)
L2 L#4 (1280KB) + L1d L#4 (48KB) + L1i L#4 (32KB) + Core L#4 + PU L#4 (P#4)
L2 L#5 (1280KB) + L1d L#5 (48KB) + L1i L#5 (32KB) + Core L#5 + PU L#5 (P#5)
L2 L#6 (1280KB) + L1d L#6 (48KB) + L1i L#6 (32KB) + Core L#6 + PU L#6 (P#6)
L2 L#7 (1280KB) + L1d L#7 (48KB) + L1i L#7 (32KB) + Core L#7 + PU L#7 (P#7)
Package L#2 + L3 L#2 (57MB)

第183回 HPC研究会

24ストレージ評価• IOR-3.4.0+dev (2022/2/5 commit版)• local: 仮想ディスク、fast, large: Lustre FS• POSIX• mpirun -np $PROCS ior -w -r -C -g -i 3
-s $COUNT -b 1m -t 1m -a POSIX -e -F• POSIX+ODIRECT• --posix.odirectを追加• libS3• mpirun -np $PROCS ior -w -r -C -g -i 3
-s 1 -b 4g -t 4g -a S3-libS3--S3-libs3.host=s3ds.mdx.jp--S3-libs3.bucket-name-prefix=ior--S3-libs3.access-key=...
--S3-libs3.secret-key=...
2022/3/17

第183回 HPC研究会• プロセス数: 1, 2, 4, 8, 16, 32, 64• SRIOV+64では不具合が起こる確率⾼し• キャッシュのフラッシュ• echo 3 > /• 試⾏3回• ブロックサイズ 1MB• 転送サイズ 1MB• local: 合計32GBになるように• fast, large: COUNT=8192

アクセス速度• local: /dev/sda• Lustre (fast, large) :• PortGroup(TCP)でも100 Gbps
• SR-IOVでは 400 Gbps

• S3：最⼤25Gbps (外部接続ネット
ワークを利⽤)25

2022/3/17

プロセス数
2

15000010000050000

0

第183回 HPC研究会

)

P)

d

d(
TC
P

(T
C

st
-r
ea
rit
e

fa

st
-r
ea

st
-w
fa

fa

64

16

rit
e

8

st
-w

32

fa

4

(T
la
CP
rg
)
ere
ad
(T
C
P)

rit
e

1

la
rg
ew
d

rit
e

200000

la
rg
ere
a

la
rg
ew

d

rit
e

ca
l-r
ea

ca
l-w

lo

lo

Bandwidth (MiB/s)

IOR POSIX

ESXiのデータストアによるキャッシュ？

25000026

2022/3/17

rite

第183回 HPC研究会

fa

st
-r
ea

(T
C

)

P)
d(
TC
P

rit
e

d

32

st
-w

16

fa

8

st
-r
ea

4

fa

2

rit
e

1

st
-w

プロセス数

fa

100000

(T
la
CP
rg
)
ere
ad
(T
C
P)

la
rg
ew
d

rit
e

la
rg
ere
a

la
rg
ew

d

rit
e

ca
l-r
ea

ca
l-w

lo

lo

Bandwidth (MiB/s)

IOR POSIX• 理論ピークを超えてしまっている• NVMe SSDとHDDの差が⾒られない
120000

64

80000

60000

40000

20000

0

27

1リンクの場合との⽐較• 8リンク with 144 CPU, 8 GPU vs 1リンク with 18 CPU, 1 GPU• read: SRIOVのインタフェース当たり 2プロセス分のトラフィックをバッファリング？
• write: 8リンクの場合の半分
120000

Bandwidth (MiB/s)

100000
80000

1

2

4

16

32

64

8

60000
40000
20000
0
fast-write

2022/3/17

fast-read

第183回 HPC研究会

fast-write (1p)fast-read (1p)28

ベアメタル（Wisteria-Aquarius）との⽐較• ODIRECTの場合• IB:100G vs 200G, FS: Lustre vs FEFS 等もろもろ違う

Bandwidth (MiB/s)

14000
12000

1

2

4

10000

16

32

64

8

8000
6000
4000
2000
0
large-write

2022/3/17

large-readlarge-write(WA) large-read(WA)

第183回 HPC研究会

29

第183回 HPC研究会

fa
st
-r

ea

d

)

(T
CP
)

ea

d(
TC
P

ri t
e

fa
st
-r

)
ri t
e

(T
CP

d

)

32

fa
st
-w

-r
ea

16

fa
st
-w

ge

(T
CP

d

8

e

-w
rit

4

la
r

ge

-r
ea

e

2

ge

-w
rit

1

la
r

ge

d

e

20000

la
r

-r
ea

-w
rit

プロセス数

la
r

2022/3/17

lo
ca
l

lo
ca
l

Bandwidth (MiB/s)

IOR POSIX+Direct IO• 縦軸が先ほどと⼤きく違うので注意
25000

64

15000

10000

5000

0

30

IOR S3共有、LustreのTCPにおける転送性能⽐較
Bandwidth (MiB/s)

60000
50000

1

2

4

8

16

40000
30000
20000
10000
0
S3-write

2022/3/17

S3-readlarge-write

large-readfast-write

(TCP)

(TCP)

(TCP)

第183回 HPC研究会

fast-read(TCP)

31

MPIバンド幅性能⽐較
60000
TCP

Bandwidth (MB/s)

50000

SRIOV-1
SRIOV-2

40000

SRIOV-3
SRIOV-4

30000

W-A

20000
10000
0
1

32

1024

Size (Byte)

2022/3/17

32768

1048576

TCP (PortGroup, VMXNET3):• mpirun -np 2-x UCX_TCP_TX_SEG_SIZE=32m-x UCX_TCP_RX_SEG_SIZE=32m-x UCX_NET_DEVICES=ens194 osu_bw
SRIOV:• mpirun -np 2-x UCX_MAX_EAGER_RAILS=4-x UCX_MAX_RNDV_RAILS=4-x UCX_RNDV_THRESH=32k-x UCX_NET_DEVICES=mlx5_0:1,mlx5_1:1,
mlx5_4:1,mlx5_5:1 osu_bw
W-A:• Wisteria/BDEC-01 Aquariusノード• InfiniBand-HDR 200 Gbps x1

第183回 HPC研究会

32⾼性能なKubernetes環境の構築• 検証の目標• ⾼機能・⾼性能なmdxを最⼤限活⽤し，従来のスパコンに近い⾼性能
なKubernetes環境を構築する• Intel Ice Lake SP, NVIDIA A100
• RoCEv2 networking，Lustre Parallel FS (+SR-IOV)• 長期目標• ワークロード混在に関する研究を実施する• 周期的・繰り返し実⾏される並列ジョブ（HPC・ML/AI）• ⻑期で要求を待ち受けるWebサービス• 学術コンテナ流通やコンテナ層での複数機関連携• 将来の学術基盤に関する知⾒を得る
33

仮想マシン構成• Kubernetesクラスタ：kube-{master, cpu, gpu, pv}• 周辺サーバ：bastion(踏み台), harbor(レジストリ)
プライベート
コンテナレジストリ
harborkube-master4 CPUパック（Port Group）
helm

16 CPUパック（SR-IOV）

kube-cpux2

16 CPUパック (SR-IOV)

kubectlbastion (ssh)
SSH Forwarding

Kubernetesクラスタ

SSH
DNAT/ACL

Service Port
LENS

Metal LB (L2)

kube-gpu

1 GPUパック（SR-IOV）

kube-pv
16 CPUパック (SR-IOV)

PC

x2

x2

ソフトウェア構成
構成要素

実⾏ランタイム

Kubernetes

k0s（軽量Kubernetes）

性能分離（NUMA）

Toplogy Manager, CPU Manager, Memory Manager

CRI（コンテナ実⾏環境）

Containerd（k0s標準）
NVDIA Container Toolkit, nv_peer_mem, GDRCopy（GPUノードのみ）

CSI（永続ストレージ対応）

DDN Exascaler File CSI Driver

CNI（ネットワーク対応）

Kube-router（k0s標準）
Multus CNI, IPAM Whereabouts（複数ネットワーク対応）
NVIDIA Shared RDMA Driver（ROCEv2/RDMA対応）

Load Balancer（サービス接続）

Metal LB（L2モード）

運⽤・監視

LENS, Prometheus, Grafana

バッチジョブ対応

Kubeflow MPI Operator※mdx固有に導⼊した部分
35

mdx固有のソフトウェア構成• 軽量Kubernetesランタイム• k0s• 性能分離（NUMA，pinning）• Topology Manager, CPU Manager, Memory Manager• GPU対応• NVIDIA Container Toolkit, nv_peer_memory. GDRCopy• 高速・大容量ストレージ対応• Exascaler CSI File Driver• 複数・ROCEv2ネットワーク対応• Multus CNI, K8s RDMA Shared Device Plugin,
IPAM Whereabouts• バッチジョブ対応• MPI Operator36アプリケーションの検証• MPI Operator• バッチジョブ検証• NCCL Tests• tf_cnn_benchmarks (resnet50, 64, fp16, horovod)• 835.28 (frontend), 3334.64 image/sec (ROCEv2)• K8s RDMA Shared Pluginでは，各コンテナに異なるGIDを発⾏することに注意（HorovodでGID指定オプ
ション追加）• Multus対応で起動遅延を挿⼊，Whereaboutsがたまに不安定• Spark RAPIDS + UCX Shuffle Manager• GPU上でのデータ解析，UCX上でのシャッフル• KubernetesネイティブSpark，RAPIDSライブラリ• 対話モードでクライアント⾒つからず（CoreDNS登録）• Apache Kafka（Strimzi版）• ストリームデータ収集

37現状と考察（Kubernetes）• 現状• mdxは⾼速かつ安定的に使える• ⼤きな問題には遭遇していない（むしろ⾮常に快適）• 今後の課題• セキュリティ・プライバシーの強化（次回への先送り）• UID/GIDの設定，ユーザ認証とアクセス権限の管理• Nested VM（Kata Container + Firecracker）• アプリケーションの性能評価・改善• machine-configsから派⽣したAnsible Playbook化• mdx上でKubernetesクラスタが存在する前提での，Helm, Operator等での学術アプリ
ケーション配布• 最近強化されたKubernetesのバッチ機能の検証• Indexed Jobs, Suspended Jobs,…
38

MPI実⾏パラメータ• MPI Operator• mpirun --allow-run-as-root -np 2 -bind-to none -map-by slot -x
NCCL_DEBUG=INFO -x NCCL_IB_DISABLE=0 –x NCCL_NET_GDR_LEVEL=1 -x
LD_LIBRARY_PATH -x NCCL_IB_GID_INDEX=7 -x PATH -mca pml ob1 –mca btl ^openib
python3 tf_cnn_benchmarks/tf_cnn_benchmarks.py --model=resnet50 -batch_size=64 --use_fp16=true --variable_update=horovod• ホスト側※MPI Operatorサンプルからの変更箇所（暫定的な解決策，
GIDがノード間で異なる場合には対応できない）• Ubuntu 20.04 (東⼤配布版)• CUDA 11.4, NVIDIA Container Toolkit 1.8.1, nv_peer_memory 1.3.0, GDRCopy 2.3, K8s RDMA Shared Device
Plugin 1.2.1• コンテナ側（コンテナイメージ）• horovod/horovod:latest (DockerHub)• CUDA 11.2, NCCL 2.8.4, TensorFlow 2.5.0, CuDNN 8.1.1, Python 3.8, CUDA Docker 11.2.2

39

外部とのデータ連携• データ利活⽤・解析のためには…
• データ共有、検索• 研究データ管理、公開

NII Research Data Cloud•••

Gakunin RDM︓データ管理
JAIRO Cloud: データ公開
CiNii: データ検索• Gakunin RDMとの連携
1. mdxのオブジェクトストレージと連携
2. BinderHubを⽤いたストレージ-計算機の連携
3. 内部⼤容量ストレージ（Lustreファイルシステム）との連携

Storage

対外接続ルータ(Ethernet 100Gbps)

Ethernetネットワーク (100GbE/25GbE)

RDMA/ストレージ/仮想ディスクストレージネットワーク (100GbE、RDMA通信⽤)

2022/3/17

第183回 HPC研究会

40

各スパコンとの密な連携• ⽬的：⾼負荷・⼤容量処理をスパコンにオフロード• スパコンはバッチ処理主体：時間的な制約が少ない場合が前提• SINET6により各スパコンセンターとmdxは⾼速に接続• mdxとWisteria/BDEC-01は 400 Gbps x2 で直結• 課題• ストレージの連携• scp, sftpまたはsshfs• S3オブジェクトストレージ• LustreのNFS export

Platform for Integration of (S+D+L)
Big Data & Extreme Computing
シミュレーションノード群

Odyssey
Fujitsu/Arm A64FX
25.9PF, 7.8PB/s• ネットワーク構成• スパコン側での実⾏• ジョブのsubmission• Python, JupyterLab• Container

対外接続ルータ (Ethernet 100Gbps)s

2.0TB/s

Fast File
System

共有ファイル
システム（SFS）

データ・学習ノード群
Aquarius

高速ファイルシステム（FFS）

25.8 PB, 500GB/s

Intel Ice Lake + NVIDIA A100

1PB, 1.0TB/s

7.20PF, 578.2TB/s

800 Gbps
x368

External
Resourcesx40

第183回 HPC研究会

16.3PB

外部リソースExternal Network
外部ネットワーク

RDMA/ストレージ/仮想ディスクストレージネットワーク (100GbE、RDMA通信⽤)

1.0PB

2022/3/17

400
Gbp

Ethernet (100GbE/25GbE)

Shared File
System

10.3PB

41

まとめ• データ科学・活⽤のための基盤 mdx:データ活⽤社会創成プラットフォームを導⼊• 9⼤学（北⼤、東北⼤、筑波⼤、東⼤、東⼯⼤、名⼤、京⼤、阪⼤、九⼤）, 2研究所
（NII, AIST）• mdxの特徴• 幅広く利⽤可能なマルチテナントの仮想化計算基盤• 「学認」による利⽤申請• スパコン⾒学会録画 (mdx & Wisteria/BDEC-01)• Gakunin RDMとの連携• VPNによる隔離• SINET6との連携によるセキュアIoT（モバイルSINET）

https://www.youtube.com/watch?v=utCmjkkZPOM• mdx紹介と研究事例イメージ

https://www.youtube.com/watch?v=--7h6tWECX8• 思っていた以上に性能低下は少ない• スパコンとmdxとの密な連携
2022/3/17

第183回 HPC研究会

42