next up previous
Next: 4 専用機の利点 Up: 専用計算機の将来――GRAPEの挑戦 Previous: 2 GRAPE-6

3 GRAPE アーキテクチャ

なぜ差があるのかを理解するためには、まずハードウェアの構成の違いをみて おく必要がある。図 2 と図 3 に GRAPE の基本的な考え方を示す。 GRAPE が対象にする問題は、以下の運動方程式で 表現される自己重力多体系である。

Figure 2: GRAPE の基本的構成
\begin{figure}\begin{center}
\leavevmode
\epsfxsize = 7cm
\epsffile{basic_grape.eps}\end{center}\end{figure}

Figure 3: GRAPE パイプライン
\begin{figure}\begin{center}
\leavevmode
\epsfxsize = 11cm
\epsffile{harppipe.eps}\end{center}\end{figure}


\begin{displaymath}
\frac{d^2\mathbf{x}_i}{dt^2} = -\sum_{i\ne j}
\frac{Gm_j(\mathbf{x}_j-\mathbf{x}_i)}{\vert\mathbf{x}_j-\mathbf{x}_i\vert^3}
\end{displaymath} (1)

ここで $\mathbf{x}_i$$m_i$ は粒子 $i$ の位置と質量、 $t$ は時刻、 $G$ は重 力定数である。右辺の和は $i$ 以外の系のすべての粒子についてとる。

これは、単に系のすべての粒子が他のすべての粒子からの重力を受けて運動す るというだけである。球状星団を始めとする星団、銀河、銀河団などは基本的 にこういうものとして理解できる。太陽系での惑星形成や惑星の回りの衛星、 リングについても基本的には上の式で表現され、これに物理的に衝突した粒子 が跳ね返ったりあるいは合体する過程をとりいれて計算することになる。

このような系がどう振舞うかを調べるには、上の運動方程式を数値的に積分す ること、つまりシミュレーション(普通$N$体シミュレーションと呼ばれる)が もっとも直接的で強力な道具になる。なお、原子一つ一つの運動を解くことで 物質のマクロな性質や有機高分子の振舞いを調べる分子動力学法も基本的には 同じような多粒子系を扱う。

このような多粒子系のシミュレーションの特徴は、計算量が極めて大きく、し かもそのほとんどが粒子間相互作用の計算に費やされることである。重力やクー ロン力をまともに評価すれば計算量は粒子数 $N$ の 2 乗になる。時間方向の ステップ数も多く、問題によっては粒子数に比例して必要なステップ数も増え る。さらに、特に重力の場合にはそれが引力であるために2つの粒子が無制限 に近づいたり、自己重力不安定や自己重力と熱輸送がカップルして起こる重力 熱力学的不安定で部分的に密度が高く粒子の運動が速い領域が形成される。こ のような場合には、粒子の必要に応じて独立に時間刻みを変えないと計算量が 膨大になる。

時間刻みが一定、あるいは全粒子で共通でいいような場合には、バーンズ・ハッ トのツリー法[4]や高速多重極法[5]によって計算量のオーダーを $N^2$ から $N \log N$$N$ に減らせる場合もある。しかしこの場合でも 粒子間相互作用の計算がもっとも大変であることには変わりがない。

そこで我々が考えた(最初の提案は国立天文台の近田によるものである)のは、 粒子間相互作用の計算だけを高速に行うハードウェアを作って、それを普通の 計算機につなげて使うことである。このやり方には、いろいろな利点がある。

もっとも重要なものは、専用機側のトランジスタ利用効率を非常に高くできる ことである。最初にあげたようなマイクロプロセッサは演算器を 1-2個しかも たない。これは、トランジスタ数が3千万を超えるということを考えると驚く べき少なさである。というのは、64ビットの浮動小数点演算器を実現するだけ ならば必要なトランジスタ数は10-20万程度であり、計算上は 100個以上の演 算器を1チップに収められるからである。

これに対してGRAPE-6 用に開発した LSI では、 $0.25\mu {\rm m}$ と2世代 前の技術を使っているにもかかわらず、演算器60個以上からなる演算パイプラ インを 6本集積し、約400個の演算器を 1 チップに収めた。これにより、動作 クロックが 90 MHz と低くてもピーク性能で 31 Gflops と高い性能が実現で きた。また消費電力も15W 程度と低く、演算速度当りではマイクロプロセッサ にくらべて2桁程度良くなっている。

粒子間相互作用の、多数の粒子が多数の粒子と相互作用するという特性を考え ると、専用化した時にこのような高い効率が実現できることは特に不思議なこ とではない。この特性のためにまず非常に高い並列度があり、さらに必要なメ モリバンド幅が小さいからである。

基本的なパイプラインの使い方としては、 一本が一つの粒子への力を計算する。 この場合には、クロック毎に力を及ぼす粒子一つのデータが必要になる。しか し、複数パイプラインがあればそれらは違う粒子への力を計算することでメモ リからのデータは共有できる。さらに、1本のパイプラインを時分割して仮想 的に複数のパイプラインとして扱うことで、必要なメモリバンド幅をさらに下 げることができる。 GRAPE-6 の場合は、仮想的な多重度を 8 とすることでメ モリバンド幅を 720MB/s まで落としている。

さらに、多数のチップを並列に使うのも、同じ粒子への別の粒子からの力を計 算させる(結果を回収する時に合計する)、あるいは別の粒子への力を計算させ ることで容易に実現できる。合計等も、すべてハードウェアで実行できるので ネットワークの段数が増えても遅延の増加はマイクロセコンド以下であり、大 規模なネットワークを構成してもさして通信レイテンシが増えることはない。

図に GRAPE-6 のハードウェア構成を示す。1ボードに 32チップを載せ、これ らは FPGA で構成された加算器のツリーでホストにつながる。さらに4ボード からの結果がネットワークボードで合計されてホストに返される。このネット ワークボードは、互いにデータを交換して 4 台のホストからのデータを受け 取ることができ、これにより4台のホストが粒子データを分散して持っていて も GRAPE の側ではデータを重複させ、各ホストの粒子への力をホスト間通信 なしに計算する。 64 Tflops システムは、これを 8 ホストに拡張することも できたが、分割して使う場合のことを考えて 4 ホストからなるクラスタを 4 組作り、つごう16台のホストをギガビットイーサネットで結合する構成にした。 このために、特にレイテンシの面で不利ではあるが、64Tflops マシン全体を 使いたいような大規模な計算ではそれほど大きな問題というわけではない。



Jun Makino
平成14年10月4日