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


8月 19, 2013

HPCのための数学はどこへ?

HPCwire Japan

我々がHPCにおける進歩を考える際の判断基準として、Top500のリストで報告されるように、ほとんどはハードウェアの速度に注目する。しかし、それですべてであろうか。それは最も重要な構成要素なのだろうか? HPCのためのハードウェアと付随するシステム・ソフトウェアおよびツール群は、確かに進歩のために必要である。しかし、HPCを利用して実際の問題を解くためには、ソルバーとアプリケーションのアルゴリズムに使われる正しい数学が必要である。ハードウェアが直接目に見えるのに対して、数学は心を通して見えるのであろうか。最近、HPCのための数学についての議論が少ない。どこへ行ってしまったのだろう?不可視性といっていいほど成熟したのだろうか、それとも、今でもHPCの力強くてダイナミックな要素であるのだろうか?一緒に考えてみよう。

「魅力がないが極めて重要」

HPCの初期から、数学は明らかに不可欠な要素と見なされてきた。1982年12月に、Laxレポートとも呼ばれる「the Report of the Panel on Large Scale Computing in Sciense and Engineering」が公開された。そのレポートが推奨する項目のひとつは、“emphasis mine(強調の宝庫)“と呼ばれる。

効果的で効率的なスーパーコンピューターシステムの利用のためには、計算数学、ソフトウェア、アルゴリズムの研究の増加が必要である。20年後の2003年7月に、エネルギー省(DOE)のサイエンスオフィスは、「A Sciense-Based Case for Large-Scale Simulation」を公表した。これはSCaLeSレポート第一巻および第二巻として知られている。その中で、とりわけソルバーが極めて重要であると言及している(emphasis mine)。

自動車のボンネットの下に隠れているエンジンのように、ソルバーは魅力的ではないが科学用コードにおいて極めて重要な構成要素である。そこでは、全体の機能が極めてソルバーに依存している。自動車の性能を上げる際に、エンジンが性能を満たしてオーバーヒートと故障を防ぐ必要があるように、新しい物理学で計算負荷が重くなったり、解像度を上げるためにデータ構造間の距離が増加するように、シミュレーションにはふさわしいソルバーが必要である。

ソルバーと高速化

HPC用ハードウェアの性能向上が議論される際に、ムーアの法則が続いて欲しいと期待される。ムーアの法則に従うハードウェアの高速化と同じ歴史をたどるアルゴリズムの高速化についてはあまり知られていない。例えばSCaLesレポートの次の抜粋を考慮してみよう。

適切な数学的ツールの選択は、シミュレーションコードの成否を握っている。例えば、シミュレーションの歴史の過去40年間ほどに渡って、科学の広い範囲の問題の中で電荷分散による静電ポテンシャルを計算するアルゴリズムだけが、100万倍以上の高速化をもたらした。このアルゴリズムの高速化による改善は、同じ期間におけるムーアの法則によるハードウェアの高速化と同程度である(図13)。

20130819-F1-Figure_13

図13上: n*n*n個の均一な立方格子上の静電ポテンシャル方程式を解くために必要な、記憶容量のスケールと計算量のスケール

図13下: n=64の問題について、同じ30年間における、ムーアの法則によるハードウェアの高速化と、アルゴリズムの高速化の比較

大規模な問題について、ハードウェアの高速化よりも、アルゴリズムの高速化がより重要になってきた。もし適合法(adaptivity)が離散化に利用されるならば、この問題に適するより多くの高速化を組み合わせて、アルゴリズムはより高速になるだろう。

問題を解くための時間

ハードウェアの高速化とアルゴリズムの高速化が「乗算で効く」ならば、それは何を意味するだろうか?我々がこれからの10年間でハードウェアを1000倍高速化しようという目標を持っているならば、そしてアルゴリズムも同様に高速化されるのならば、10年間で100万倍の能力を持つことになる。そして、10年間で、同じ問題を100万分の1の時間で解くことも、同じ時間で100万倍難しい問題を解くこともできるようになる。これはかなり印象的に聞こえるだろう。そのために必要な数学は順調であろうか?

明らかに問題は単純ではない。ハードウェアアーキテクチュアとアルゴリズムが乗算で効くためには、互いに独立である必要がある。しかし、現実のHPCにおいて、アルゴリズムとハードウェアアーキテクチュアは相互作用する。高速なアルゴリズムは大抵「複雑(complicated)」であり、複雑なアルゴリズムは「単純な(simple)」で複雑でないアーキテクチュアの上に実装されるのがベストである。歴史的にみて、新しくより複雑なハードウェアアーキテクチュアが紹介されると、逆にソルバーはより単純で遅くなっている。したがって、計算時間を改善する楽観的な推測は実現しないかもしれない。実際、問題を解くための時間が増加することも考えられる。より単純なソルバーは多くの算術演算を必要とし、より速いアーキテクチュアは多くの演算を処理できるので、この問題は一般的なコミュニティーに注目されずにすんだ。そのためこの状況においてはアプリケーションコードは「高速に」(訳注:高いフロップス値で)動作するが、計算に要する時間は増大する。

