HPCの利益を統合
Gary Johnson

数十年間も継続するHPCの驚異的な進歩にもかかわらず、その効果と受容に制限を加える幾つかの課題が残っている。 顕著な事柄としてHPCアプリケーションの再現性、輸送性およびオープン性がある。エクサスケールレベルへHPCを進めるためには、時間を掛けて、HPCの利益を統合し、これら計算科学の黎明期から残る問題に対処するための努力をするべきである。その結果として、我々はより強力なHPCツールの利益を獲得することができだろう。
HPCツール
およそ50年前の1964年に、最初にスーパーコンピュータとして一般的に認知されたコンピュータ – CDC 6600 – -が発表された。 当時、LinpackベンチマークやTop500のリストは無かったが、その後計測を行い、およそ500 Kiloflopsのパフォーマンスレベルを維持することができるものであった。
1970年にインターネットの元祖であるARPAnetが登場。数年後の1973年にEthernetが発明された。 1985年にNSFnetが創設され、1990年代初めには、インターネットに変身。1990年にWorld Wide Web(WWW)が生まれ、1993年にMosaicウェブブラウザのリリースによって視覚的に見れるようになった。 また1993年に、Top500のリストが発表され、その時のトップコンピュータは、60Gigaflops弱を計測したThinking Machines社のCM-5だった 。
要約すると、HPCは少なくとも半世紀の間存在し、HPCツールの面で、我々は約20年間、有能なスーパーコンピュータやネットワークを持っていた。
HPCアプリケーション
計算科学の概念は遅くとも1989年に、後に我々の友人であり同僚であるケン・ウィルソンの書いた計算科学への壮大な挑戦として知られる論文(残念ながら、それはロックされてしまい有料公開となった)が発表された時に公共の場に明るみに出た。 その時からHPCツールとHPCアプリケーションにおける計算科学のコンセプトの両方が、数十年前から現代の形に近い何かに固まっていった。
もともと、計算科学はかなり懐疑的に思われていた。 それは科学の本質ではなく、綺麗な絵を作り出すだけの単なる曲芸の集まりのように見なされていた。理論と実験と同等になるために必要な厳格さを欠いていると見られていた。 計算科学の結果は、しばしば証明されていない概念の一度限りのデモとして批判された。
どのように効果的かつ説得力のをもって、HPCを我々は使用してきたのだろうか?
再現性、輸送性、オープン性
理論と実験の両方がいくつかの重要な属性を共有:
再現性(再計算性)
一度得られた結果は、任意に何度も繰り返し、同じ仮定(理論用の)または条件(実験用の)を与えることができる。
輸送性(再利用)
結果は、特定の理論家、実験者または特定の器具に依存しない。 これらは他の人や場所に、どんな場合でも移送可能である。
オープン性
結果はオープンである。 理論家は理論とそれに対応する証明(可能な場合)または推測を発表する。 実験者は、実験の条件と機器と手順の詳細を説明する。これらのステップは、再現性と輸送性を可能にすることによって、結果の信憑性のために行われる。
科学としてのHPCアプリケーションは、これらの属性を共有する必要もある – 計算科学の初期の批判に反証する手段として、そして効果的かつ説得力があることとして。
現状
HPCアプリケーションの「近代」への20年、我々はどうだろうか? 明らかに、我々のアプリケーションはより大きくより複雑になってきている。 アルゴリズムとハードウェアの両方の速度の向上を通じ、アプリケーションはより速く実行している。 科学コードのための確証と実証(V&V)そして不確実的定量性(UQ)の概念は根付いてきた。 - しかし、おそらくまだ一般的なHPCの実践においては完全に花開いていない。
しかし、我々の分野の地位を固めるための多くのHPC有志の称賛に値する努力にもかかわらず、再現性、輸送性、そしてオープン性の重要な問題が残っている。 ここではいくつか最近の進展がある:
再現性(再計算性)
セントアンドリュース大学のコンピュータサイエンスの教授、イアン・ゲントは、最近、再計算マニフェストと呼ばれるものを発表した。 それは、ソフトウェア・サステナビリティ研究所での彼の投稿の中に記述されている 。 マニフェストは、6点(強調は私)含まれている:
1. 計算機実験は、すべての時間について再計算可能で無くてはならない。
2. 再計算可能な実験の再計算は、非常に簡単であるべき
3.実験を再計算可能にすることがより簡単でなければならない。
4. ツールとリポジトリは再計算を標準にすることを支援することができる
5. 再計算性を確保するための唯一の方法は、仮想マシンを用意することである
6. 実行時の性能は、二の次の問題だ
マニフェストは、ゲントの見解に基づいている:
現状のコンピュータサイエンスにおける実験再現性の現状は嘆かわしい。結果は必然である:実験結果は単に間違って文献に掲載される。結果が一般化しないことを意味するものではない。何かすると主張されるアルゴリズムが、それをやらないということだ。:例えば、もしオリジナルの実装にバグがあり、事実、異なるアルゴリズムであった場合。私はこの問題が一般的でないかと疑い、事実、それが起こったことを知っている。これは私自身の研究分野からの一例であり、私の友人であり模倣の執拗な追跡者であるパトリック・プロッサーによって発見された。
マニフェストの全文は、arXiv上で公開されている 。 ゲント教授の懸念はしっかりしており、HPCアプリケーションを含むコンピュータサイエンスを超えて進展すると言えば十分である。
輸送性(再利用)
韓国と米国からの調査グループは、最近、グローバル大気モデルのソフトウェアシステム依存性の評価と題する論文を発表している。要約は、次のように読み取れる:
この研究は、異なるハードウェアおよびソフトウェアを搭載したマシン上におけるグローバル大気数値モデルのシミュレーション結果の依存性を示している。 グローバル/地域統合モデルシステム(GRIMs)のグローバルモデルプログラム(GMP)は、異なる中央演算処理装置(CPU)のアーキテクチャやコンパイラを持つ10種類のコンピュータシステム上でテストされている。 結果の違いは、異なるコンパイラ、並列ライブラリ、および最適化レベルによって発生し、異なるソフトウェアシステムによる丸め誤差の対処が主な原因である。 地球全体で500 hPaのジオポテンシャル高度で平均化した標準偏差であるシステム依存性は時間とともに増加した。 しかし、値自体は相対標準偏差の変化であり、その微小な傾向は、時間とともにほぼゼロのまま残っている。 季節予測フレームワークでは、ソフトウェアシステムの違いを起因とするアンサンブル・スプレッドは、従来のアンサンブル予測をするために使用される初期条件の違いを起因としたアンサンブル・スプレッドに匹敵する。
全文は、アメリカ気象学会の有料サイトにある 。 私の抽象的な解釈に基づけば、輸送性(または再利用)は、このHPCアプリケーションにとって小さな問題ではないということである。 私の考えでは、切り離された事例ではないと思われる。
オープン性
9名の天体物理学者のグループが、最近、arXiv(http://arxiv.org)に天体物理学におけるソースコードの共有の実際と題する論文を発表した。 その中で、彼らは次のように記している:
ソフトウェアとアルゴリズムは天文学においてますます重要になっているが、計算天文学の研究を公開する著者の大半は開発したソースコードを共有することが無く、それを複製し再利用することは困難だ。 この論文では、天体物理学コミュニティ全体にとって科学的なソースコードを共有することの重要性を議論し、論文が公開された時に学会誌は作成者が彼らのコードが公に利用できるようにする必要があることを提案している。それは、ソースコードが公に利用可能になる場合を除き、コンピュータプログラムを使った論文が受け入れられないことを提起している 。編集者、編集委員会および査読者によりそのような方針を採用することは、科学的な結果を複製する能力を向上させ、そして、また、それらのデータを適用したいと願う他の研究者にとって、計算天文学の手法がより活用できるようになる。
だから、オープン性もまた明らかにHPCアプリケーションの問題として残っている。
さらに注意すべきことは、それらは公的に利用可能であるべき単にコードとその関連するパラメータの問題ではない。それらを報告する科学的な出版物であるということだ。方向性を維持すると、この記事中の次の2つの論文が有料サイトの後ろにあることを気に留める必要がある - ケン・ウィルソンの計算科学への壮大な挑戦に関する影響力の大きな論文(24年後!)と、残りのひとつはグローバル大気モデルに関するものだ(明白な公共政策含意にも拘らず)。 良い知らせは、arXivのような場所が存在し、ここで述べた他の出版物は公開していないことだ。
HPCの利益を統合
HPCは、長い道のりを歩んできた。 我々のツールは大幅に改善されている。例えば、今日の最速マシン、中国のTianhe-2は34Petaflops弱を計測されている。大まかに話をすると、HPCの性能は、過去20年間で約60万倍に向上している(そして過去50年間で680億倍)。 現在の計画では、次の10年の始まりまでに地上にエクサスケール・コンピュータが出現する。
HPCツールの急速な改善と、産業界における採用の拡大は、HPCアプリケーションに多くの圧力をかけている – また、HPC企業全体を支援する財源においても圧力がかかっている。確かに、HPCアプリケーションは比例して成長し、より複雑でかつ包括的な物理現象を含むようになってきた。 しかし、ほぼ間違いなく、殆どのペタスケール・アプリケーションは、依然として計算科学の初期の頃の古い「英雄モード」で行われている。 殆どの専門家はテラスケールで計算し – ペタスケールではない - バーがエクサスケールに上昇する前に、限られた資源だけがキャッチアップするのを支援するために利用可能となっている。
そして、我々がエクサスケールHPCツールに向かって作業している間に、これまで作ったHPCアプリケーションの利益を統合する必要がある – そうすればエクサスケールに追い付き、それを十分に活用する準備ができるようになる。 もし財源が不十分であったとしても、これが最優先でなければならない。
より多くのHPCアプリケーション – そして人々 – をペタスケールレベルまで持ち上げることに加えて、我々は、上記で論議した再現性、輸送性、オープン性の長引く問題に対処しなくてはならない。もし、3つの内の1つを取ることを強いられれば、オープン性がおそらくキーになる。
もし、関連するソースコードを公開し、公表した場合、再現性と輸送性は解決できる問題であるだろう。 オープンな公開のための場所は既に存在し、いくつかのコミュニティによって使用されている。オープン性のこの部分を完結させるには、出版物を有料サイトの背後に配置するようなことは認めてはならない。 科学的な作品(おそらく公的資金によって資金提供された)が有料サイトの背後にいることに良い理由はない。 一旦その弾丸が噛まれたならば、ソースコードは必然的に後に従わなくてはならないのだ。