科 学 技 術 計 算 分 科 会

選 出

科学技術計算分科会 2013 年度会合 よりエクサスケールで顕在化するPower Wall 問題〜現状と今後の打開策〜

近藤 正章（電気通信大学）

サイエンティフィック・システム研究会

2013 年 10 月 23 日

科学技術計算分科会 2013 年度会合

エクサスケールで顕在化する Power Wall 問題～現状と今後の打開策～
近藤 正章
電気通信大学大学院情報システム学研究科［アブストラクト］
エクサスケール HPC システムでは、消費電力がその設計や実効性能を制約する最大の要因の一つと考えられており、各構成要素の省電力化のみならず、システ ムレベルでの電力制御技術の開発が重要な課題となっている。本講演では、プロセッサやメモリ、ネットワークデバイス等の省電力化に関する要素技術動向について述べるとともに、現在取り組んでいる電力制約下において電力配分を最適化するための電力マネージメントフレームワークの研究について紹介する。

［キーワード］エクサスケールシステム、ハイパフォーマンスコンピューティング、Power Wall、省電力化、電力マネージメント

１．はじめにエクサスケール高性能計算システムの開発においては、消費電力が最も重要な制約条件の 1 つであると認識されている。2013 年 10 月現在において Top500 リスト中 3 位にランクされるスーパーコンピュータの BlueGene/Q は、8MW 程度の消費電力で 17 ペタフロップスの実効性能を達成している。これに対し、 2020 年前後の稼働を目指すエクサスケール
高性能計算機システムでは、20～30MW と現在の電力の 3 倍程度の消費電力で BlueGene/Qの 50 倍超の処理速度向上が要求されることになる。現状のトレンドを外挿すると、（比較的楽観的に見積もったとしても）実効で 1 エクサフロップスを達成するためには 50MW 近い消費電力が必要となる。そのため、消費電力当りの性能(MFlops/Watt)を向上させることが急務であり、この課題の解決無くしてはエクサスケール・スーパーコンピュータは実現し得ない。
この電力効率の改善に向けては、DVFS、Power-gating、不揮発性メモリなど、既存技術の活用をさらに進めるのはもちろんのこと、3 次元積層技術、FinFET、FDSOI、SOTB、Hybrid
Memory Cube、シリコン・フォトニクスといった最新の電力効率に優れるデバイスの利用を検討することが必要である。また、ハードウェア、およびソフトウェアからの電力マネージメント技術も重要になると考えられる。今後、これらの各種要素技術のコストや技術成熟度を検証しつつ、システムを開発を進めていくことが求められる。

２．電力マネージメントフレームワークの研究開発
上述のように、電力マネージメント技術はエクサスケールシステムの実現に向け、重要な技術の一つである。ポストペタスケール時代のアプリケーションは、超大規模システムにスケールさせる上で、システムへの要求は多様化すると予想されるため、供給電力や熱設計電力制約の中でハードウェア資源を投入し、運用時のピーク消費電力が制約を超えないことを保証する従来の設計思想では、アプリケーションを今後の大規模システムに対してスケールさせることは難しい。そこで、今後の HPC システムのあるべき姿として、従来のように利用可能な全ハードウェア資源を使い切るのではなく、ピーク消費電力が電力制約を超過することを積極的に許し(Over-provisioning)、ハードウェアが持つ電力性能ノブを適応的に制御することで限られた電力資源を計算・記憶・通信という要素に適応的に配分しつつ、実効電力を制約以下に抑えるシステム形態を提唱し、そのための電力マネージメントフレームワークの研究開発を富士通株式会社、九州大学、東京大学と連携して実施している。
現在は、電力観測・制御のための各種ミドルウェアの開発や、使用可能電力に制約が存在する中で各アプリケーションの性能を最大化するための電力制御最適化手法を開発しており、初期結果として適応的な電力配分により 1.4～2 倍超の性能向上を達成できることがわかっている。

３．おわりにエクサスケールシステムでは、消費電力がシステム設計や実効性能を制約する最大の要因であり、電力効率を意識したシステムデザインが特に重要である。今後、限られた電力資源を真に有効利用できるシステムの実現を目指し、ハードウェアのみならず、関連するシステムソフトウェアの開発を、国内だけではなく国際的にも連携して進めて行くことが重要であると考える。

科 学 技 術 計 算 分 科 会

選 出

科学技術計算分科会 2013 年度会合 より

これで我々のアプリケーションプログラムは速くなるか？
-マルチコアクラスタ性能 WG 成果報告-高木 亮治（宇宙航空研究開発機構）

2013 年 10 月 23 日

サイエンティフィック・システム研究会
計算科学技術分科会 2013 年度会合

これで我々のアプリケーションプログラムは速くなるか？
−マルチコアクラスタ性能 WG 成果報告−高木亮治

