学際大規模情報基盤共同利用・共同研究拠点 平成 27 年度共同研究 最終報告書 2016 年 5 月

jh150008-IS01

Xeon Phi・ベクトル計算機への FDTD コードと電磁流体コードの最適化手法の研究
深沢 圭一郎（京都大学）
概要 Xeon Phi は CPU 動作コードを変更すること無く動作可能であるが、そのままでは Xeon Phi の性能は全く出ないことがわかっている。また、SX-ACE は今までのベク
トル CPU とは異なり、小さなベクトルチップからなる 4 ベクトルコア＋スカラコアのCPU となっており、最適化手法が確立されているとは言えない。そこで本研究課題では、電磁場解析を行う FDTD と宇宙プラズマを解く MHD コードを利用して、Xeon Phi システムと SX-ACE に向けた最適化を行い、その最適化手法をまとめることを目的とする。

1.

共同研究に関する情報

2.

研究の目的と意義
現在の Top500 で 1 位となっている天河 2(1) 共同研究を実施した拠点名
北海道大学 情報基盤センター

号が Xeon と Xeon Phi で構成されているこ

東北大学 サイバーサイエンスセンターとに代表されるようにスーパーコンピュー東京大学 情報基盤センター

タシステムに何らかの加速器が組み込まれ京都大学 学術情報メディアセンターていることは一般的である。これらの加速器

九州大学 情報基盤研究開発センター

はその性能の高さから、システムの性能のほ上記の拠点所属の研究者と共同研究を行い、とんどを占めることが多い。
このような中、Xeon Phi は Native 利用に東北大学、京都大学、九州大学の計算機資源を利用した。

おいては CPU を利用することなく、独立し(2) 共同研究分野た計算ノードとして利用することができ、さ(3) 超大規模情報システム関連研究分野

らに次期 Xeon Phi では bootable 対応となり、参加研究者の役割分担

CPU 無しで、Xeon Phi だけで構成された計・岩下 武史（北海道大学）：FDTD の XC30

算機システムの登場が予定されている。Xeon（Xeon Phi）での性能評価

Phi は多数の x86 系計算コアからなり、一般・江川 隆輔（東北大学）：東北大学 SX-ACEに CPU で動作しているアプリケーションでを利用した MHD シミュレーションの性能評

あれば、コードの変更無く、動作可能である。

価と最適化

しかしながら、そのままでは実行効率が極め・大島 聡、片桐 孝洋（東京大学）：Xeon Phiて低く、Xeon Phi の性能は全く出ないことを利用した FDTD 最適化支援がわかっている。この原因はいくつか考えら

・南里 豪志（九州大学）：九州大学 HA8000

れるが、SIMD 利用効率が低いことが大きなを利用した MHD シミュレーションの並列計問題の一つである。このように動作はするが算実行確認性能が出ないために Xeon Phi を活用してい・深沢 圭一郎（京都大学）：京都大学 XC30るアプリケーションはほとんど無い。またポ（Xeon Phi）
、東北大学 SX-ACE を利用した

スト T2K システムでも Xeon Phi のようなメ

MHD シミュレーションの性能評価・最適ニーコアシステムが採用される計画で有り、化・実行

Xeon Phi のようなメニーコアシステムを活用できるアプリケーションの準備は非常に1

学際大規模情報基盤共同利用・共同研究拠点 平成 27 年度共同研究 最終報告書 2016 年 5 月

ように CPU 構成の変わったベクトル機にお重要である。
また最新のベクトル計算機である

いて、ベクトル機で利用頻度の高い流体系、

SX-ACE も運用が始まっており、さらに次期電磁解析系アプリケーションで最適化を行ベクトル機として Aurora と呼ばれるシステ

うことは利用価値の高い情報提供につながムの開発も進められている。SX-ACE では今ると考えられる。

までのベクトル CPU とは異なり、小さなベクトルチップからなる 4 ベクトルコア＋スカ3. 当拠点公募型共同研究として実施した意義

ラコアの CPU となっており、加速器付き本研究課題において、Xeon Phi と新型ベク

