GRAPE
GRAPE(グレープ)は、東京大学総合文化研究科に所属していた杉本大一郎、戎崎俊一、牧野淳一郎、伊藤智義、泰地真弘人らによって開発された重力多体問題専用計算機である。GRAPE ではN体シミュレーションの計算量の大部分を占める重力相互作用の計算を専用のパイプラインを組み込んだハードウェアで高速に処理する。GRAPE の名前は GRAvity PiPE の略称に由来する。
GRAPE の目的は、球状星団や銀河、銀河団といった多数の恒星からなる天体の時間進化や動力学を数値的にシミュレーションすることであった。このような天体には、球状星団で約104-5個、銀河では約1010-12個という膨大な個数の恒星が含まれている。恒星の間に働く万有引力は到達距離の典型的スケールを持たない逆2乗力であるため、このような重力多体系の数値シミュレーションを行なうには個々の星の間に働く重力を全て計算する必要がある。一般に、N個の粒子からなる多体系では任意の2粒子の組み合わせの個数は N2 に比例するため、多体系の数値計算では粒子の位置から粒子間相互作用を求める計算が計算量全体の大部分を占める。そのため、GRAPE が開発された1980年代終わりには当時の最高速のスーパーコンピュータでも N=1000 体程度以上の計算を実用的な計算時間で行なうのは困難だった。
そこで GRAPE は、O(N2) の計算量を要する粒子間相互作用の部分のみを専用ハードウェアを用いて計算することで多体問題の計算速度を飛躍的に加速させる、という発想に基づいて開発された。
一般に、重力多体系の時間発展の計算は以下のようなステップで行なわれる。
粒子 i が粒子 j から受ける重力 \mathbf{F}_{ij} を計算する。
\mathbf{F}_{ij} を j について積算し、粒子 i が受ける重力の総和 \mathbf{F}_{i} を求める。
\mathbf{F}_{i} を運動方程式に代入して、粒子 i の加速度 \mathbf{a}_{i} を求める。
\mathbf{a}_{i} を用いて時間積分を行い、粒子 i の位置 \mathbf{r}_{i} と 速度 \mathbf{v}_{i} を更新する。
以上を全粒子について繰り返す。
以上を時間ステップごとに繰り返す。
GRAPE はこの計算ステップのうち最も計算量の多いステップ 1と2 の計算のみを行ない、これ以外の計算は GRAPE が接続された汎用的なワークステーションなどが行なう。
GRAPE の基本的なアーキテクチャは単純である。粒子 i と粒子 j の位置ベクトル \mathbf{r}_{i}, \mathbf{r}_{j} と質量 m_i, m_j を入力として与え、ニュートンの万有引力の法則:
\mathbf{F}_{ij} = - G \frac{m_i m_j}〔\mathbf{r}_i - \mathbf{r}_j|^3} (\mathbf{r}_i - \mathbf{r}_j)
から粒子間に働く重力 \mathbf{F}_{ij} を求めて出力する。この際、重力の計算を逐次的に行なわず、方程式に含まれる位置座標同士の減算、2乗、加算といった各演算を行なう演算器を直列に並べてパイプラインを組み、パイプラインの最終段で最終結果 \mathbf{F}_{ij} が出力されるようになっているのが GRAPE の本質的特徴である。万有引力の計算には約30ステップの演算が必要なので逐次処理では結果を得るのに約30クロックを要するが、GRAPE では1クロックごとに重力が計算されて次々と得られることになる。実際にはパイプラインを複数並列化することで計算をさらに加速している。
専用設計のパイプラインハードウェアにより多体計算を力任せに行なうというアイデアは1984年に日本の国立天文台の近田義広によって最初に提唱された。近田は1980年代に電波望遠鏡を用いた開口合成観測のデータ解析用計算機として同様のアイデアに基づくデジタル分光計 を開発し、100GOPS の演算速度を達成していた。
近田のアイデアを聞いた東京大学教養学部宇宙地球科学教室の杉本大一郎が中心となって重力多体問題専用計算機の開発が始まり、1989年9月に最初の GRAPE-1 が完成した。GRAPE-1 はユニバーサル基板上に各演算器の IC や ROM を配置しワイヤラッピングで結線した試作機で開発費用は約20万円だった。GRAPE-1 では簡略化のためにデータ幅を8ビットとし、全ての演算を ROM のテーブル参照で済ませるようにした。銀河など、二体緩和時間が宇宙年齢より長いような無衝突系のシミュレーションは8ビットの精度でも十分に可能なため、GRAPE-1 は試作機でありながら実際の天文学の研究にも役に立つ性能を有していた。その理論性能は 240MFLOPS 相当で、実効性能でも1万体の計算で約160MFLOPS に達した。
1990年5月には汎用の計算機と同様の単精度32ビット及び倍精度64ビットの計算が可能な GRAPE-2 が完成した。理論性能は約40MFLOPSだった。これ以降、GRAPE シリーズでは型番が奇数の機種が精度を限定したタイプ、偶数の機種が高精度計算に用いられるタイプとして開発されている。
1991年の GRAPE-3 では重力計算パイプライン回路が専用 LSI 化され、理論性能は約15GFLOPSに達した。
1993年には GRAPE-2 の後継となる高精度型計算機の HARP-1 が開発された。HARP は Hermite AcceleratoR Pipe の略称で、多体問題の時間積分法にエルミート積分法(エルミート補間多項式を用いた予測子・修正子法)を用いることを想定し、粒子の加速度だけでなく加速度の時間微分 (\dot{a}) もハードウェアで計算するものである。これによって球状星団や銀河中心核といった緩和時間の短い衝突系の問題を高速に解くことができるようになった。
1995年には HARP-1 の後継となる GRAPE-4 が完成した。GRAPE-4 では重力計算パイプラインだけでなく時間積分の予測子の計算も専用 LSI でハードウェア化されている。最大構成では約 1.08 TFLOPS の理論計算性能に達し、実用的科学技術計算でテラフロップス (TFLOPS) を超えた世界最初の計算機となった。GRAPE-4 は1995年、1996年のゴードン・ベル賞を受賞した。
1998年には GRAPE-3 の後継機である GRAPE-5 が完成した。GRAPE-5 ではクロック周波数が 80MHz まで高速化された。GRAPE-5 は宇宙論的構造形成の計算で 1MFLOPS 当たり $7 という価格性能比を達成し、1999年のゴードン・ベル賞価格性能比部門賞を受賞した。
2002年には GRAPE-4 の後継機である GRAPE-6 が完成した。GRAPE-6 は最大構成の GRAPE-4 とほぼ同等の性能を持つプロセッサボード64枚から構成され、ボード4枚ごとに Linux で稼動するホスト PC(パーソナルコンピュータ)が付き、PC 間はギガビット・イーサネットで接続されていた。理論性能は 64TFLOPS に達した。GRAPE-6 は開発中の2000年、2001年にゴードン・ベル賞を受賞し、2002年には最大構成で実効計算性能 29.5TFLOPS を達成してゴードン・ベル賞ファイナリストに選出された。2003年には 33.4TFLOPS で三たびゴードン・ベル賞を受賞した。
2006年には GRAPE-7 が完成した。GRAPE-7 は PROGRAPE と GRAPE-5 の流れをくむ機種であり、内部回路を書き換え可能な FPGA を1 - 7個搭載している(構成による)。現在のところ内部回路としては GRAPE-5 と同等のパイプラインが完成しており、最大構成モデルにこのパイプラインを実装した場合の動作は理論性能 364GFLOPS 相当まで確認されている。2006年に宇宙論的構造形成の計算で 1GFLOPS 当たり $105 という価格性能比を達成し、同年のゴードン・ベル賞価格性能比部門ファイナリストに選出された。
2006年11月、GRAPE-DR(Greatly Reduced Array of Processor Element with Data Reduction)の開発成功に関して報道発表を行った。GRAPE-DRは汎用性を持ち、様々なプログラムを実行できる。
2010年6月、GRAPE-DRは、省エネ志向のスパコンとして電力当たりの演算性能の高さが評価され、「Little Green500 List」で世界一位とされた。
2011年現在、国立天文台と高エネルギー加速器研究機構の共同研究で、ストラクチャードASICを用いて四倍精度浮動小数点計算が行えるプロセッサGRAPE-MPの開発、実装を進めている。ファインマンループ積分、重力多体系の計算が動作しており、四倍精度計算で約1200MFLOPSの理論性能を有する。さらに、六倍精度浮動小数点計算が行えるGRAPE-MP6の開発も進めている
2012年3月、東京工業大学と一橋大学の研究グループがGRAPE-8を発表。ASICとFPGAの中間的なストラクチャードASICを使用し、コストを抑えることに成功した。またボード単体で20.9Gflops/W、システム全体で6.5Gflops/Wの高い電力性能比を達成した。
2013年12月、GRAPE-7の後継機として開発されたGRAPE-9が発表された。内部回路を書き換え可能な FPGA を8個もしくは16個搭載している。
2012年までに開発された GRAPE シリーズの一覧は以下の通りである。
GRAPE プロジェクトをきっかけとして、専用パイプラインによる計算の高速化という GRAPE の基本概念を継承した様々な専用計算機が開発されている。
GRAPE アーキテクチャの応用例の中でも重要なものは、GRAPE のハードウェアを分子動力学 (MD) に応用した計算機である。水中の蛋白質の MD シミュレーションでは蛋白質分子を構成する各原子や媒質となる水分子の水素・酸素原子の間に働く分子間力・クーロン力などの相互作用を大量に計算する必要がある。MD で扱うこの種の相互作用は全て万有引力と同様の中心力であるため、GRAPE のパイプラインを修正することで MD の計算にも応用が可能となる。
このようにして1992年に、GRAPE-2 を MD にも使えるように改良した GRAPE-2A が開発された。GRAPE-2A は 180MFLOPS の理論性能を持っていた。1995年にはこの後継として回路を ASIC 化した MD-GRAPE が作られた。その後は東京大学から理化学研究所に移った戎崎俊一を中心とするグループで改良が行なわれ、2002年には理論性能 75TFLOPS の MDM が開発された。
GRAPE-2A/MD-GRAPE の系譜を引く分子動力学用計算機の一覧は以下の通りである。
1993年には周期的境界条件の下での重力・クーロン力多体問題の計算を行なう専用計算機 WINE (Wave space INtegrator for Ewald method) が開発された。WINE は周期境界条件の下での中心力の厳密解を求めるエヴァルト法のアルゴリズムを専用パイプラインで実装したものである。WINE は MD や宇宙の大規模構造のシミュレーションなど、周期境界条件を用いる多体問題に活用された。また理化学研究所 (理研)の MDM ではシステムの一部として WINE の回路を1チップに集積した WINE-2 チップを周期境界の計算に用いている。
1990年代後半になると回路を再構成できる FPGA のゲート数の多い製品が安価に入手できるようになり、ASIC として実装していた GRAPE のパイプラインを FPGA 上に実装できるようになった。そこで1998年に GRAPE-3 相当の回路を FPGA で実現した PROGRAPE-1 (PROgrammable GRAPE) が開発された。PROGRAPE-1 は 16MHz で動作し、理論性能は 0.96 GFLOPS だった。PROGRAPE では FPGA を使用しているため、解くべき問題に応じてパイプラインを自由に再構成でき、幅広い問題に利用できる利点を持つ。2006年現在、PROGRAPE シリーズの最新機種は理化学研究所(理研)で開発されている PROGRAPE-4 で、理論性能は 243.2GFLOPS に達している。
GRAPE は理論天文学の内、多体問題における様々な分野のシミュレーションに用いられることとなり、多くの科学的成果をもたらしてきた。また、専用機として開発してきたため、GRAPE は汎用のスーパーコンピュータに対して常に 1/10 から 1/100 の開発予算で同程度またはそれ以上の計算性能を達成することが出来た。設計資料に基づく、GRAPE ボードの多くは企業によって量産化され、日本国内だけでなく世界各国の天文学の研究室に販売されている。GRAPE で行なわれているシミュレーションの例としては以下のような問題が挙げられる。
銀河の衝突・合体
ジャイアント・インパクトに伴う月の形成
惑星の環の構造・進化
ハードウェアとしての開発は、MDGRAPE-4Aで終了となった。現在のHPCは、GPU(グラフィックス・プロセッサ)と商用CPU(例:インテルiCore、AMD Ryzen、ARM Coretex)の大規模クラスタシステムとして構成されることが多い。
ソフトウェアチューニングの結果として、十分に高性能なライブラリが開発されてきており、100万個を超すニーズが無い限りにおいてASICを開発しなければならない用途は限られている。そのため、科学計算分野では、通常のHPCを用いて計算する用途が増大しており、それが故に 富岳などの開発が行われた。