提 供
HPCの歩み50年(第35回)-1991年(b)-
並列処理が普及するためには並列プログラミングの標準化が必要である。このころ、HPFとMPIが並行して標準化と実装を始めていた。主要なコンピュータベンダが消滅しつつあったヨーロッパでは、システム開発はあきらめて、アプリの開発に力を集中しようなどという議論がなされていた。日米スパコン貿易摩擦を背景に、スーパーコンピュータ性能評価に関する日米ワークショップが企画され、どういうわけか筆者も巻き込まれた。
標準化の動き
1) Fortran 90
FORTRAN 77 (1978)を抜本的に改定したFortran 90(90から先頭以外は小文字で書く)は、1991年にISO規格、1992年にANSI規格、1994年1月1日にJIS規格として制定された。「これはFORTRANではない」「Fortranの衣を着たadaだ」という人もいるほど変貌した。77までは、データ構造もプログラム構造も静的であったが、90ではポインタや動的領域確保や再帰手続きなどが導入された。ベクトルがオブジェクトとして演算の対象になった、などいろいろ。あまりに欲張った仕様なので、初期にはコンパイラがよいコードを出力せず、77風に書いた方が速い、というようなことがあった。HPFが普及しなかった原因の一つに、Fortran 90をベースにしたので、そのコンパイラが未成熟であったことが指摘される。
2) HPF
ベクトルコンピュータが成功した要因の一つは、高機能のベクトル化コンパイラである。タチのよいプログラムは、ほとんど手を加えなくてもすぐ数倍の速さで走った。20~30倍の高速化には種々のチューニングが必要であったが、それでも苦労は報いられた。並列処理の自動化、とくにデータ並列を自動並列化しようという試みとしては、Rice大学のFortran D、Wien大学のVienna Fortran、Parallel Computing ForumのPCF-Fortranなどがある。特定のハードウェア専用の処理系としては、CM-FortranやDAP-Fortranなどがある。これらのバラバラの状況を統一しようという機運が盛り上がったのはSC 91のBoFであり、あっと言う間にHPF Forumが作られた。まとめ役は Ken Kennedy(Rice University)。それから1年間に7回ものミーティング(各3日程度)やサブグループ会合を開いて精力的にHPFの企画原案をまとめた。このForumには、大学や国立研の主要な研究者のみならず、並列計算機を製造している主要な企業、並列コンパイラを目指している主要なソフトウェア会社などが結集していた。
出発点としたのはRice大学のFortran Dであったが、ベース言語をFORTRAN 77にするかFortran 90にするか議論があった。上にも述べたように、膨大な仕様のFortran 90を完全にサポートするコンパイラがまだない状態でこれをベースとすることには反対があったが、結局Fortran 90をベースとした。
これに呼応して、1992年9月には村岡洋一(早稲田大学)が日本の研究者に呼びかけ、HPFについて勉強して、日本からも意見を出すための勉強会を始めた(後述)。
3) MPI
ほぼ同じ頃、MPIの動きも起こった。これまで並列計算機ごとに異なるインタフェースが用いられており、また種々の共通インタフェースの提案があり、標準化は急務であった。PVMはその一つの方向性を示していたが、白紙から規格を作ろうとしたようである。従来のハードに依存したインタフェースとしては、インテルのNX/2(iPSC/2のOS)、nCUBEのVertex (nCUBEのカーネル)などがあり、共通のインタフェースの提案としては、PVMの他、Express (Parasoft Corporation, 1988)、 p4 (Argonne National Laboratory)、PARMACS (ANL)、Zipcode (LLNL)、Chimp (Edinburgh)、Chameleon (ANL)、PICL (ORNL)、Linda (Yale U.)などがあった。その後登場したシステム依存インタフェースとしては、Intel ParagonのためのNX、TMC CM-5のためのCMMD、IBM SP1のためのEUIなどがある。
1991年夏に、少人数がオーストリアの山岳リゾートに集まって議論したのがMPI活動の始まりとされている。SC 91での活動は記録されていないが、たぶん、SC 91でも非公式に議論がなされたのではないかと想像する。正式の議論は、バージニア州Williamsburgで1992年4月29~30日に開かれた”Workshop on Standards for Message Passing in Distributed Memory Environment”から始まった。そこで、標準的なインタフェースの基本構想を議論し、標準化のための作業グループを決めた。中心人物は、Jack Dongarra, Rolf Hempel, Tony Hey, David W. Walkerなどである。MPI1原案は、1992年11月に公表され、1994年6月にMPI 1.0の最終版が公表された。
筆者は何となく、MPIが制定され、それではデータ分割や通信の記述が面倒くさいとHPFの構想が起こったような気がしていたが、両者はほぼ同時に始まったのである。
4) PVM
3月、Tennessee大学で、PVM v.2が公開された。
5) linux
この頃、Linus Torvaldsらはlinuxカーネルの開発を始め、公開した。
性能評価
1) LINPACK HPC
Dongarraらは、コンピュータの性能向上に伴い、任意サイズの線形方程式をGauss消去法で解くことにより性能評価を行うことを提案し、HPC (Highly Parallel Computing)と呼んだ。プログラミングやチューニング、並列化などは自由である。1993年、これを用いてTop500が始まる。
2) EuroBen
オランダUtrechtのSARA (Academic Computer Centre Utrecht)のvan der Steenを中心にEuroBen Groupを構成し、ベンチマークセットを提案している。A. J. van der Steen, The benchmark of the EuroBen group, Parallel Computing 17 (December, 1991) pp. 1211-1221が最初の文献と思われる。
ヨーロッパの動き
1) Rubbia Report
1989年からCERNの所長を務めている物理学者のCarlo Rubbia(1984年ノーベル物理学賞受賞)を中心として、ヨーロッパのスーパーコンピュータ産業をいかに育成するかというワーキンググループがEuropean Commissionの下で組織され、その報告書が1991年1月に公表された。内容は、「ECは、アメリカや日本に追いつくためには、もっとHPCに投資すべきである。しかし、システムを作ることは無理なので、アプリケーション開発で世界の先頭に立て。」というような内容であった。1991年末に友人のJaap Hollenberg(オランダ)から、かれのやっているSupercomputer European Watchというニュースレターにコメントを求められた。筆者は、「ヨーロッパはかつてコンピュータで先駆的であった。システム開発を諦めると、コンピュータがブラックボックスになってしまい、アプリの開発にも差し支えるのではないか」というようなコメントを書いた。
2) European Teraflop Intiative
European Tereflop Initiativeと呼ばれる作業部会が、1993年までに1 TFlopsのコンピュータをヨーロッパに設置するべきであると結論していることを、Electornics Weeklyの2月27日号が伝えている。前記のRubbia Reportを歓迎しているが、ヨーロッパのメーカは積極的に動きそうもないので、この作業部会は1 TFlopsの実験機を開発しようということのようである。1989年に吸収されたInmos社の新しいtransputer H1(T9000の開発コード)が1991年4月15日に発表されると期待されていたが、結局出なかった。このイニシアチブではCM-2とCM-5を比較したり、i860などのチップを調査したりしていたようである。もちろん、Teraflopsは1993年までに世界のどこにも実現しなかった。
ソビエトで開発されたElbrus2 |
3) ソ連のスーパーコンピュータ
ソ連は1991年末に崩壊するが、そのころのソ連内のコンピュータ事情とくにHPC事情はどうなっていたのか。Supercomputing Reviewの1991年2月号から紹介する。もちろん多くは秘密のベールに包まれている。Intelのi860やtransputerはCOCOMの禁止品目であったが、裏ルートでかなり入っていたようである。1988年から52台のElbrusコンピュータ(5 MFlops、メモリ80 MB)が製造されており、IBM 360のクローンも作られているそうである。MC68030とi860を用いたEpsilon RS-860ワークステーションが量産されていた。また、CrayにならったMKPという1000 MIPSの“スーパーコンピュータ”が計画されており、純ソ連製の素子を用いて作られ、ロシア版のUnixやソ連製のソフトで走るとのことである。ソ連の崩壊とその後の混乱期にどうなったのであろうか。
インド
1) PARAM-8000
インド政府のC-DAC (Centre for Development of Advanced Computing、1988年設立)は、Transputer T800を用いたPARAM 8000コンピュータを発表した。
Japan-US Workshop for Performance Evaluation
日米スパコン貿易摩擦においてアメリカ側の不満の一つが性能評価であった。特にCray Research社は、ピーク性能では日本機に劣るかも知れないが、応用プログラムを(“as is”で)計れば、日本製より高性能だと主張していた。1988年4月11日号の日経産業新聞によれば、日本クレイは、「スーパーコンの性能はあくまでも理論値にすぎない。スーパーコン用にソフトを手直しする程度によっては、Y-MPの方が国産機よりも実効性能で勝る」と日本勢の“優位”がいわばカタログ上のものであることを強調している、とのことである。
日本では、1990年から日本応用数理学会「高性能計算機評価技術」研究部会において、HPCにおける性能評価について2年間にわたって研究を続けていた。
1991年4月に電総研の島田俊夫がワシントンで米国エネルギー省の高官と日米科学技術協定に基づいてスーパーコンピュータ性能評価技術に関する条項の合意を交わしてきた。その上で、日本機械工業連合会からの補助を得て、日米双方で性能評価についてどのような視点を持っているかを議論するワークショップを持つことになった。政治的な背景はあるが、研究者同士で自由にアカデミックな議論をしようということである。
会場はハワイのカウアイ島Sheraton Princeville Hotel、日程は、8/11成田発、8/12-14会議、8/14はワイキキでホテル泊、8/16成田着。高級リゾートホテルで、滞在は快適であった。筆者やGary Johnsonを含め、何人かは夫人同伴。筆者はオアフ島以外のハワイは初めてであった。
日本側参加者は島田俊夫(電総研)、小柳義夫(東大)、横川三津夫(原研)、関口智嗣(電総研)、Raul Mendez (ISR)、アメリカ側参加者は、Gary Johnson (DOE)、John Barton (NASA Ames)、John Gustafson (Ames Lab.)、Jim Hack (NCAR)、Gary Montry (Southwest Software)、David Schneider (Center for Supercomputing Research and Development)であった(所属は当時)。島田とJohnsonが共同座長。アメリカ側はハワイの日米文化比較の専門家を通訳として同行し、議論(もちろん英語)が混乱すると、彼が間に入って日本語で解説をしてくれた。
このときも、参加者のJohn Gustafson (Ames Lab.)が、1986年7月にFPS本社で案内してくれたGustafsonだと気づかなかった。10月になってFPS破産間近とのニュースを聞いて気づき、彼に「あの時のGustafsonじゃないの?」とメールを送った。「その通り、あれは私だった。お互いに分からなかったね。」という返事が来た。
議論の大筋は、アメリカ側が実際に動かす応用のフルプログラムで性能を評価すべきだ、という意見なのに対し、日本側は、それではアーキテクチャやコンパイラの問題点を見いだすのは難しいから、複数のカーネルを使って要素毎の分析すべきである、という方向であった。もちろん、どちらとも重要なことはわかっていたが、重点の違いを強調した。この会議は、その後1994年にはハワイ島のコナで、1995年に別府で(国際ワークショップPERMEANとして)、2003年には再びコナで開催した。
8/14の午後には、ヘリコプター2台に分乗して、カウアイ島の空中観光を楽しんだ。
企業の話は次回。TMCが華々しくCM-5を発表したが、筆者は行く末を危ぶんだ。ConvexはGaAsを用いたベクトルコンピュータC3を登場させたが、時代は高性能な汎用プロセッサに移りつつあった。