CPU システムと構成が似ている。一般的にトル機に対する実アプリケーションの最適化

ベクトル計算機はメモリバンド幅が大きいを行うことは、このアプリケーションを利用ことが特徴であり、同構成の Xeon Phi やする研究者だけで無く、その最適化情報はアGPU と最適化の共通性がある可能性も考えプリケーション開発者に広く有用な情報となられる。

る。

そこで本研究課題では、電磁場解析アプリ

Xeon Phi は現状の HPCI-JHPCN においてケーションである FDTD と電磁流体力学シ3 計算機システムが利用可能である一方、実ミュレーションコードの MHD コードを利用

アプリケーションでの効率的な利用例がほとして、Xeon Phi システムと SX-ACE に向けんど無い。今後 Xeon Phi から成る計算機シスた最適化を行い、その最適化手法をまとめる

テムが増えることを考えると、JHPCN に含ことを目的としている。

まれる計算機センターと共同でアプリケーシ

前述のように Xeon Phi はすでに複数の計

ョンの Xeon Phi への最適化を行うことは技算機センターで運用が始まっており、今後は術蓄積・公開の面からも非常に有用であるとポスト T2K も含め、さらに増えると思われ考えられる。

る。アプリケーション開発者、利用者にとっベクトル機は昔から続いてきたロングパイて、GPU と異なり、コードの変更無しで利プライン、高 B/F 値といった特徴が変化し、用できる MIC（native 利用時）は魅力的でコア数の増加、ADB と呼ばれるメモリキャッ有り、利用者は多いと思われるが、同時に性シュ技術やスカラコアの導入が行われており、能が出ない問題が増大すると予想される。そきれいなメモリアクセスと長い計算ループがのような中で、実アプリケーションで利用頻あれば性能が出るという時代では無くなって度の高い流体系計算、電磁場解析コードにおいる。このため、今までのベクトル最適化技いて、MIC 向け最適化手法を研究し、情報を術にスカラ的側面から最適化を行うことが重計算機センターに蓄積することは、今後のセ要と考えられる。このような状況においては、ンターの役割からも非常に意義がある。スー異なる計算機システムを運用する計算機セン

パーコンピューターを利用して計算を行う

ター研究者が共同研究することが、新しい知研究者の大部分は大規模の計算が正確で早見を効率的に発見していくことの出来る仕組

く解くことが出来れば、どのシステムで良いみの一つと考えられる。という考えである。その考えからも新型ベク

4. 前年度までに得られた研究成果の概要

トル機の最適化手法を研究することは近年ベクトル機を利用したことが無いユーザが新規課題のため無し多いことも考えると意義がある。特に前述の2

学際大規模情報基盤共同利用・共同研究拠点 平成 27 年度共同研究 最終報告書 2016 年 5 月

5. 今年度の研究成果の詳細

30

まず、FDTD コードを、京都大学の計算機システムを利用し、Xeon Phi と Xeon 上で実25行し、性能評価を行った。Xeon は Sandy

20
GFlopsBridge（SB）と Haswell（HW）アーキテクチャの計算機システムを利用した。図 1、2 にSandyBridge
Haswell

15それぞれの結果を示す。計算サイズは10500×500×500 に固定し、1 ノードを用いて計5算し、スレッド数を変更させている。Xeon の0

場合は 2 CPU ソケットシステムのため、SBXeon で 16 スレッドまで、HW Xeon で 28 ス

0102030コア（スレッド）数レッドまで利用している。SB Xeon では 2 か

図 1 Xeon 上での FDTD コードの性能

ら 4 スレッド、HW Xeon では 8 から 14 スレ9レッド（コア）の増加によるスレッドあたり8のメモリ帯域が減少する影響と考えられる。

7

その後は性能がスケールしている。最大性能

6はそれぞれ、約 13.6 GFlops（SB）、24.35GFlopsッドの間で性能向上があまりないが、利用スGFlops となっている。同じコードを Xeon Phi

2 threads / core4（Native 利用）上でコアあたり 2 スレッドと34 スレッドを利用して実行した結果、常に 22スレッド/コアの性能が高くなった。それぞれ

