「超並列処理研究の動向」
東京大学・工学系研究科・電気工学専攻
田中 英彦
§はじめに
高性能コンピュータは現在、科学技術研究開発の不可欠な道具である。計算機の高速処理能力と大規模記憶能力を生かして、実験を代替したり、設計を行なう重要なツールになっているが、今後ますますその重要性は高まり、新化学物質の設計、構造体の応力解析・破壊解析、地球環境シミュレーション、核融合計算、地震・資源解析、遺伝子解析、大規模経済分析、複雑系シミュレータ等、いわゆるハイテクの殆んどは高性能なコンピュータに依存し、21世紀を担う高度技術を研究開発するためには、如何に高速で大容量のスーパーコンピュータを開発するかにかかっていると言っても過言ではない。そのような大規模処理能力を支えるのは、並列処理である。
特に最近はRISC等の発達により、単一のプロセッサの性能が著しく改善されてきた。従って、これらを要素に並列機を作れば、従来のパイプライン方式に基づくスーパーコンピュータの性能を十分凌駕するものを安価に作ることができる。更に、従来の汎用機を、多くのプロセッサを集めた並列マシンで提供してゆく動きも始まっている。
しかしながら、並列処理は、科学技術計算やトランザクション処理等に限られる特殊分野の技術ではない。人間とコンピュータとの高度なインタフェースを実現したり、広くマルチメディアを実現する重要な基礎技術であり、今後のあらゆる情報処理を支える基盤技術なのである。
この「将来の汎用コンピュータとしての並列処理」という考えのベースは1980年代におけるデータフロー計算機や、第五世代計算機プロジェクトにおける並列推論マシンなどの研究である。これらの研究を通して、並列処理の基礎技術はかなり明らかになってきたが、現在の高度なプロセッサ技術、LSI技術、コンパイラ技術をベースに、これらの基礎を踏まえて新たに将来の並列処理技術体系を作り上げることが必要である。現在、幾つかの高性能な並列コンピュータが商用化されてはいるが、その利用は限定されており、まだまだ本来の能力を発揮しているとは言い難く、並列処理は初期的段階にあるのが現状である。
ここでは、こういう並列処理研究の動向を述べるにあたり、幾つかの大きな動きについて、過去も含めて概観する。
§データフローマシン
並列に物事を進める上での基本は、データフロー原理である。各演算に対する入力データが揃ったところで処理を始めることができる。この原理は、1960年後半のILLIAC
IVの研究やIBM 360/91の開発段階で明かにされ、1970年代の半ば頃、データフロー原理としてまとめられた。その後、70年代の後半から80年代にかけて多くの研究がなされ、Manchester,
MIT, 電総研, などにおいて試作機も作られた。データフロー処理の記述は、本質的に関数型であり、従って、データフロー記述言語は、関数型言語である。
その結果、分かってきたことは、確かにデータフロー原理は有効であり、複雑な処理からも多くの並列性を引き出すことだできるが、二つの問題点があるということである。即ち、データフロー原理をそのままハードウエアで実現しようとすると、かなり高価であること、また、データベースに代表される構造データの扱いをうまくしないと、そのコピーオーバヘッドが大きくなるということであった。従って、研究の方向は、ソフトウエア的にデータフロー原理を実現する方向となっている。
§並列推論マシン
第五世代計算機プロジェクトの中核は、並列論理型言語による汎用情報処理システムの提案である。そのプロトタイプとして、並列推論マシンPIMが1991頃に作られた。並列論理型言語は、本質的にその動作がデータフロー的に進行する。すなわち、多くの処理要求(ゴールと呼んでいる)が並列に存在し、それらはデータの到着を待っており、処理可能となると動き出すのである。並列論理型言語は、関数型言語に近いが、単一化とよぶ双方向性のデータの流れも導入し、データフローとしてはより一般化されたといえる。
このプロジェクトでは、これらのマシンを用いて、幾つかの応用も開発された。これらの研究を通して明かになったことは、通常の問題でもかなりの並列性を包含しているということと、その並列処理を記述する場合、処理の間の同期処理をプログラマに書かせるのではなく、処理系が自動的に処置することによって、誤りの少ないプログラムが可能となるということであった。後者は、現在、実用的な処理で良く用いられているFortranやCに対する強い批判となっている。すなわち、定型的な、または、単純な並列処理の場合はともかくも、複雑な処理をこの種の言語そのままで対処しようとすると、大きな問題が発生することを予感させた。
一方、開発されたマシンそのものの絶対性能を見ると、最近の著しいRISCプロセッサの性能向上と比較して見劣りがすることも確かである。しかし、システムの原理を研究する上でこの種の研究開発は大きな意義を持っている。並列論理型言語とCとを比較して、同じ処理を実行する上での能率の差、同じ処理を実行する上でハードウエア支援の効く程度差、などを詳しく調べ、本質的な差異を議論する必要がある。準備段階の評価では、並列論理型言語のオーバヘッドは、Cに比べて2倍程度であるが、機械命令コードの量が1/3程度で済み、クロックで正規化した速度も2-3倍速いという結果も得られている。
§データ並列処理
異なるデータに同じ処理を施すデータ並列処理は、従来の逐次型プログラミングをそのまま並列処理に適用可能な点で、親和性があり、また、非常に高い並列性を容易に得ることができる。また、この種の応用も、データベース検索を始めとして多く存在する。従って、この形態での計算機応用や、これに向いた計算機ハードウエアの開発が行なわれてきた。この代表的なものがCM-2で、新聞記事等、原文書データを意味的に検索することはその代表的な応用である。
データ並列処理では、動いているプログラム間に於ける通信が必要ないので、そのハードウエア作成に対する要求は緩く、製作が比較的容易であるため、プロセッサ数が数万を越える超並列マシンを作成することも可能である。
§特殊計算機
並列性を利用する実用的な他の例は、応用目的を限った特殊計算機である。最近の例を上げれば、電波天文学に対するFXシステム、重力場に於ける多対問題を解くGrapeシステム、LSIの論理設計の検証のための論理シミュレータHAL、航空宇宙研究所の数値風洞用システムNWT、指紋相関機等が上げられる。
これらのシステムの特徴は、応用問題を絞り込み、それを分析して、処理の流れを明確にし、その流れに沿ったハードウエアを構成して、その上でソフトウエアを作成している点にある。即ち、処理の動きが前もって既知であり、独立した処理可能な部分を並列なハードウエアで実現している。従って、設計時に実行的な並列度が予測できる。そのため、オペレーティングシステムが単純であり、コンパイラも単純になる。
例えば、FXでは、複数のアンテナで受けた宇宙からの電波を、それぞれ別のフィルターを通し、その結果をFFT処理して、その出力の組合せの相関処理を並列に行なっている。従って、処理は単純であるが、その効果は絶大で、システムクロックが3MHzながら、等価的に500GFLOPSを実現している。また、
Grape システムでは、重力計算を単純に並列処理しているのであるが、多くのパイプラインを集めること(1920本)によって、合計1.2TFLOPSという大規模な性能を得ている。
数値風洞NWTは、特に流体計算に特化した構造を有している訳ではなく、従来型のパイプライン型計算機を数多く並べ(140台) それらをクロスバで結合したものであるが、ローカルな相互通信が殆んどを占める計算には適合しており、問題によっては100GFLOPS以上の実行性能を得ている。
§プロジェクト
超並列処理のプロジェクトは、現在幾つか動いている。米国の High Performance Computing and Communication
Project(今は、 NIIに組み込まれている)、わが国のRWCプロジェクト、文部省の超並列重点領域研究プロジェクト、計算物理学専用の計算機開発プロジェクトなどがある。
RWCプロジェクトは、言うまでもなく、今後重要になる柔かい情報処理を実現することを目的としているが、その処理が載るベースマシンとして位置付けられているのがその中のアーキテクチャ研究で、その第一号機が現在研究開発中のプロトタイプマシンRWC-1である。即ち、実世界のデータや入力を直接扱う為には、超並列のマシンが必要であり、また、実時間処理や細粒度処理に向いた計算機である必要があるという要求分析のもと、研究開発が行なわれている。しかし、この要求は、超並列を可能にするポイントでもあり、そういう意味からは、超並列計算機研究のキー技術を開発するプロジェクトでもある。
超並列重点領域研究は、1992年から始められ、超並列計算機の基本技術を開発することを目的に、大学研究者のグループによって研究が進められ、1996年3月に終了予定である。その中心は、Jump-1と呼ばれる超並列計算機システムを研究開発することであり、512プロセッサのプロトタイプハードウエアの上に、超並列に向いたオペレーティングシステムCOSが載り、その上に言語Cを超並列向きに拡張した言語NCXが実現され、それを用いた幾つかの応用が走る形を取る。
計算物理学用計算機のプロジェクトは、筑波大学に置かれた計算物理学研究センターを中心に研究開発が行なわれているものである。 CP-PACSと呼ばれるが、1024
台のPseudo Vector Processorを用い、300GFLOPSを目標に開発が行なわれている。1996年3月にはハードウエアが揃い、1996年秋から本格的な利用を目指している。
§商用並列機
1980年代は、商用の小規模な並列マシンが作られ、主として研究用として用いられた。1980年代の後期になると、Thinking Machines
社の マシンが出され、データ並列の応用に威力を発揮した。 1990年代に入ると、幾つかの大規模で且つピーク性能の高い超並列マシンが出され始めた。CM-5、
Cray のT3D、IBMのSP2、IntelのParagon XP/S、KSRの KSR-2、ConvexのSPP Exempler、nCubeのnCube3、富士通のVPP500、日電のCenju-3、日立のSR2201等である。これらのマシンは、いずれもFortranやCをベースにした科学技術計算用のマシンで、本格的な超並列マシンの走りである。未だ、この分野の市場は大きくなく、プログラミングツールや言語処理系も完成しているとは言い難い。
§おわりに
以上、大規模な超並列マシンの動向を、主に研究動向に絞って概観した。単体のプロセッサ性能がかなり大きくなり、超並列マシンを作ることによって、総合性能が、従来のベクトル型スーパーコンピュータを桁違いに凌駕することが容易になってきた。しかし、今だ、そのマシンの性能を引き出すに十分な処理系、オペレーティングシステム、プログラミングツールが揃っている訳ではなく、今後とも着実な研究が必要である。
超並列マシンの研究は、今後の高度な科学技術開発の重要な道具を作る研究でもあり、その成果の他に対する影響は大変大きい。今後、ハードウエアとして様々なものが出現することが予想されるが、それらを用いて様々な応用で使いこなし、応用パッケージや利用ノウハウとして蓄積し、その経験を通して、高性能であるとともに非常に使い易い、真の情報環境が作り上げられることを期待したい。並列処理は正にその基礎技術なのである。
そういう意味で、RWCの研究目的たる柔軟な処理は並列処理の宝庫であり、あり余る計算パワーを用いて、真に人間にとって使い易い情報処理を実現する未来指向の研究である。この研究が進展して、その有用性が明かになり、その結果として多くの並列コードが蓄積され、新しい情報処理の世界を開くことを期待したい。
|