今年度の主な成果は以下のとおりである。
以下、それぞれについて簡単に述べる。
まず、重力プロセッサチップの仕様決定について簡単にまとめる。これは本計 画のキーとなる部分である。単体での性能にあまり高いものを要求すると実現 が困難になり開発が遅れるだけでなく、最悪の場合は完成できなくなることも あり得る。これに対し、あまり低く設定してはシステム全体としてのコストパ フォーマンスが低下することになる。
各半導体メーカーの製造技術の水準、設計ソフトウェアの実力等に関する総合 的な評価を行なった上、目標仕様を表 1 のように定めた。
重力プロセッサチップの全体構成については既に図4に示した 通りであり、予測子パイプライン1組と相互作用計算パイプライン6組を内蔵す る。予測子パイプラインは以下の計算を行なう
ここで、 と は粒子 j の時刻 t での予測され た位置、速度であり、, , , は粒子 j の時刻 での位置、速度、加速度とその一階、およ び二階導関数である。
また、相互作用計算パイプラインは以下の計算を行なう。
ここで
であり、 、、、、、はそれぞ れ粒子 i の位置、速度、加速度とその一階時間導関数、Gは重力定数、 は粒子jの質量である。また、 はソフトニングパラメータ と呼ばれる定数である。
すなわち、チップ全体としては、式 (1)および (2) をホーナーの公式を用いて計算するパイプライン(x, y, z の3成分のために3本)を1セット、式(3) の重力と式(3)のその導関数を評価するパイプラインを6セット 持つものとなる。なお、 などの、そこでの重力を計 算される粒子のデータは各相互作用パイプラインが持つレジスタに保持される。 図5に相互作用パイプラインのブロック図を示す。
これに対し、 などの、重力を及ぼす粒子のデータは、順序アクセス されるメモリに格納される。このメモリは、当初プロセッサチップに集積する ことも考えたが、現時点で利用可能な技術を使った場合はロジック部分の速度、 集積度低下とメモリ部分の集積度低下のペナルティが大き過ぎることが 分かった。従って、今回のシステムでは、メモリは外づけとする。
メモリとプロセッサチップ間の転送速度は、計算機システム全体の性能と使い やすさに大きく影響する。これは、転送速度に反比例して、同時に重力を計算 する粒子の数を増やす必要があるからである。このために、転送速度が小さ 過ぎると、空間的な非一様性が大きい系のシミュレーションで実効性能が低下 することになる。定量的評価を行なった結果、プロセッサチップあたり 1GB/s 程度のメモリバンド幅があれば、ほとんどの問題で十分な性能を達成できるこ とがわかった。
重力プロセッサチップの論理設計については、各演算で必要な計算精度や演算 方式(演算結果の丸めの方法や、数の表現など)についての検討を行ない、演 算方式の詳細を決定した。これは現在のところ汎用計算機上でC言語によるシ ミュレータが動作しており、ハードウェア記述言語(VHDL)に変換する作業を進 めている。
VHDL で記述したものを論理合成することで実際のチップの論理設計の大部分 が出来ることになる。
FPGA を使った計算システムについては、Altera 社のFPGA EPF10K100を2個使 う評価用システムPROGRAPE-1 (PROgrammable GRAPE)ハードウェアを開発し た。ホストインターフェースにはGRAPE-4 用に開発した PCI インターフェー スをそのまま使うことで、短期に高性能なものを完成させることができた。現 在、このシステムに単純な重力計算用パイプラインと流体計算用のパイプライ ンを実装する作業を行なっている。
最後に、GRAPE-4 上での応用ソフトウェアの開発について簡単に述べる。 GRAPE-4は1992年度からの科学研究費「特別推進研究」で開発したピーク性能 1Tflopsの重力専用計算機である。開発当初の構成ではシングルプロセッサの ワークステーションにしか接続できなかったが、 PCI バスを介して多様なホ スト計算機に対応できるようになった。現在、共有メモリ型マルチプロセッサ 計算機である DEC 社の Alphaserver 8400 上で、複数のホストインターフェー スを独立に動作させるためのテストを行なっている。いくつか技術的な問題が 見つかり、それに対応した変更作業を進めている。