【前へ】

3.6.2 高性能計算(機)雑感

横川 三津夫委員

 高性能計算機を、「高い処理能力をもつ計算機」と定義することはあいまいである。処理を行うべき対象を明確にしなければ、高性能計算機が具備すべき要件について議論することはできないし、処理能力の程度についても議論できない。私は「高性能計算機」という言葉に、「大規模科学技術計算のための」、あるいは最近では「計算科学のための」高速計算機をイメージするのであるが、通常は“高い処理能力”=“理論最大性能が高い”という図式で解釈されることが多いと思う。
 電子計算機(この名前自体が古めかしいが)は、その開発当初まさしく計算のみを行う機械であった。しかし、その汎用の処理能力によって様々な情報を加工できる万能の機械となってしまったところに、高性能計算機(ハイエンドコンピュータ、或いはスーパーコンピュータ)の悲劇があるように思える。すなわち、「パソコンの能力を高くしたもの」、「誰もが使いこなせるもの」などと、特に努力せずともその能力を手に入れられるものと考えられてしまっているのではないだろうか。
 本稿では、大規模科学技術計算のための高性能計算、あるいは高性能計算機についていろいろな観点から考えてみることにする。

1.ベクトル計算機
 
2001年3月1日付け朝刊に掲載された見出しはまさに衝撃的であった。「NECスパコン、対立の米大手に供給へ」(読売)、「NECクレイ社と提携」(朝日)、「NEC“昨日の敵”と和解」(日経)など主要な新聞はもとより、インターネットの主要ニュースサイトにおいてもこの情報は大きく取り上げられた。そもそもこの報道の発端は、1996年5月に米国大気研究センタNCAR(National Center for Atmospheric Research)がNEC製スパコンを選定したことにある。この選定結果に関し、米国クレイ社が1996年7月、米国商務省に対しダンピング提訴を行った結果、日本製スパコンに高率の課税がなされ事実上米国市場から締め出されたのであった。そのクレイ社が、NEC製スパコンを自社ブランドで販売する提携を発表したのである。この合意はダンピング課税の撤回が条件とされているが、この動きは米国市場で有利であったスカラ並列型計算機がその実効性能において予想以上に対ピーク性能比が悪く、高度な解析を必要とする(ベクトル計算機を必要とする)研究者、技術者の要求を満たすことが出来なかったと言って良いのではないだろうか。
 事実、ホワイトハウス科学技術政策オフィス(OSTP: Office of Science and Technology Policy)の環境部門が発足させた「気候モデリングに関する臨時作業部会」は、USGCRP(United States Global Change Research Program)に対する報告書の中で、高性能計算に関して以下のように指摘している[1]。

●米国の研究者が利用できない日本製共有メモリ型ベクトル計算機は、米国の研究者が利用できる計算機能力をはるかに越える使い勝手と高性能を有している。

●      米国製の並列計算機(普通は分散メモリ型であるが)は使いにくく、加えて気候科学分野のアルゴリズムに対してこの種の計算機で高性能を達成する事は本質的に限界である。

●      米国以外の国に導入された日本製コンピュータにより、少なくとも3〜5年間にわたって、米国の科学者の計算能力が大幅に劣ることは確実である。

●      米国のソフトウェア開発への投資が不十分である。

●      コモディティプロセッサを用いた分散メモリ型並列計算機の利用を推進している米国の政策は、ソフトウェアへの投資額を増大させる。

 米国クレイ社CEOのロットソルク氏は、米国市場においてスカラ型並列計算機が主流になったことについて、「ダンピング提訴とクレイのSGI傘下入りが同時期に重なったため、ねじれ現象が起きてしまっていた。」と述べている[2]。この発言の妥当性はともかく、高性能計算(大規模科学技術計算)の分野において、ベクトル型を必要としている分野が厳然として存在していると言える。これは、マイクロプロセッサを用いたスカラ型並列計算機だけの開発に投資した米国のスパコン政策が曲がり角に来ていると言って良い。

2.コストパフォーマンス
 