エクサスケールHPCハードウェアを目指すにつれて、アルゴリズムとハードウェアアーキテクチュアの相互作用はこれまでより重要になっている。昨年、DOEのAdvanced Scienstific Computing Research (ASCR)オフィスは「A Report on the Workshop on Extreme-Scale Solovers」のレポートを公開した。その中で将来のアーキテクチュアへの移行において、以下の予想がある(emphasis mine)。

最大規模の科学は、5年間で100倍の計算能力の増加が必要であり、10年間で1000倍の増加を必要としている。100ペタフロップス(またはそれ以上)のスーパーコンピューターは、科学的発見の方法を変える。さらに、それらのシステムのために開発される技術は、数年前に最も速かったシステムの性能をデスクトップPCによって実現可能にするだろう。これらの発見を可能とする数値解法ソルバーはコードの中心なので、効率的で、安定で(robust)、高性能で、移植性が良いソルバーの開発は、新しい科学を成し遂げるためのスーパーコンピューター利用に相当な影響を及ぼす。しかし将来のアーキテクチュアは、そのようなソルバーの研究開発にとって大きな挑戦的課題を提示している。アーキテクチュアにおける挑戦的課題とは、とてつもない並列度、データの配置と移動、弾性(resiliende)、そして、ヘテロジニアス性である。

ソルバーの優位性

最大規模のソルバーは、ソルバー優位(訳注:プログラム実行時間の多くの割合をソルバーの実行時間が占めること)の問題に対処し続ける。

このようなソルバーが、科学的アプリケーションの基礎となっている計算の多くの部分を処理するので、数値解析ソルバーの効率を上げることは計算科学者の科学的発見の能力を向上させる。

20130819-F1-Pic_2

最大スケールのソルバーを使った結果から得られた数値を図示する。プロセッサー数と問題の規模が増大するにつれて、典型的アプリケーションにおいては、ソルバーの所要時間割合(図の青色部分)が増加して支配的要素になり、アプリケーションの残りの部分の所要時間割合(図の赤色の部分)が減少する。

特にエクサスケールアーキテクチュアへの移行を予想して、これから何を言えるだろうか?

エクサ数学

答えを見つけるためにASCRは、「エクサスケールコンピューティングの潜在的可能性を実現する科学アプリケーションのための数学とアルゴリズムの研究を特定する」ためのExascale Mathematics Workshop Group (EMWG)を組織した。

ASCRの要請でEMWGは、DOE Workshop on Applied Mathmatics Research for Exascale Computing (ExaMath13) を開催する。ExaMath13は8月21日から22日に開催され、2、3カ月前にEMWGへ提出された2ページのポジションペーパーに基づいて選ばれた40のプレゼンテーションが行われる。発表者の約2/3はDOE研究所であり、残りは大学である。40のプレゼンテーションを選ぶために提出された75のポジションペーパーはEMWGウェブサイトで閲覧できる。これらは面白い読み物で、エクサスケールアーキテクチュアへの挑戦的課題に応用数学コミュニティーが関与することについて肯定的な意見である。

ExaMathの問題自体が複雑なように、ほとんどのポジションペーパーが複雑な数学に対処していることは驚くべきでない。しかし、いくつかはより大きい構想を考えている。それはユーリッヒ・ルード氏のペーパーの題名が象徴的である。「New Mathmatics for Exascale Computational Sciense?」このペーパーは応用数学コミュニティーが直面する挑戦を特によくまとめている。

既存の数学理論とHPCシステムの実用との間に存在する性能の溝がますます広がることに、エクサスケールの出現が数学に注目するように強いていると私は信じている。コードを細かくチューニングすれば充分ではないか。いや、我々は一旦戻ってどこを充分に考えていなかった検討し、新しい学際的なパフォーマンスエンジニアリングの方法論を開発する必要がある。この溝を超えることによって、格子の解像度を上げるだけではなく、基礎研究の新しい可能性をエクサスケールが開いていく。

そこで、HPCのための数学は舞台に戻ったように見える。応用数学コミュニティーには、多くの聡明な人がいる。ExaMathがもたらす困難に対して、彼らがどのように追いつくか見ていこう。