2022/4/22

第175回お試しアカウント付き並列プログラミング講習会「スーパーコンピュータ超入門」

より進んだ利用に向けて

2022/4/18 v1.0

どのように使うか• 一般利用
- 研究代表者（大学、公的研究機関の方）- グループでの利用も可➡ 研究実施に必要なトークン量を見積もる必要

利用負担金(年額，税込)

利用可能
ノード数

割当資源（トークン）

ディスク量/work

Oakbridge-CX 100,000円
OBCX/年 (1セット)

最大256
ノード

8,640 ノード時間（1ノード×360日相当）

4TB

システム

＃ 電気代相当の経費を負担# 一般利用の資源利用状況は show_token, show_quota コマンドで確認可【企業の方は、企業利用制度により利用（詳細HP参照）】

2

利用予定プログラムで計算時間見積もり
OBCX の実機上でも、自分の研究室のマシンでも● 担当講師の手元にあるプログラム
自分で書いた分子動力学コード, MPI + OpenMP に対応
やりたいこと：

16,384,000 粒子 100 ナノ秒 = 108 ステップ が必要★OBCX 1ノードで実行, 104 ステップから確認

3

MPI + OpenMP
ハイブリッド並列OBCX 搭載のCPU= Intel Xeon Platinum 8280 (CascadeLake)
1 CPU = 28 コア
OpenMP 7スレッド
x MPI 4プロセス

OpenMP＝ 指示文挿入による並列化
プログラムの大幅な書換えはしなくて良いが、ノード内のみ

DDR4
DDR4
DDR4
DDR4
DDR4
DDR4Memory
96 GB2933 MHz• 6ch
140.8 GB/sec

MPI＝ 通信の明示的指定

1スレッド, 1プロセス(Cascade Lake, CLX)
2.7GHz, 28-Cores
2.419 TFLOPS

UPI
UPI
UPI

Soc. #0: 0th-27th coresIntel® Xeon®
Platinum 8280
(Cascade Lake, CLX)
2.7GHz, 28-Cores
2.419 TFLOPS
Soc. #1: 28th-55th cores

Ultra Path Interconnect
10.4 GT/sec • 3= 124.8 GB/sec

DDR4
DDR4
DDR4
DDR4
DDR4
DDR4Memory
96 GB

ノード #128+28 コア

2933 MHz• 6ch
140.8 GB/sec

Intel Omni-Path (100 Gbps)

ノードまたぎ並列には必須
基本は１コアあたりIntel® Xeon®
Platinum 8280

合計 2 ノード
OpenMP 7スレッド
x MPI 16プロセス

Memory
96 GB

DDR4
DDR4
DDR4
DDR4
DDR4
DDR42933 MHz• 6ch
140.8 GB/sec

Intel® Xeon®
Platinum 8280
(Cascade Lake, CLX)
2.7GHz, 28-Cores
2.419 TFLOPS
Soc. #0: 0th-27th cores

UPI
UPIUPIIntel® Xeon®
Platinum 8280
(Cascade Lake, CLX)2.7GHz, 28-Cores
2.419 TFLOPS
Soc. #1: 28th-55th cores

Ultra Path Interconnect
10.4 GT/sec • 3= 124.8 GB/sec

DDR4
DDR4DDR4
DDR4DDR4DDR4Memory
96 GB2933 MHz• 6ch
140.8 GB/sec

ノード #228+28 コア

実行結果
1ノード, 56 コア (8 MPI x 7 OpenMP)
32,000 粒子

11.84 sec

● 単純に必要計算資源を見積もると…

16,384,000 粒子

108 ステップ

Array Use Information:
MMD:
max of Nproc: 341003 (curr. lim=341936)
max of celenum[cn]: 45 (curr. lim=62)
max of nnlmmax[n]: 127 (curr. lim=149)
average of cell list duration: 0.018844
Function Load
514.293sec
347.768sec
0.00851301sec
6.53144sec
3.96262sec
87.233sec
15.6167sec
53.7682sec
17.8437sec
67.4933sec
50.0715sec
0.358424sec[67.6205%] force()[0.00165529%] dist_rand()[1.26998%] LFone()[0.770499%] LFtwo()[16.9617%] comm_particles()[3.03654%][array_sendrecv][10.4548%][comm_ispq][3.46957%][communicateparticles][13.1235%] structclist()[9.73599%][makennlist][0.0696925%][recvindexsearch]➡ 11.84 sec × (16,384,000 / 32,000) × (108 / 104)
= 6.602 x 107 sec = 16389 hours
１ノード換算でトークン16400 ノード時間が必要 (約2セット)
5まずは、1ノードで比較
104 ステップ

全て 1ノード, 56 コア (8 MPI x 7 OpenMP)
8倍
8倍
8倍

32,000 粒子