コモディティプロセッサを用いたスカラ型並列計算機が優位であると主張する者は、よく高性能計算機の価格(本稿では「基本コスト」と呼ぶことにする)に対するピーク性能比(コストパフォーマンス)の優位性を根拠に議論する。しかし、基本コストとピーク性能に基づくコストパフォーマンスの議論だけでは、一般にコストパフォーマンスが悪いと言われているベクトル型計算機を、応用分野のユーザが依然として手に入れたいと思っていることについて説明できない。応用分野のユーザは、各自の応用ソフトウェアの実効性能と実効コストを用いた真のコストパフォーマンスの議論をしたいのである。ここで、実効コストとは、基本コストに並列計算機上での応用ソフトウェア開発の経費を加えたコストとする。すなわち、スカラ型並列計算機上での応用ソフトウェアの開発及びチューニングは労力がかかるが実効性能があがらず、結局実効コストに基づくコストパフォーマンスが悪いことに気がついたと考えることが出来る。もちろん、ベクトル型の計算機であっても単体プロセッサだけでは既にそのピーク性能が限界に近く、実効性能を高くするためには並列構成を取らなければならないので、並列化した応用ソフトウェアの開発は必要である。しかし、スカラ型並列計算機と同等の実効性能をベクトル型並列計算機で得ようとする場合には少ないプロセッサ数(並列性)で実現できるので、当面数万〜数10万のプロセッサを結合した“超”並列計算機のような高い並列性を考慮しながら応用ソフトウェア開発を行う必要はない。
 より一般的には、高性能計算機の実効コストは、計算機シミュレーションを用いる作業全体の必要経費(本稿では「総コスト」と呼ぶことにする)の中で考えるべきであり、たとえ基本コストがある程度高くても、それを用いた計算機シミュレーションにより開発に必要な期間の短縮や経費削減が得られれば、総コストが節約できるかもしれない。
 例えば、製品開発における計算機シミュレーションの直接的メリットは、製品の実質的コストの削減である。今、コストパフォーマンスを考える時に、計算機シミュレーションを行わず、実験等で製品開発する場合のコストを100としてみよう。計算機シミュレーションを用いた場合に、計算機本体に必要な価格を含めた計算機シミュレーション全体のコストが30、そのため実験等のコストが50に減少したとすれば、同じ製品を開発するのに実質的に20のコスト削減が得られたことになる。このような観点でコストを評価するならば、高性能計算機の基本コストは総コストの中に埋もれて見えなくなり、基本コストは問題にならない。
 また、災害などの人命に関わり、緊急を要する計算機シミュレーションには、短TAT(ターンアラウンドタイム)が要求され、そのために高性能計算機が必要であるが、このような状況下ではもはや基本コストに基づくコストパフォーマンスの議論は意味をなさない。

3.計算機科学者と計算科学者とのギャップ
 
計算機そのもの、あるいはその上でのソフトウェア(ここでは基本ソフトウェアと呼ぶことにする)を研究対象にしている研究者と、計算機シミュレーションの結果が重要で計算機は道具であるとしか考えない応用分野の研究者との間には、計算機に向かう姿勢に大きなギャップがある。例えば、前者は計算機あるいは基本ソフトウェアが完成すれば研究或いは開発目標が達成されるので、実効コストを用いたコストパフォーマンスの議論をすることがなく、したがって基本コストとピーク性能比によるコストパフォーマンスの議論の中から抜け出すことが出来ない。一方、後者は成果を得ることを目的としているので、応用ソフトウェア開発にかかる実効コストと実効性能によるコストパフォーマンスの議論が重要であり、基本コストとピーク性能比によるコストパフォーマンスの議論は意味をなさない。
 また、応用ソフトウェア開発環境に必要なツール開発に関する考え方も、前者と後者では異なっている。前者は、計算機そのもの、あるいは基本ソフトウェアそのものを研究する時に、その利用方法をモデル化してそれに適したツールを開発している。モデル化に基づくツールの開発は科学の方法論としても妥当であろう。しかし、実際の計算機シミュレーションをする応用ソフトウェアの研究者にとっては、使い勝手や処理時間の観点から実用に耐えないツールは意味がなく、すなわちツール開発の最終過程では、実際の現場環境でその実用性評価を行うべきである。大規模科学技術計算においては、

●          通常、計算結果の出力が多く、また長時間実行した後にエラーが起きることが多いので、実時間トレースによってデバッグ機能はあまり役に立たない、