宇宙航空研究開発機構 宇宙科学研究所[アブストラクト]
マルチコアクラスタ性能 WG では、会員が開発した各分野のアプリケーションプログラムを対象に、FX1、次世代スーパーコンピュータ「京」、PRIMEHPC FX10 上での性能分析・評価およびチューニングを実施することで、マルチコアクラスタマシンに向けた並列プログラミングモデルや高速化手法の検討およびノウハウの共有を行った。ここでは本 WG 活動を通じて得られた実践的な成果について報告する。はたして我々のアプリケーションプログラムを速くすることができただろうか？
[キーワード]マルチコアクラスタ、アプリケーション、性能評価、高速化
1. はじめに
次世代スーパーコンピュータ「京」（以下、単に「京」）は、ノード内マルチコアおよび大規模ノード数を特徴とした並列計算機であり 2012 年に本格稼働を開始した。このようなマルチコアかつ大規模ノード数といった特徴を有する並列計算機を有効活用するためのノウハウは「京」開発当時は十分ではな
く、そのため既存のスーパーコンピュータユーザがすみやかに「京」に移行し、「京」の潜在能力を有効活用するためのノウハウを蓄積することを目的に、2010 年 12 月にマルチコアクラスタ性能 WG が設立された。ここでは本 WG の活動概要とその成果について紹介する。
2. WG の活動概要
WG は 2010 年 12 月から 2013 年 5 月までの 2.5 年間に全 10 回の会合を持った。WG では会員が開発/保有する各分野のアプリケーションプログラム（流体解析が多く、他に構造解析、プラズマ解析など）を対象に、まずはノードアーキテクチャが「京」に似た FX1 での性能分析や評価を行った。その後稼働した「京」、更に WG 活動の後半で利用可能となった PRIMEHPC FX10（以下、単に FX10）を用いて性能分析・評価およびチューニングを実践することで、マルチコアクラスタマシンに向けた並列プログラミングスタイルや高速化手法の検討およびノウハウの共有を行った。また、PA ツールや会員から提供されたツールなど性能分析ツールの紹介や利用方法、ノウハウの共有も実施した。WG の活動を通じて得られた成果である各アプリケーションプログラムの性能測定結果及びその評価、高速化チューニングの各種ノウハウなどを実践的事例として成果報告書「実践、アプリ高速化に向けて」（約 180 ページ）にまとめた。また「PRIMEHPC FX10 チューニングチュートリアル」（約 300 ページ）にも反映された。
3. 活動の総括
WG で扱った会員のアプリケーションプログラムとしては流体、構造など連続体系のものが多く、そのためメモリアクセス性能を向上させるチューニングが主となった。その中で特にプリフェッチの有効利用に関する議論を行った。プリフェッチの有効活用ではハードウェアプリフェッチ（HWPF）とソフトウェアプリフェッチ（SWPF）の使い分けがポイントとなるが、その判断や効果が結局のところ試行錯誤である場合が多く、一般的なユーザーが取り組む手法としてはハードルが高いものと感じられた。
この様に性能評価および高速化チューニングにおいて、性能評価や分析のためのデータを取得するツールが色々と整備されてきており、以前に比べて性能評価や分析が効率よくできる様になった。しかしながら、ユーザーの何故こうなるのか？どうすれば良いのか？の質問に的確に答えられないのが現状である。これはユーザーだけではなく専門家？でさえ試行錯誤を行っているためであり、この様な現状は、はなはだ憂慮すべきことであると感じた。同じ実装でもデータサイズが異なっただけで正反対のチューニングを実施するような状況では、WG の求める汎用化、共有化は非常に困難となり、ややもすると個別ケースに関する各論になりがちであった。もっとメタな議論が必要とされるが、そのためには、ハードウェア開発者、コンパイラ開発者、ユーザーの三者間での密接な議論が必要（所謂 Co-design）と痛感した。不十分であったかもしれないがそういった場を提供できた本 WG の活動は有意義であり今後も継続していくことが望まれる。特に、今後想定されるより高いハードル（さらに使いにくいマシンへの対応）に向けては Co-design と呼ばれるより密な議論が必要と思われ、そういった活動をどう実現していくかが喫緊の課題である。
4. おわりに
マルチコアクラスタ性能 WG では FX1 や「京」、FX10 などマルチコアクラスタを対象として会員のアプリケーションプログラムの評価および高速化チューニングを実施し、その成果やノウハウの共有を試みた。しかしながらアプリケーションプログラムの開発者にとって自分のプログラムの高速化チューニングはますます困難な状況になっていることを痛感したのではないかと思われる。今後のエクサスケール計算機では、更に危機的状況になると予想されており、ハードウェアおよびシステム、コンパイラなどの開発者の支援の下、ユーザーが主体的に性能評価・高速化チューニングを実施する本 WG の様な活動は貴重であり、今後も継続されることが期待される。
本講演のタイトルである「これで我々のアプリケーションプログラムは速くなる（なった）か？」であるが、（少なくとも WG に参加すれば）速くなったと回答したい。WG に参加することで、計算機の専門家、先達ユーザーから貴重なアドバイスをもらえ、それらが高速化の役に立ったと思う。皆さん是非WG に参加しよう！！
最後になるが、貴重な時間を割いて 2.5 年間の WG 活動に参加していただいた会員の皆さま、富士通の担当者、至らないまとめ役を全面的にバックアップして WG の円滑な運営に尽力していただいた SS
研事務局のみなさまに感謝する。また、WG では以下の環境を利用した。改めてここに感謝の意を表する。
スーパーコンピュータ「京」試験利用枠、一般公募枠
宇宙航空研究開発機構 JSS
日本原子力研究開発機構 BX900, FX1
国際核融合エネルギー研究センター Helios
名古屋大学 FX1
東京大学 FX10
九州大学 CX400, FX10
理化学研究所 RICC
富士通社内機

