世界のスーパーコンピュータとそれを動かす人々


9月 9, 2016

MPIはまだ、完璧ではない

HPCwire Japan

Daniel Holmes

メッセージ・パッシング・インターフェイス(MPI)は、数十年に渡ってこれまでのHPCを支えてきた通信APIの標準定義である。メッセージ・パッシング・プログラミングは、相互にメッセージを送るプロセスを利用する分散メモリ・ハードウェア・アーキテクチャを表している。1993年から1994年に最初の標準化が行われた際にMPIは、それまでの多くの独自で、システム依存で、そして構文的に異なるメッセージ・パッシング・ライブラリから大きな前進をとげたのだ。

しかし、ソフトウェア・エンジニアリングは、それだけでなくハードウェア、言語、および大衆市場の期待なども含めて1990年代から動き続けている。MPIはまだ適切であるか?何か他に補強したり、更新したりする必要はないのだろうか?

昨年、Jonathan Dursiは「HPCは死に掛けており、MPIが殺している。」と題した人気のブログを書いている。

死に掛けているというより、むしろHPCは拡大し、進化し、そして浸透している。MPIは、新しいHPCを育成する重要な役割を果すことができるし、そうすべきなのだ。

DursiはMPIに関する誤解があるが、また、非常に有効でかる貴重な洞察力を持っている。ブログ投稿後の数ヶ月の間、DursiはMPIフォーラムのアクティブなメンバーであり、Open MPIライブラリのコア開発者でもあるJeff Squyresとやりとりしている。Squyresは様々な点から彼に挑んでおり、彼のMPIの認識についてより詳細な情報を尋ねている。DursiはMPIに関するポジティブ、ネガティブの両方のいくつかのフォローアップのブログを投稿している。(http://www.dursi.ca)

私にとってこれらのやりとりは、MPIの開発におけるより広いコミュニティを取り込む必要性を強調するものであった。私自身がMPIフォーラムのアクティブなメンバーであり、博士論文にC#でのMPI APIの実装を書いたものとして、すでにMPIコミュニティに変換された外部からの視点が必要なのだ。我々はよくMPIより下の(ハードウェアやシステム・ソフトウェア)ものに反応するが、滅多にMPIより上のものにはせず、もっと注意を払い始める必要のあるのだ。これらのブログやオフラインで起こる議論には多くの役に立つ情報がある。コミュティが知って参加すべきである一般的なアピールがあるのだ。この議論は継続する必要がある。

私はMPIが挑戦されて欲しい。特にMPIフォーラムやEuroMPI会議において、MPIがいかに良いかにフォーカスされることが多い。認識されるすべての問題は実はMPIのせいではない。もし皆がMPIの適切な使い方を知っていたなら、かれらは賛美の歌を歌っているだろう。しかし、MPIは実際には完璧ではない。もし完璧なら、何故MPIフォーラムが年に4回も行われるのか?何故20もの機関が代表を送ってくるのか?何を話しているのか?何故まだEuroMPI会議シリーズを必要としているのか?

今年、私はEuroMPI 2016のプログラム委員長であり、少なくとも最後の質問に対する答えを持っておく必要がある。

私は今年の会議のテーマを「HPCにおけるMPIの支配への現代の課題」とし、MPIコミュニティがこれらの課題を特定し、満たすことができるプログラムを作っている。

このブログを通して、Jonathan Dursiが屋根の上に頭を置いていたので、私は基調講演に彼を招待し、早急に行う必要のある議論を開始した。外部からのMPI視点を広げるために、経験豊富な技術ジャーナリストであるNicole Hemsothを招待した。

私はMPIを守るためにBill Gropp基調講演に頼っている。MPIはかつて、今での、そして未来もいつも素晴らしくHPCにとって良いもので必要であるのだ。MPIと呼ばれる前から、MPI標準とMPIライブラリ実装の両方が数十年に渡って知識、経験、思考、そしてイノベーションの富を実現している。それは巨大な害であり、大きな間違いで、捨てるしか無いのだ。

MPIフォーラムでツール・ワーキンググループのチェアを務めるKathryn MohrorとAllineaソフトウェアのCEOであるDavid Lecomberは、MPIの最もユーザオリエンテッドな側面のひとつである開発、デバッグ、最適化を支援するツールのサポートにフォーカスしている。

私がやりたいキーとなる議論は、確立と革新の間でMPIが今どこにあるのか、そして将来のために必要とされることに対する異なる視点だ。

何故GoogleやFacebookはデータセンターで検索にMPIを使わないのか?何故MPIは高頻度取引でMPIが使われないのか?これらは全て高性能通信およびエクストリーム・スケールの問題なのだ。

我々は今年のISCでAI/深層学習/機械学習のコミュニティーがMPIを発見し、それを使って依存し始めていると聞いている。何故こんなに時間が掛かったのだろうか?何故彼らはそれを発見したのだろうか? 90年代からあるのに。これは本当にジョブ用の最適なツールなのか、もしくは最も身近に手に入るものなのか?

MPIがハイエンド・コンピューティングの現在そして将来の課題に対処できるようにするために、我々はこれらの意見を聞く必要があるのだ。

MPIはすでに変化している。毎年、既存機能の最適化が行われている。毎年我々は、APIを少し良くしたり、より理解できるようにしたり、曖昧性を無くすための微調整について話している。しかしMPIフォーラアムもまた3つのさらに大きな新コンセプトについて話をしている: エンドポイント、耐故障性、そしてセッションだ。

MPIエンドポイントは共有メモリノード(MPIの下)内で増加するコアとスレッドに対応するものだが、またMPIと協調(MPIを同じレベルで)する共有メモリ・プログラミングモデルの増加する利用にも対応している。耐故障性は増え続けるシステムスケール(MPIの下)に伴って減少する平均故障間隔時間に対応するものであるが、他の部分は継続できる(MPIの上)という最初の障害においてMPIがシステム全体のダウンを取ることができないという現実に対するものでもある。MPIセッションはMPIの益々複雑なランタイム(MPIの下)との相互作用を管理するものだが、ライブラリ(MPIの上)を使ったモジュール化のような近代的なプログラミング技法に対応するものでもあるのだ。

MPIにおけるこれまでの多くの変更のように、これらの変更はハードウェアとシステムレベルのソフトウェアの増加する複雑性と能力に対応するものである。これらはMPIより下のものへの対応であるが、MPIより上のものを意識してもいるのだ。

今年のEuroMPIでこれらのアイデアが活発に行われ、MPIの過去と未来の接続点になることを願っている。

HPCに関係しているすべての人がこの成果に関心を持って欲しい。

この会議で行われる議論がこれからMPIが進む道に影響することを願っており、誰もがこの中で声を持つことが重要なのだ。

EuroMPIについて

http://www.eurompi2016.ed.ac.uk/

今年で23年目を迎え、EuroMPIはMPIのユーザと開発者のための主導的会議である。この会議の狙いは、メッセージ・パッシング・インタフェース(MPI)に関連する開発とアプリケーションに関与するすべての利害関係者を一同に介することだ。メッセージ・パッシング並列計算の新しい開発とアプリケーションに触れて議論するためのユーザ、開発者および研究者のための秀でた会議として、この定例会議は長く、豊富な伝統を持っている。今年の会議は9月25日から28日まで、UKスコットランドのエジンバラで開催される。

著者について

エジンバラ大学のEPCCにおけるHPC研究のアプリケーション・コンサルタントであるDaniel Holmesの研究は、メッセージ・パッシング・インタフェース(MPI)と他のプログラミング・モデルとシステムとの相互運用性にフォーカスしている。彼の研究には、様々な異なる言語にMPIライブラリを実装し、効率的なメッセージ・パッシングのための新機能を設計・実装し、共有メモリからPGASシステムまでの状況の範囲の中で基本的な並列化戦略を改善することが含まれている。彼はMPIフォーラムのアクティブなメンバーでワーキング・グループと総会の議長を務めている。この研究経歴の前に、Danielは様々な会社と業界でITプロフェッショナルとして12年間の経験を持っている。