（様式 20）成果報告書

TSUBAME 共同利用 令和３年度 学術利用 成果報告書

利用課題名 高性能計算向け分散メモリ・ストレージ統合システムの研究
英文：The Unified System of Distributed Memory and Storages for High Performance Computing
利用課題責任者
緑川 博子
所属
成蹊大学 理工学部
http://www.ci.seikei.ac.jp/midori/

邦文抄録（300 字程度）
本研究では，スパコンをはじめとするクラスタシステムにおいて，複数の計算ノードメモリを一つの共有アドレス空間にマップし大規模共有メモリとして提供し，各ノードコアから制限のない高速アクセスを実現するソフトウエア分散共有メモリ mSMS を構築している．これにより，単一計算ノードで広く用いられる OpenMP, OpenACC や C 言語による大規模配列への記述を，クラスタ上の大規模共有データに対して利用可能とした．本年度は，並列処理未経験である研究者に対し mSMS を提供し，音響流体解析応用 FDTD を実装して高速処理を実現し，複数ノードにまたがる
大規模データに対する複雑な境界条件の設定などが非常に容易であるなどの成果を得た．

英文抄録（100 words 程度）
The mSMS, software-based distributed shared memory system, provides a very large shared memory,which can be accessed from any CPU core on any computing-node in a cluster system without accessiblearea limitations. It realizes a parallel programming environment for shared large data on a cluster
system which is easy to use and similar to the single-node parallel programming environment, such as
C programming with OpenMP and/or OpenACC. The mSMS is used for large-scale acoustic energy
simulations in this paper and shows its effectiveness not only in the processing performance but also
in the program development.

Keywords: software distributed shared memory; partitioned global address space; cluster computing;
背景と目的⚫

クラスタ利用による高性能計算では，現在も MPI が広空間の実現と計算ノード全体に配置された大規模く用いられ，分散メモリモデルによるプログラム開発の低生産性が未だ解決されたとは言えない．これを軽減する

計算ノードメモリの範囲を超える大域共有アドレスデータへの制限のない高速アクセス⚫

ため，PGAS（Partitioned Global Address Space）モデル

クラスタシステムにおける並列プログラム開発の生産性向上のためのプログラミン環境，API の提供と総称される様々な言語・API が提案されてきたが[1]，大域データ配列や大域インデックスを利用可能とするも本年度は，並列処理未経験である研究者に対しのはあるものの，可能なアクセス範囲がノード隣接デー

mSMS を提供し，音響流体解析応用を実装して高速処

タ領域に限らていたり，範囲を超えた大域データアクセ

理を実現し，複数ノードにまたがる大規模データに対す

スには明示的な MPI のような局所的記述が必須であっる複雑な境界条件の設定などが非常に容易であるなどたり，定義できる大域データサイズに制限があり大規模の成果を得た.

計算には利用できないなど，多くの不自由さが存在する[2][3]．
本研究は，スパコンをはじめとする大規模クラスタシス

概要
ソフトウエア分散共有メモリシステム mSMS

テムにおいて，以下を実現する汎用かつ大規模なソフト

mSMS (multithreaded Shared Memory System)

ウエア分散共有メモリシステムを構築し，従来の並列プは，クラスタ上の分散メモリを大規模共有メモリとして利ログラム開発を容易にすることをめざしている[4]．

用可能にするため，各ノードのローカルメモリアドレス空（様式 20）成果報告書
間の他に，どのクラスタノードからもアクセスできる大規能な拡張 C 言語 MpC，（３）pragma 文 SMint に模な共有メモリアドレス空間を構築する．図１に示すようよるプログラミングと，図３に示すように，複数のプログに，各ノードが共有メモリとして提供するメモリは，「オーラミングインターフェースを提供している．

ナーページエリア」として共有メモリアドレス空間上のそれぞれ違うアドレス領域として割り当てられる．プログラ

逐次コード
OpenACC

OpenMP

SMint

ムが遠隔ノードの共有データアドレス領域にアクセスした場合には，ユーザ（プログラム）には見えない形で，GPU並列

マルチコア並列マルチノード＋GPU並列

マルチコア＋GPU並列マルチノード並列

SEGV シグナルで検知し，ページ単位でローカルノードに遠隔ページをフェッチして該当アドレス領域にキャッシュする． 並列プログラムにおける実行バリア同期など