WG
WG

WG

2WG

3WG
WG
FX12010FX10FX1 48

FX10 162012

4201012201352.55102.5

PA180
PRIMEHPC FX10300

6

1/2
333

FEM

ADVENTURE
COSMOS
FDTD3GT5D
UPACS
Vlasov5
ZZ-EFSI
ZZ-HIFU
JTAS

55

CFD

72/2
NSIM
Exana
H/W S/W/FMA

8PRIMEHPC FX101234567PAFortran
C/C++

MPI
910

ADVENTURE
FEM
FX1, FX10, CX400,

113

FEM

ADVENTURE

FEM

,FEM
, CPU,

B/F

B/F

CPU

12COSMOS
LES,, SOR

,RX600, FX1, FX10,813

14:
161x56x81=757,188: 121x61x81=620,248
1(*) Large Eddy Simulation(**) Successive Over-Relaxation

23

15on FX1 4core
37:3

1
1
2i,j,k88
on FX10 16core:

Poisson
11%

:11%
L2

FDTD33
FX1, FX10,A(i,j,k,n) orA(n,i,j,k) orA1(i,j,k), A2(i,j,k),, An(i,j,k)
16

GT5D
5JAEA
3210023

BX900, Helios,, FX1, FX1015%

60
589,824

41%

Helios99.99989%

24,576

I/O
17

GT5D
10B.MPI_Test

C.

RendezVouz

RendezVouz

Helios
1,000

GT5D

K(ITER)
Helios(ITER)

589,824cores
K (2013)

BX900(JT60)

10065,536cores
Helios (2012)
1016,384cores
BX900 (2011)

1[Idomura et al., Int. J. HPC Appl. 2013]

10100
1000
Peak Performance (TFlops)

10000

18UPACS

JAXA

3,

FX1,SIMD
Allocate/deallocate

SIMD

19

SIMD

FLOPS

SIMD

SIMD

SIMD

PA
#0#0(sec)
10.31
11.21

9.45%
8.69%

MFLOPS
1512
1391

MIPS
1929
1707

1.56E+10
1.56E+10SIMD(/0.00%98.85%)

20

UPACS

JAXA

UPACS

:

JSS, Intel CPU
B/F
21

&
Q(i,j,k,n), I,j,kA
do dir=1,3
do k=1,kmax, do j=1,jmax, do i=1,imax
MUSCL
enddo, enddo, enddo
do k=1,kmax, do j=1,jmax, do i=1,imax
FLUX
enddo, enddo, enddonB
do k=1,kmax, do j=1,jmax, i=1,imax
do ndir=1,3
MUSCL
FLUX
RHS Q
MUSCL, FLUX, Q
enddo

do k=1,kmax, do j=1,jmax, do i=1,imax
RHS( Qenddo, enddo, enddo

enddo, enddo, enddo

enddo

do k=1,kmax, do j=1,jmax, i=1,imax

do k=1,kmax, do j=1,jmax, do i=1,imax

enddo, enddo, enddo

enddo, enddo, enddo
22

A B

1

180

Byte/FLOP
B/F
A
23

ZZ-EFSI, WENO

RICC@,46.4% 12,288

43.2%

24

NSIM

Exana

25

Exana
WG

(**x86)OpenMX
50

3
OK

Japan Advanced Institute of Science and Technology

26

27

PF
HWPF

SWPF

SWPF

28

HWPF SWPF

SWPF

29

FMA
FMA
FMA

30

WG31CPU
B/F

B/F

H/W,
32

H/W

33

WG

Co-Design

34

Co-Design ex.
A

B

Euler

Lagrange

Co-Design
35

WG

FX1,,

FX10

FX10H/W
WG
36

WG
WG

H/W

WG
37

Co-Design
WG

SS

SS

WG

HPCI, HPCI
AICS

38

2.5

WG
SS

WG
JSS
BX900, FX1
HeliosFX1FX10CX400, FX10
RICC
39

科 学 技 術 計 算 分 科 会

選 出

HPC フォーラム 2013 より

Why we need Exascale,and why we won't get there by 2020

Horst D. Simon(Lawrence Berkeley National Laboratory)                                                                                                                                                     