●数千の並列プロセスのデバッグに、十数個の並列プロセスで評価したデバッグツールが役に立つとは思えない、

●          分散されて得られる大量の出力結果からデバッグにつながる情報をどう取り出すかは応用ソフトウェアの研究者の深い洞察によることが多く、単純なパターンマッチング等の定型的な作業では行えない、

 などの応用ソフトウェアの開発環境ツールが現実の作業と遊離していると指摘できる。実際に応用分野の研究者が数万行、数十万行に及ぶ独立したメッセージを見ていく良い方法は考えられず、一昔前の方法のようにプログラムの適当な場所へデバッグ出力を挿入し、出力されたデータを紙の上で丁寧に追っていくしか方法がないのかもしれない。計算機シミュレーション結果の画像処理は役に立つかもしれないが、それは大まかなバグ部分の絞込みであって本質的な解決にはならないと思う。 
 近年、ソフトウェアの重要性が認識され、高性能計算を支える基盤ソフトウェアに多大な投資をしている。しかし、これらのツールは現実の大規模科学技術計算(計算機シミュレーション)に本当に役に立つのか考えてみるのも重要でないだろうか?

4.高性能計算機の開発資金
 
原子力委員会ITER計画懇談会の「研究の資源配分と国際協力の責任分担に関する検討報告書」という興味深い資料がある[3]。報告書の目的を考慮すれば内容を若干差し引いて読む必要があると思うが、政府負担資源の使途について「国策遂行のための研究・開発に優先度がある」と述べられている。さらに、資源配分すべきカテゴリとして以下のものがあげられている。

@国民全体という見地からの広義の安全保障
A国家という規模で行われる国際的機能
Bより下位組織の自発選択では困難な、しかし学問上必要と認められる研究・開発の支援
C先導的産業技術の開発支援
D国民(の一部)の要求への対応

 高性能計算機の開発はどのカテゴリに属するであろうか。過去、国策として計算機産業育成に重点をおいた時期があるが、もはや高性能計算機の開発を先導的産業技術に分類させることには無理があるように思われる。したがって、計算機シミュレーションを広義の安全保障を確保するために用いる手段と考え、そのために必要な高性能計算機を開発するとの説明が妥当である。
 ペタフロップスマシン技術に関する調査研究Uの中で、私は「高性能計算機は、パソコンのように誰でも容易に使えるような大衆のツールではなく、大規模な実験装置とみなすべきである」との提言をした[4]。しかも、この実験装置は特殊なものであり、十分な開発費がなければ成り立たない。これを用いて多方面の問題に対し計算機シミュレーションを行い広義の安全保障に貢献することができるならば、高性能計算機開発の資金を負担する意義は大きい。多くの人にその意義を理解してもらうためにも、計算科学によって得られた結果に基づく有効性について声高に説明する必要があるし、それが継続的に高性能計算機を開発できる環境につながるものと考えられる。
 ここで、重要なことは高性能計算機アーキテクチャのオプションを複数持つことである。スカラ型並列計算機もベクトル型並列計算機のどちらも重要である。米国のように一つのオプションに片寄ってしまえば、他のオプションを開発する技術は離散、衰退してしまい、再度その技術を復活させる事は容易ではない。

5.おわりに
 
先に挙げた原子力委員会ITER計画懇談会の報告書では、「米国の『戦略』に全て付き合う必要はない、という視点は重要である」とも述べられている。高性能計算機について(もちろん他の分野についても)、米国の研究開発動向が気になるところではあるが、「米国でペタフロップスマシンと云えば、日本でもペタフロップスマシン」という風にことさら騒ぎ立てる必要もない。高性能計算機の開発は国家レベルで行うべき研究開発の施策であり、諸外国の研究・開発を参考にしつつも、それに振り回されることなく我が国独自の方針をもって進めるべきである。

参考文献
[1]     “High-End Climate Science: Development of Modeling and Related Computing Capabilities,”USRGCP, Subcomittee on Global Change Research, December (2000).

[2]     日経産業新聞,平成13年3月19日朝刊

[3]     http://www-atm.jst.go.jp/jicst/NC/iter01/siryo/siry12/siryo2.htm

[4]     ペタフロップスマシン技術に関する調査研究U,先端情報技術研究所,平成10年.

【次へ】