マルチコア＋ノード間並列の際に，共有データの一貫性同期が行われ，各ノードにキャッシュされたページの更新情報は，そのページのホームノードに送られてページに反映される．

マルチノード＋マルチコア＋GPU並列
図 2 インクリメンタルプログラミング
逐次コードに，OpenACC, OpenMP, SMint の並列コメントを加えるだけで自由な組み合わせでプログラムが書ける

図 1 クラスタ上で大域アドレス空間を実現する
ソフトウエア分散メモリ mSMS

図3

SMS における３つの API

C と SMS ライブラリ関数利用から，SMint API まで，好みのレベルの API を利用可能

mSMS では，従来の単一ノードにおける C 言語による並列プログラム記述を，ほぼそのままの形でクラスタ上FDTD (2,4) 法のマルチノード並列処理の大規模共有データに対して利用できるように設計され並列処理の経験がない応用分野（音響解析）の研究ている．クラスタシステムでは， マルチノード，マルチ者と共同で TSUBAME3.0 において mSMS を用いて，音CPU コア，マルチ GPU コアなど，様々な並列方式響エネルギーシミュレーションの並列処理を行った．

が利用可能であるが，複数の API を自由に組み合大規模な音響解析を効率的に行うために，わせて，mSMS では高性能計算に利用できる[4]．

FDTD(2,4) 法等の高次 FDTD 法の有効性が検討され

図２に示すように，単一計算ノードで広く用いられるマている[7]．マルチノード環境でのプログラミングのルチコア向け OpenMP や GPU 向け OpenACC など

生産性を向上させるため，ページベース分散共有メと同等のマルチノード向けの API である SMint も提供

モリシステム mSMS を利用し，図４ のスケルトンしており，逐次コードから容易に好みの API を組み合わコードに示す様に，複数の計算ノード全体にある大せてインクリメンタルにプログラムを作成することもできる．

域データを対象としてグローバルビューでプログラ応用分野の計算特性や利用可能なシステム環境，ミングを行った．mSMS を用いたマルチノード実装でユーザの好みに応じ，（１）標準の C 言語と sms ライは，SIGSEGV シグナルハンドラによるリモートペーブラリ関数による記述，（２）大域共有配列宣言が可ジフェッチ機能による手法の他に，図 5 のスケルト（様式 20）成果報告書
ンコードに示す様なリモートデータプリロード API

遠隔データ再プリフェッチ関数 sms_overload（sms_preload_array 関数）を用いて，計算利用前ローカルノードに実データのないアドレス範囲のに事前に遠隔ノードからデータをプリフェッチするページ（図１のオーナーページ以外の領域）は，当機能もある．これを隣接ノードとの袖領域データ交

初 ， ア ク セ ス 不 可 (NO) に 設 定 さ れ て い る の で ，換に使用し，ノード内の並列化には OpenMP を利用

preload 関数で，遠隔データをアドレス空間に配置することもできる．

する際には，そのアドレス範囲のページをリードラ

FDTD 並列処理の流れイト可能（RW）に設定してからデータを受け取る．

図４では，sms_startup 関数で SMS が起動され各

その後，受け取ったノードで当該ページへの書き込ノードに同一プログラムが並列に実行される．最後みがあったかどうかの有無を記録するためキャッシの sms_shutdown でマルチノード実行が終了となる．

ュページは読み出し専用(RO)に設定し直す．本応用

各ノードでは，大域データを sms_mapalloc で確保しのように遠隔データの袖領域への書き込みがない場た後，全ノードで実行同期 sms_sync を行った後，NT合には，バリアデータ同期（sms_barrier）の際に，時間ステップの計算ループを実行する．計算ループ

キャッシュページは廃棄（すなわちアクセス不可 NO内では明示的な遠隔データのフェッチの記述はないへ設定）される．しかし，ステンシル計算のように，が，SMS システムにより遠隔ノードより袖データが時間ステップ毎に，繰り返し同じデータ領域を遠隔自動的にフェッチされて計算に用いられる．FDTD でノードから繰り返し読み込む場合には，キャッシュあるため，時間ループ内には２つの処理ループが含

ページは NO->RW->RO->NO のようにアクセス設定