148 コア（96 スレッド、192 スレッド）までは0性能がスケールしているが、60 コアを利用し4 threads / core020406080

コア数た場合には性能が下がっている。最大の性能

図 2 Xeon Phi 上での FDTD コードの性能

は 2 スレッドで 48 コア（96 スレッド）利用時で、7.7 GFlops となった。1 CPU 辺りで更したが、あまり性能改善は無かった。これ

Xeon と Xeon Phi を比べると、Xeon Phi がは、変更により SIMD 自体は効くようになっ

SB Xeon よりは性能が出ており、HW Xeon

たが、ストリームの本数が増加し、またデーより性能が出ていないという結果となっていタ転送量が増えるため、全体の性能としてはる。

改善が見られていない。これらの結果から、Xeon Phi の性能が出ていない原因を調べコードの構成をかなり変更する最適化を行わたところ、FDTD コード内で媒質定数に関連なければ、性能向上は難しいということが分した部分が間接参照になっており、この部分かっている。

で SIMD がうまく効いていない状況であった。
媒質定数を全格子点分の要素を持つ配列と変3学際大規模情報基盤共同利用・共同研究拠点 平成 27 年度共同研究 最終報告書 2016 年 5 月

2 Threads
3 Threads
4 Threads
no thread

GFlops100101

3D decomposition TypeA
3D decomposition TypeB
2D decomposition
1D decomposition

10,0001,000
1001050500

number of core

110100
number of core1,000

図 4 SX-ACE 上での MHD コードの性能

図 3 Xeon Phi 上での MHD コードの性能
MHD コードでは、Xeon Phi と SX-ACE を用いて性能評価を行った。MHD の単体 Xeon

100.00Phi 利用では、これまでの研究から、最適な

99.60

ratio of vector [%]GFlops1,000

領域分割法の種類の調査や Flat MPI では性能が出ないことなどが分かっている。京都大学の Xeon Phi システムでは Native 利用で複数ノードを利用できるため。複数ノードを利用し、スレッド数を変化させ性能を調べた。

99.20
98.80

98.00

図 3 に MHD コードで 3 次元領域分割を行い、4 ノード（4 個の Xeon Phi）までを利用した

3D decomposition TypeA
3D decomposition TypeB
2D decomposition
1D decomposition

98.40

220200

number of core

図 5 MHD コードのベクトル化率

結果を示す。ここでは、よく言われるように、プロセスあたりに 4thread を利用した場合が、非常に悪い性能になり、その他ではそこまでも悪くなっていなかった。
図 5 にベクトル化率を図 6 に ADB 利用率を差が出ていない。Flat MPI の性能がこれまで示す。1 次元と 2 次元領域分割でベクトル化の研究と異なり性能が高いが、評価システム率が高いことが分かり、3 次元領域分割ではが異なるため、詳細な理由は分かっていない少し低くなっている。ADB（Assignable Data

が、スレッド利用時の性能が余り出ておらず、Buffer）はコアに付属のバッファメモリであ相対的に差が見えなくなっていると考えられり、キャッシュのような働きをする。SX-ACEる。このため、スレッド性能を上げる最適化

では SX-9 に比べて容量の強化が行われ、4 倍が必要となっている。のサイズ（1MB）になっている。3 次元領域

次に、SX-ACE を利用し MHD コードを実分割 Type B において、ADB の利用率が高い行した際の結果を図 4 に示す。3 種類の領域ことが図 6 からわかり、ADB が性能低下を防分割とキャッシュヒット効率を考慮した 3 次いでいると考えられる。図 7 にスケーラビリ

元領域分割の 4 種類を評価した。これまでのティを示す。2 次元領域分割の性能劣化は複ベクトル機と同様にベクトル長が長い場合の数回計測でも現れているが、原因は不明であ性能が出ており、1 次元領域分割の性能が最る。その他を見てみると、この評価は weakも高かった。一方で、これまで性能が低くなスケーリングであるが、スケーラビリティがっていたキャッシュヒット効率を考慮した場下がっていることが分かる。SX-ACE を利用合（type B）で、それほど性能が他に比べてした場合、ノード単体性能が高い一方で並列
4

