（並列プログラミング言語XcalableMP規格部会）「XMP規格部会の活動報告」

XcalableMPの現状と課題
XcalableMP規格部会
佐藤 三久
理研 AICS & 筑波大学 計算科学研究センター

2016/12/16

第16回PCクラスタシンポジウム

1

並列プログラミング言語XcalableMP規格部会 2016年度中間報告

これまで4回の部会を開催 (5/30、8/19、9/29/、11/07)
 新仕様V2.0に向けた新しい議論
 メニーコア対応のため、動的なタスクモデルの実現検討
 現仕様V1系の詰めのための議論
 書式の改善の提案
第4回XMPワークショップ開催（11/7）
 共催：ポストペタCREST 筑波大 朴チーム
 Invited Talk ２件 (AICSサポート) Sangmin Seo (ANL). User-Level Threads and OpenMP
 Valentin Clément (C2SM, ETH Zurich / MeteoSwiss) CLAW: One code to rule them allXMP講習会を開催
 4/21：FOCUS、12/8: FOCUS （予定）
McKernelと合同で5分程度のビデオを作製中
リファレンス実装（Omni compiler）
 V1系仕様の実装のエンハンス中．最新版は V1.1.0（11/14）
 Fortran2003向け対応を実装中
 C++向け対応を検討中 (LLVM clangベースフロントエンド） FIBER minAppのXMPでの実装

2016/12/16

2

XcalableMP• 分散メモリ環境を対象とした指示文ベースの並列言語• 次世代並列プログラミング言語検討委員会 →当部会において仕様を検討、提案。
• 2つの並列プログラミングモデルをサポート– グローバルビューモデルによる定型的な並列化– ローカルビューモデルによる自由度の高い並列化

2016/12/16

第16回PCクラスタシンポジウム

3XcalableMP as evolutional approach•

We focus on migration from existing codes.
– Directive‐based approach to enable parallelization by adding directives/pragma.
– Also, should be from MPI code. Coarray may replce MPI.

•Learn from the past
– Global View for data‐parallel apps. Japanese community had experience of HPF for
Global‐view model.

•Specification designed by community– Spec WG is organized under the PC Cluster Consortium, Japan•

Design based on PGAS model and Coarray (From CAF)
– PGAS is an emerging programming model for exascale!

•Used as a research vehicle for programming lang/model research.
– XMP 2.0 for multitasking.
– Extension to accelerator (XACC)
2016/12/16
第16回PCクラスタシンポジウム
4関連したプロジェクト
••
•
•
•

E‐scienceプロジェクト検討 (2008)
PC Cluster コンソーシアム XcalableMP 規格部会での議論
日仏 FP3Cプロジェクト
理研計算科学研究機構で、京コンピュータ向けに開発
ポストペタCREST (研究代表者：朴＠筑波大、分担 村井）– XcalableACC (XMP+OpenACC) for accelerated Cluster• SPPEXA (研究代表者：朴＠筑波大、分担 村井）– ドイツ アーヘン大学、 フランス MDLSとのXMPのプログラム
論理検証技術• FS2020 プロジェクト– ポスト京向けにXMP2.0 を検討

2016/12/16

第16回PCクラスタシンポジウム

5XcalableMPの現況• PCクラスタコンソーシアムで規格を議論– 2016/11に現行のVersion 1.2.3仕様を公開。
– Version 1の系統は「収束」した。
• エラッタを除き、検討を終了。

– 次期仕様「XMP2.0」の検討を開始。
• 2016/11公開予定(?)

www.xcalablemp.org• 理研・筑波大で、レファレンス実装– Omni XMP コンパイラ
omni‐compiler.org
2016/12/16

第16回PCクラスタシンポジウム

6Omni XcalableMP

.....
.....

XMPソース

フロントエンド• 理研AICSと筑波大で開発中のXMP処理系– XMP/C– XMP/Fortran

中間表現(XcodeML)

トランスレータ

.....
.....

中間表現
(XcodeML)

Omni XcalableMP• オープンソース• トランスレータ + ランタイム(MPIベース)• OpenACC、XcalableACC対応
2016/12/16

.....
.....

第16回PCクラスタシンポジウム

バックエンド(デコンパイラ)
XMPランタイム
.....
.....

C/Fortran
ソース

MPIライブラリ

ネイティブ
コンパイラ

実行形式

7

XcalableMPプロジェクトのこれからの方向性 （１）• 言語、コンパイラ研究ともに、使ってもらうことが大切• これまでの方針：並列プログラムを容易にする– Global view: 逐次プログラムの並列化を容易にする。
– Local view: PGAS(one‐sided comm)を用いた並列化。MPIよりも理解が用意。（MPIと同等なプログラミングが可能）– Fortran90(95)のサポート• すでにMPIの実装がある場合には、何がメリットか？
2016/12/16

第16回PCクラスタシンポジウム

8XcalableMPプロジェクトのこれからの方向性 （2）• これからの方針 (私案)
– 性能を得るための並列プログラミング– 目標： MPIと同等以上。
• 通信ライブラリとのco‐design• 基本的には、one‐sided commは、light‐weightなはず。
• 現在、MPI3を含め、いろいろな通信ライブラリで性能評価を行っている– マルチコアで性能を得るためのプログラミングモデル• KNLでは、多数のコアが通信しないと性能がでない、場合がある。

2016/12/16

第16回PCクラスタシンポジウム

9“MPI+X” for exascale?
 X is OpenMP!

 “MPI+Open” is now a standard programming forhigh-end systems.

Iʼd like to celebrate that OpenMP became “standard”
in HPC programming Questions:
“MPI+OpenMP” is still a main programming modelfor exa-scale?

10Question What happens when executing code using all coresin manycore processors like this ?

MPI_recv …
#pragma omp parallel forfor ( … ; … ; … ) {… computations …
}
MPI_send …

Data comes into “main shared memory”
Cost for “fork” become large
data must be taken from MainmemoryCost for “barrier” become large
MPI must collect data from eachcore to send

 What are solutions?


MPI+OpenMP runs on divided small “NUMA domains”
rather than all cores?
11

XcalableMP 2.0の設計・実装に向けて• ターゲットはメニコア• XMP2.0=multitasking+PGAS• Multi‐taking機能については、Argobotを用いる予定。

•– Tasklet 指示文– Thread‐to‐thread synchronization/communications rather than barrier利点– マルチスレッド環境下での通信と計算のオーパラップ– 各コアからの通信を行うことにより、メッセー
ジのスループットにより、バンド幅を稼ぐ– コストの高い大域的な同期（バリア）を行わない。
2016/12/16

第16回PCクラスタシンポジウム

From PLASMA/QUARK slides by ICL, U. Teneessee
12並列プログラミング言語XcalableMP規格部会 2017年度活動計画案


体制 （継続）部会長：佐藤 三久（理化学研究所)
副部会長：
岩下 英俊（理化学研究所）、林 康晴（日本電気）
課題 魅力的なプログラミング環境： 使いやすさだけでなく、性能も。
 次世代のメニーコア・演算加速機構に対応した拡張案
 XcalableMP 2.0, XcalableACC …
活動予定
 部会 （3か月に1度の開催）
 議論を継続： メニーコア・演算加速機構、動的なタスクモデルへの対応、C++対応
 これらの機能をV2.0版で議論。
 第5回XMPワークショップの開催
 時期 例年通り、予算50万
 XMP講習会
 魅力ある内容を模索しつつ継続する．
 リファレンス実装
 Fortran2003対応、C++対応の継続
 V2仕様の試作評価など
 ドキュメンテーションが必要 ベンチマーク・データの収集、等

2016/12/16

13