まれ，いずれも OpenMP を用いてマルチコアによる並（mprotect システムコール）を繰り返すことになる．

列処理が行われる．各処理ループの終わりに同じ領域に遠隔データを繰り返し読み込む場合（スsms_sync_drop 関数により，実行同期と各ノードにテンシル計算のような処理の場合）には， 最初の遠おけるキャッシュページ廃棄が行われる．

隔データプリフェッチで sms_preload を用いた後，遠隔データ一括プリフェッチ関数 sms_preload実行同期(sms_sync)のみを行いキャッシュページを今回の FDTD や典型的なステンシル計算のように，そのまま（RW）で保持し，2 回目以降の時間ステップ

予め次にアクセスする遠隔データの範囲がわかってでは，すでに存在するキャッシュページにそのままいる応用処理では，プログラムが遠隔データにアク上書きする sms_overload を用いることで高速化がセスしてから SEGV シグナルで検知し，ページ単位に図れる．実際のコードでは，時間ブロッキングアルデータをフェッチするのではなく，予め計算開始前ゴリズムにより，複数時間ステップ（BT）の隣接境（データアクセス前に）に次に使う連続データ領域

界データを一度に preload，overload することで，をアドレスで指定して，指定領域を含む複数ページ遠隔データのフェッチをさらに効率化している．

を一括でプリフェッチできる sms_preload 関数を利用し，さらに高速化できる．事前に遠隔データアク結果および考察セス範囲が既知の場合，ページ毎の SEGV ハンドラがmSMS 利用による FDTD (2,4) 処理の性能評価省き，高速化が図れる．

ここでは，前述のような高速化を測った場合

sms_preload_array 関数は，多次元大域配列の中の(Preload API 利用，ステンシル計算部分のみ) の，矩形の部分配列を指定して preload する関数で，関マルチノード環境における並列性能評価[6]を示す．

数内部で指定部分配列に含まれるページを自動的に性能評価は，TSUBAME3.0（Intel Xeon E5-2680 v4,計算し一括で preload する関数である．図４の２つ

14 core, 2.4GHz × 2 / node, Intel Omni-Pathの配列アップデートの for 文の前に，図５に示すよ

100Gb/s × 4, Intel MPI 2018.1.163）と 九州大

うなデータのプリフェッチを加えると，高速化が図学の ITO Subsystem A（Intel Xeon Gold 6154, 18

れる．

core, 3.0GHz × 2 / node, InfiniBand EDR 4 ×（様式 20）成果報告書
100Gb/s, MVAPICH2-X 2.2）上で実行した．OpenMP ス

間を示す．図 6 のノード１の値はベースライン，すレッド数は両アーキテクチャともに 24 とする．デなわち，各アーキテクチャで mSMS を使用しなかっータメッシュサイズは倍精度で，z 方向に分割してた場合のシングルノードの実行時間を示している．

並列処理する．各ノードの z サイズは 1024 である．

ITO-A および TSUBAME3.0 を用いて求めたベースラ

図 6 は，1 ノードから 32 ノードまでの並列化さイン実行時間に対する 2-32 ノードの実行時間の比れた FDTD(2,4) ソルバーの Weak スケーリングの率は，それぞれ 1.07～1.16 および 1.09～1.30 で実行時間を示している．凡例の’Calculation’，’ある．図に示す様に，mSMS と OpenMP で並列化した

Preload’ 及び’Barrier’ はそれぞれ，計算時間，FDTD(2,4) ソルバーはほぼ理想的なスケーリング結Preload API によるデータ交換時間，バリア同期時果を示している．

図4

mSMS における FDTD (2, 4) 並列スケルトンコード2.5Time (s)2.0

図 5 データプリフェッチ利用時のスケルトンコード

1.5
1.0
0.50.02

図 7 バリア時間

4816
Number of Nodes32

エラーバーは標準偏差0.6Time (s)

0.5
0.4
0.3
0.20.1

図 6 FDTD(2,4)法の SMS によるマルチノード並列処理
weak scaling 性能 sms_preload 利用
1024x1024x1024 格子／ノード，24 スレッド／ノード

0.02

図 8 preload 時間

4816
Number of Nodes32

エラーバーは標準偏差