学際大規模情報基盤共同利用・共同研究拠点 平成 27 年度共同研究 最終報告書 2016 年 5 月

100%
3D decomposition TypeA
3D decomposition TypeB
2D decomposition
1D decomposition

70.00

90%

Scalability

ratio of ADB usage [%]

80.00

60.00

80%
3D decomposition Type A
3D decomposition Type B
2D decomposition
1D decomposition

70%
50.00

22060%

200number of core

図 6 MHD コードの ADB 利用率

220200

number of core

図 7 MHD コードの並列化性能化性能が良くない結果となっている。
この SX-ACE における MHD コードの性能分割での並列化性能の向上の面からもこの y評価に対して、最適化を行った。最適化を行= z の設定が最適だった。

うべき点は、3 次元領域分割の性能向上と並列次に x 方向のサイズ変化に伴う性能を調べ化性能の向上である。並列度が上がっている

た。図 8 に x 方向のサイズと実行効率の変化

現在では、ベクトル機であっても 1 次元領域を示す。これから分かるように、x 方向のサイ分割は実用上利用しづらい。そこで、1 次元領ズが大きいほど性能が出る傾向がある。これ

域分割で性能が高いという結果から、配列 f(x,は、1 次元領域分割の性能が高い結果と同じ傾y, z)において、x を長くし、y, z を変更し、そ向であり、ベクトル機の特徴と言える。ただれに伴い、y, z の領域分割数を変更した。表 1し、そのサイズが 2 のべき乗の場合、バンクにその結果を載せる。ここでは通信要素数と競合により極端に性能が劣化することが見え実際にかかった時間も計測している。まず、ている。競合を避ける場合、その競合するサy, z ともに極端に小さい場合は余り性能が出イズより −1 した場合に性能が最も出ている。ておらず、100 程度が最適なサイズと考えられここでは最大で 44.7 %の実行効率が得られた。

る。また、この場合が最も通信要素が少なく、また、y, z を 100 から 200 にすることで性能が実際に通信にかかった時間も短い。3 次元領域少し上がることも確認された（実行効率表 1. 計算サイズ、分割数を振った場合の性能測定結果
通信要素数xyz

npex npey npez

600

25400288600

254002416600

50200288600

502002416600 100 100288600 100 1002416600 200

50288600 200

502416600 400

25288600 400

252416z*x

通信処理

x*y

y*z

15,00010,000 240,000

265,000

30,00010,000 120,000

160,000

60,00010,00060,000130,000

120,000

10,00030,000160,000

240,000

10,00015,000265,000

5

Total

[sec]

[%]

GFLOPS/proc(効率:%)

5.54

25.8

24.01(37.5%)

5.42

25.3

24.09(37.6%)

4.93

23.6

24.86(38.8%)

4.88

23.5

24.89(38.9%)

4.05

19.2

24.71(38.6%)

4.14

19.7

24.78(38.7%)

5.12

23.7

23.95(37.4%)

4.95

23.0

24.14(37.7%)

7.2630.421.46(33.5%)

7.1730.021.61(33.8%)

学際大規模情報基盤共同利用・共同研究拠点 平成 27 年度共同研究 最終報告書 2016 年 5 月

5040302010001282563845126407688961024

図 8 x のサイズ（ループ長）を振った場合の性能測定45.2 %）この条件で並列化性能を再度計測してみると、
図 9 のようになった。ここでは、プロセス当たりの計算サイズを(1023, 200, 200)として、1024 プロセスまで測定している。今まで並列化性能が下がっていたが、並列化効率 99.997%を達成することができた。
更なる最適化のため、MHD シミュレーションコードのメインループ解析を行った。コー
ド上では、B/F 値が 3.59 となっているが、ADB

図 9 SX-ACE に最適化した MHD コードの性能を考慮した実際の実行時の B/F 値は 0.53 となっており、実効性能は演算ネックとなっていでの性能評価、最適化を計画している。

た（SX-ACE の B/F 値は 1）。MHD コードのメ