14.25 sec

256,000 粒子

71.43 sec

2,048,000 粒子

473.94 sec

16,384,000 粒子

3522.3 sec
||

5.3倍
6.6倍
7.47倍

約1時間

108 ステップ➡ 10000 時間 = 416日
6もう少し詳しい並列性能評価の話
多くのアプリケーションは並列度を増やすと性能低下
目的： 逐次実行のプログラム = 実行時間 Ts
p 台を用いて実行時間 Tpを Ts/p にしたい
一般には・アルゴリズム上の困難・通信等オーバーヘッド

並列化効率 Ep = 100 × (Tp/Ts ) / p
並列化後の実行時間短縮 Sp = Tp/Ts7もう少し詳しい並列性能評価の話

Spp8並列化効率評価 = 多ノード実行性能を推定
16,384,000 粒子, 104 ステップに対して評価 (8 MPI x 7 OpenMP)
1 ノード

3522.26 sec

2 ノード

1929.47 sec

4 ノード

1091.22 sec

32 ノード164.84 sec

256 ノード

40.1173 sec

1.8倍(8 MPI x 7 OpenMP)(8 MPI x 14 OpenMP)

1.8倍(8 MPI x 28 OpenMP)
6.6倍
4.2倍

(64 MPI x 28 OpenMP)→ 20日 で108 step(512 MPI x 28 OpenMP) → 4日 で108 step

注）お試しアカウントでは 8 ノードまでしか実行できません
9台数効果を大雑把に逆算してみると。。。
■ 104 ステップに要する逐次実行時間（1コアとしたときの概算）Ts = 3522.26 sec x 56 コア ~ 200000 sec.

■ 256 ノード = 14436 コア 使用した時の実行時間

40.1 sec ~ 5000 倍 = Sp

■ 台数効果の式から逆算
α ~ 0.99987
全体の計算のうちの99.987 % が並列化されていた

10

並列計算を開始する前に■ 99.99 % の並列化率というのは高い数字ですが、それでも100ノードを超えると、かなり計算速度は減少。

■ この事情は、例えばオープンソースの並列プログラム （OpenFOAM,LAMMPS, Gromacs, etc… ）を使用する場合も同じです。

■ 並列化率だけでなく、並列度に応じたメモリレイアウトの変化、データの読み込みや書き出しなどに影響される場合もあります。

11

GUI開発環境
一定以上の規模のコード開発には対話型開発環境 (IDE) が便利— GUI 環境でコード開発から検証まで
Eclipse, Xcode (mac), Android Studio (androidアプリ), ….
Python IDE = JupyterLab （後述）

Microsoft Visual Studio Codeフリー

Remote-SSH 機能が2019年より追加
スパコン上での利用も便利に
https://marketplace.visualstudio.com/items?itemName=msvscode-remote.vscode-remote-extensionpack

12

Visual Studio Code — ダウンロード
ウェブブラウザからダウンロード
https://code.visualstudio.com

拡張機能→ Remote Development → Install13

view > command palette > “remote-ssh ” と入力 → 選択
接続先 tUVXYZ@obcx.cc.u-tokyo.ac.jp を入力! .ssh/config を使っている方は、インポートできて便利です。

14

コードブロックの全体も見えて、作業がしやすくなっています。

15

東大情報基盤センターのスーパーコンピュータ利用案内

16

Supercomputers @ ITC/U.Tokyo

Information Technology Center, The University of Tokyo

FY111213141516171819Yayoi: Hitachi SR16000/M1
IBM Power-721222324

6.61 PFLOPS

OFP-II ?
(JCAHPC)

Oakforest-PACS (OFP) (JCAHPC)
Fujitsu, Intel Xeon Phi

140TF, 31.3TB

25Oakbridge-CXIntel Xeon CLX

54.9 TFLOPS, 11.2 TB

T2K Tokyo
Hitachi

20

25PFLOPS, 919.3TB

Oakleaf-FX: Fujitsu PRIMEHPC FX10,SPARC64 IXfx

BDEC System

Big Data & Extreme Computing

30+ PFLOPS

1.13 PFLOPS, 150 TB

Oakbridge-FX

Data Platform (DP/mdx)

136.2 TFLOPS, 18.4 TB

Reedbush-U/H, HPEIntel BDW + NVIDIA P100
1.93 PFLOPS

Reedbush-L HPE
1.43 PFLOPS

17

ূ਎প৾ฃII य़কথঃ५৫ਚૄ

東京大学のスーパーコンピュータは 柏キャンパス＋柏II キャンパスへ
Oakbridge-CX
OFP-II଑ো੒৒৉଑ো੒৒৉਎প৾ੲਾ੦ೕ७থॱ‫ؚش‬NIIฃীை@ূ਎প৾ฃ਎প৾ੲਾ੦ೕ७থॱ‫ؚش‬NIIฃীை @ ূ਎প৾ฃকথঃ५কথঃ५
य़কথঃ५पमਓ੕ଢ଼ABCIय़কথঃ५पमਓ੕ଢ଼ABCI৫ਚૄ৫ਚૄ
Wisteria/BDEC-01

