GRAPE

GRAPE（グレープ）は、東京大学総合文化研究科に所属していた杉本大一郎、戎崎俊一、牧野淳一郎、伊藤智義、泰地真弘人らによって開発された重力多体問題専用計算機である。GRAPE ではN体シミュレーションの計算量の大部分を占める重力相互作用の計算を専用のパイプラインを組み込んだハードウェアで高速に処理する。GRAPE の名前は GRAvity PiPE の略称に由来する。
目的.
GRAPE の目的は、球状星団や銀河、銀河団といった多数の恒星からなる天体の時間進化や動力学を数値的にシミュレーションすることであった。このような天体には、球状星団で約104-5個、銀河では約1010-12個という膨大な個数の恒星が含まれている。恒星の間に働く万有引力は到達距離の典型的スケールを持たない逆2乗力であるため、このような重力多体系の数値シミュレーションを行なうには個々の星の間に働く重力を全て計算する必要がある。一般に、N個の粒子からなる多体系では任意の2粒子の組み合わせの個数は N2 に比例するため、多体系の数値計算では粒子の位置から粒子間相互作用を求める計算が計算量全体の大部分を占める。そのため、GRAPE が開発された1980年代終わりには当時の最高速のスーパーコンピュータでも N=1000 体程度以上の計算を実用的な計算時間で行なうのは困難だった。
そこで GRAPE は、"O"(N2) の計算量を要する粒子間相互作用の部分のみを専用ハードウェアを用いて計算することで多体問題の計算速度を飛躍的に加速させる、という発想に基づいて開発された。
アーキテクチャ.
一般に、重力多体系の時間発展の計算は以下のようなステップで行なわれる。
GRAPE はこの計算ステップのうち最も計算量の多いステップ 1と2 の計算のみを行ない、これ以外の計算は GRAPE が接続された汎用的なワークステーションなどが行なう。
GRAPE の基本的なアーキテクチャは単純である。粒子 i と粒子 j の位置ベクトル formula_7, formula_10 と質量 formula_11, formula_12 を入力として与え、ニュートンの万有引力の法則：
WINE.
1993年には周期的境界条件の下での重力・クーロン力多体問題の計算を行なう専用計算機 WINE (Wave space INtegrator for Ewald method) が開発された。WINE は周期境界条件の下での中心力の厳密解を求めるエヴァルト法のアルゴリズムを専用パイプラインで実装したものである。WINE は MD や宇宙の大規模構造のシミュレーションなど、周期境界条件を用いる多体問題に活用された。また理化学研究所 （理研）の MDM ではシステムの一部として WINE の回路を1チップに集積した WINE-2 チップを周期境界の計算に用いている。
PROGRAPE.
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）の大規模クラスタシステムとして構成されることが多い。<br>
ソフトウェアチューニングの結果として、十分に高性能なライブラリが開発されてきており、１００万個を超すニーズが無い限りにおいてASICを開発しなければならない用途は限られている。そのため、科学計算分野では、通常のHPCを用いて計算する用途が増大しており、それが故に 富岳などの開発が行われた。
参考文献.
他