（様式 20）成果報告書
また，図 7，図 8 はそれぞれ，図６の’Barrier’ 及OpenACC)とも組み合わせることが可能である．これび’Preload’ の平均実行時間を示す (エラーバーらを組み合わせ，スパコンクラスタにおいて高性能処は標準偏差を示す)．図の様に，TSUBAME3.0 におけ理が比較的容易に可能であることを示した．また，る実験では より新しいシステムである ITO-A と比mSMS の提供する大域共有配列に対し，データの較して，比較的長い傾向があり，それぞれノード数所在（計算ノードの内外）を意識せずに，複雑な記述の増加に伴い向上する．また，Preload API によるが可能である点は，並列処理を専門としない応用分

データ交換時間はノード数の増加に伴い飽和する傾野のユーザにとって，大きな利点であることが明らか向にあり，ほぼ理想的な結果を示している．になった．

さらに実応用として PML 吸収境界条件を導入し，今後，応用処理プログラムを作成するユーザが容易ヘルムホルツ共鳴器モデルの解析を行った結果を図に mSMS を利用したプログラム開発ができるように，9 に示す[6]．このようなシミュレーションでは通常，マニュアルやサンプルプログラムなどを整備，提供す複雑な境界条件を記述する．これまでの分散データることが重要と考える．

型の MPI などでは，記述が複雑でミスを生みやすくコストが大きかった．今回，一つの共有大域データに対し境界条件などが容易に記述できる点は，mSMSの大きな利点として指摘された．

図9

FDTD(2,4)法へ Berenger PML 吸収境界条件(実応用に近い条件)を導入した，ヘルムホルツ共鳴器モデルの解析結果(PML 層数: 20, 格子数: 1024^3)

まとめ，今後の課題

2020 年度から，並列処理プログラム開発経験のない音響解析研究者と共同で TSUBAME3.0 においてmSMS を利用しソフトウエアを開発し, 2021 年度，その成果が米国音響学会の論文誌に採択された[5]．
mSMS では，ユーザの経験やシステムの環境に応じた複数のプログラミング API を提供しており，既存の CPU コア，GPU コア並列 API (OpenMP,参考文献
M.D. Wael, et al.: “Partitioned Global Address SpaceLanguages”, Journal of ACM Computing Surveys (CSUR),
Vol.47, No.62, 2015
[2] 阪口裕梧，緑川博子：”グローバルビュープログラミングをサポートする PGAS 言語の記述性と性能の比較”，情処学会, HPC 研究会報告，Vol 2019-HPC-170，
No 41，pp. 1-10, 2019.7[3] Y.Sakaguchi, H.Midorikawa : “Programmability andPerformance of New Global-View Programming API for
Multi-Node and Multi-Core Processing”, IEEE Pacific
Rim Conference on Communications Computers andSignal Processing, 2019.8[4] 緑川博子, 阪口裕悟:"分散共有メモリシステム mSMS
におけるマルチノード・マルチ CPU・マルチ GPU プ
ログラミング", 情報処理学会，研究報告ハイパフォ
ー マ ン ス コ ン ピ ュ ー テ ィ ン グ (HPC), Vol.2021HPC-178,No.24,pp.1-10, 2021.3[5] Ryoya Tabata, Rei Mastuda, Toshiaki Koiwaya, Shoiwagami, Hiroko Midorikawa, Taizo Kobayashi, Kinya
Takahashi: "Three-dimensional numerical analysis ofacoustic energy absorption and generation in an air-jet
instrument based on Howe's energy corollary", The
Journal of the Acoustical Society of America, Vol.149,
No.6, pp.4000-4012, 2021.6[6] Ryoya Tabata, Hiroko Midorikawa, Ki'nya Takahashi:"Performance Evaluation of Acoustic FDTD(2,4) Method
Using Distributed Shared Memory System mSMS", 2020
International Conference on High Performance
Computing in Asia-Pacific Region HPC Asia 2020 , pp.12 , Fukuoka, Japan, Jan. 15-17, 2020. 1[7] Y. Sendo, H.Kudo, T. Kashiwa, and T. Ohtani:
The fdtd(2,4) method for highly accu-rate acoustic
analysis in three-dimensional space. Electronics andCommunications in Japan (Part III: Fundamental
Electronic Science), 86:30 – 37, 11 2003.
[1]