mdx+産総研
ABCIপ੕শ‫ؚ‬NIIਚশ‫ؚ‬ધఐ੄‫ؚ‬ฃ৘‫ؚ‬etc.

প੕শ‫ؚ‬NIIਚশ‫ؚ‬ધఐ੄‫ؚ‬ฃ৘‫ؚ‬etc.

18

Wisteria = 紫藤

Wisteria/BDEC-01

Externalnetwork(SINET6)

2021年5月~
Fast File System
1 PB, 1.0 TB/s

Simulation Nodes:
Odyssey
Fujitsu/PRIMEHPC FX1000
Arm A64FX processor 7680 nodes
25.9PF, 7.8 PB/s

CPU機「富岳」と同型

2.0 TB/s

800 Gbps

Data/Learning Nodes:
Aquarius
360 NVIDIA A100/SXM GPUs
(on 45 nodes of Intel IceLake CPUs)

7.20 PF, 578.2 TB/s

Shared File System
25.8 PB, 500 GB/s

GPU機

8台 / ノード19

全体構成
Odyssey

Aquarius

25.9 PFLOPS
7,680 (10x8x8x2x3x2)

7.2 PFLOPS
45

総メモリ量

240 TiB

36.5 TiB

総メモリバンド幅

7.8 PB/s

578.2 TB/s

6D Mesh Torus

Full-bisection BW
Fat Tree

インタコネクトTofu-D

InfiniBand HDR

バイセクションバンド幅

13 TB/s

4.5 TB/s

理論演算性能ノード数

ネットワークトポロジ

ノード間結合・ストレージ
ネットワーク バンド幅

InfiniBand HDR, 2.0 TB/s21ノード構成

項目

Processor name
CPU

#CPU (cores)
Frequency
Peak performance
MemoryGPU name
Peak performance
GPUMemory#GPU / node
インターコネクト
External connection

Odyssey

Aquarius

Fujitsu PRIMEHPC
FX1000Fujitsu PRIMERGY GX257(Succesor model)

Fujitsu A64FXNext Intel Xeon
IceLake processor

1 (48+2 or 4)
2.2 GHz
3.3 TFLOPS
32 GB, 1TB/s-2 (36 + 36 )2.4GHz5.53 TFlops
512 GB / 409.6 GB/s
NVIDIA A100 Tensorcore
19.5 TFlops (FP64 Tensor Core)
40 GB, 1.55 TB/s

8, NVswitch connected
Tofu-D

InfiniBand HDR(200 Gbps) x4-25 Gbps/node22一般利用料金•

１セット = 60,000円 /年

WisteriaOdyssey
WisteriaAquarius（１年間 Odyssey 1 node 使用する量に相当）

最大利用可能ノード数

トークン量

ディスク量

2,304 nodes

8640 (=24x360)/ (node hours)

2TB / set

2880(=24x120)/ (GPU hours)

2TB / set

= 110,592 cores (予定）
8 nodes= 64 GPUs (予定）他、ノード固定 or GPU占有利用、外部接続ノード利用など
詳細の料金情報はホームページ 参照
https://www.cc.u-tokyo.ac.jp

23東大情報基盤センターの利用申し込み枠（○：代表者，△：参加者）

24

情報基盤センターの資源を無料で使いたい場合（大学・公的研究機関に所属の方）• 若手・女性利用課題
40歳以下または女性、年２回の募集（次回は 8月末〆切）• 学際大規模情報基盤共同利用・共同研究拠点課題基盤センターとの共同研究,

2022年度は募集終了• HPCI 課題（RIST）
2022年度分の一般課題について、各基盤センター分は募集終了
25

https://mdx.jp
いわゆるスパコンとは違う新たなクラウド型プラットフォーム‣ 仮想マシンおよびVPNで互いに隔離された占有環境‣ コンテナ・機械学習利用‣ SINET6（2022導入）の活用
400Gbps 全国ネットワーク‣ ７大学 + ２研究所の共同Pj
26https://mdx.jp
性能・構成- 368 CPU nodes (Intel Ice Lake)- 40 GPU nodes (NVIDIA A100 x 8)
Storageshigh-speed NVMe SSD(1.0PB @ 250GB/s)large HDD (16.3PB @ 157.5GB/s)
S3 compatible storage(10.3PB @ 63GB/s)
Networks
Ethernet 25 Gbps
RDMA 100 Gbps (to SINET5)
Sortwares
VM & Container, IaaS27

29

お疲れ様でした