FDTD コードは京都大学 XC30 の Xeon Phi

インループ内では、差分計算に伴う加算と乗を利用し、性能評価を完了している。Xeon

算か多数出てくるが、それらの命令数の差がPhi で有効なスレッド数変化やメモリアクセ大きく、演算バランスが良くない。これによス系のコンパイルオプションの最適化調査

り理論性能がうまく出ていないことがわかり、は行ったが、目立った性能向上は出ていない

冗長演算を共通化することで性能が向上する状況である。問題点がどこにあるのかを調査ことが確認できた。しかしながら、4%程度のし、その問題を解決することが今後の課題と性能向上で有り、この最適化によりコードのなっている。
MHD コードは Xeon Phi での性能評価を保守性が著しく損なわれるため、一般的には薦められない結果となった。

実施し、こちらもスレッド数、コンパイルオプションの調査は行った。こちらのコードで6.

は比較的性能向上が見られている。Xeon Phi

今年度の進捗状況と今後の展望
本年度は、FDTD コードにおいては Xeon

はスレッド数が大きいということを考慮しPhi での性能評価、最適化を研究計画としてた、ループの融合やストリーム数の変更などいる。MHD コードは Xeon Phi と SX-ACE

最適化を加えているが、目立った性能向上は6

学際大規模情報基盤共同利用・共同研究拠点 平成 27 年度共同研究 最終報告書 2016 年 5 月

3.

見えていない。また、SX-ACE での性能評価

K. Fukazawa, R. Egawa, Y. Isobe, and I. Miyoshi,

を行い、東北大学の磯部共同研究部門研究員“Performance Evaluation of MHD Simulationの協力の下最適化を行った。今後は、この最Code on SX-ACE and FX100”, poster in

適化結果に、Xeon Phi において実施した各

HPDC2016, Kyoto, 2016.

種最適化を適用し、Xeon Phi と SX-ACE それぞれで効果的な最適化が、お互いのシステ(4) 国内会議発表

ムでどのような効果を出すか調査する計画

1.

深沢圭一郎、"惑星磁気圏超並列高効率 MHDである（継続課題では採択されていないため、シミュレーションの開発"、名古屋大学 HPC別途実施する予定）。

計算科学連携研究プロジェクトシンポジウム、

また、発表していない今年度の成果がまと名古屋、2015
2.

まり次第、国内外会議での発表などを積極的

K. Fukazawa, Yoshiyuki MORIE, Takeshi
SOGA, Toshiya TAKAMI, and Takeshiに行っていく予定である。
計算機資源は、性能評価と最適化が主な利NANRI, "Performance Evaluation of MHD

用方法のため、前半では利用率が低い資源

Simulation Adopting a Specific Thread for（京都大学）もあったが、最終的には、東北

Halo Region", Workshop on Information

大学、京都大学、九州大学ともに順調に計算Technology,機資源を利用できた。

Education, 津和野, 2015
3.

AppliedMathematics

and深沢圭一郎、森江善之、曽我武史、高見利也、南里豪志、"エクサスケールコンピューティン

7.

グに向けた Halo スレッドの電磁流体シミュ研究成果リスト

レーションに対する効果"、第 151 回 HPC 研(1) 学術論文
1.

Umeda,T.,

andK.

Fukazawa,

A究会、那覇、2015

high-resolution global Vlasov simulation ofa small dielectric body with a weak(5) その他（特許，プレス発表，著書等）

intrinsic magnetic field on the K computer,

特になし。

Earth, Planets and Space, Vol.67, No.1, 49(8pp.), 2015.
(2) 国際会議プロシーディングス
該当プロシーディングス無し。
(3) 国際会議発表
1.

(Invited talk) K. Fukazawa, and R. J.
Walker, "An MHD Simulation of theDynamics of the Kronian Magnetosphere
Driven by Solar Wind Observations", AOGS
12th Annual Meeting, Singapore, 2015.

2. K. Fukazawa, "An MHD Simulation ofGlobal Planetary Magnetosphere Using
K-Computer", AOGS 12th Annual Meeting,Singapore, 2015.
7