next up previous
Next: Bibliography Up: 重力多体系 Previous: 2 少ない粒子数での計算

3 数値計算の方法等

というわけで、後2ページで数値計算の方法については概説しないといけない が、どう考えても無理なので具体的な計算法については別に書いたもの[Mak01]を見て もらうとして、 ここでは今後の研究の方向について簡単に触れたい。

無衝突系の計算では、前節の議論からもわかるように、時間積分の精度自体は ある程度犠牲にしてでも扱える粒子数を増やすことが全体としての精度を上げ、 ひいては新しい問題に挑戦するためには重要である。これに対して、衝突系の 計算では2体緩和自体を正確に表現するためにある程度の計算精度が要求され ることになる。

とはいえ、いずれの場合でも、計算速度を速くし、必要とする計算精度を満足 したうえで扱える粒子数を増やすことが直接に新しいサイエンスにつながると いっても、決していいすぎということはないと思う。

計算速度を速くする方法には3通りある。一つは、より速く計算できるアルゴ リズムを開発することである。例えば Barnes-Hut ツリー法、 Aarseth の独 立時間刻みといった方法である。これにもまだまだ研究の余地があることは疑 う余地はない。第二は、速い計算機を買ってきて使うことである。こう書くと 馬鹿みたいだが、 問題は、速い計算機を使うというのがそんなに簡単ではな いことである。で、最後は、速い計算機を作ることである。

使う道具が同じならば、もちろんより賢い方法で使うことがもっとも大事であ る。しかし、特に最近 10 年程度は、「使う道具が同じなら」という前提はか なり怪しい。これは、ここ 20 年ほどの計算機の進化が、少なくとも高速の数 値計算に関する限り、計算機を効率良く使うことを次第に困難にする方向にむ かってきたからである。 30 年前であれば、もっとも速い計算機というのは IBM か CDC のもっとも高い計算機であり、そこで動くプログラムは、とりあ えずは普通のプログラムであった。しかし、現在では、少なくとも価格性能比 でもっとも良い計算機はいわゆる PC クラスタ、つまり安いパソコンを普通のネッ トワークでつないだものであり、 お金に糸目をつけないで最高速を求めるな らベクトル計算機が並列になった地球シミュレータである。

これらは、ハードウェアの構造もプログラミングモデルも全く違い、どちらか で速く走るようにチューニングしたプログラムが他方で速く走るということは まずない。むしろ逆に、一方でチューニングした結果、他方での性能はかえっ て落ちることが普通である。しかも、PC クラスタで満足のいく性能がでるプ ログラムを書くのは容易ではない、というより PC クラス タで動くプログラムを書くこと自体がすでにかなり敷居の高いことであり、ま た PC クラスタを導入、運用するのも簡単ではない。

簡単ではないので、大していいことがなければしないで済ませたいわけだが、 そうはいかないことが問題である。例えば2003年3月現在、5万円程度でピーク 性能 5 Gflops 程度のパソコンを買える。100万で 100Gflops であり、 例えば三鷹のスーパーコンピューター VPP5000 の理論ピークの 600 Gflops と同じ桁にはいってしまう。もちろん、アーキテクチャの違いはあって、ピー ク性能で比べても意味はないが、格子を切った流体コードならともかく、粒子 コードで特に高速な(計算量のオーダーが低い)計算法、具体的にはツリー法や 独立時間刻みといったものは必ずしも VPP 5000 のようなベクトル並列型の計 算機で高い実効性能がでるわけではなく、 PC クラスタのほうが高い実効性能 がでることも多い。そうすると、スーパーコンピューターを使うよりも部屋に おける(ちょっと騒音がうるさいかも) PC クラスタを占有して使うほうが良い 計算ができるかもしれない。もちろん、粒子法コードで重力だけが対象なら、 GRAPE を使えばさらに 1-2桁実効性能でみた価格性能比は良くなるが、これは ちょっと置いておこう。

日本以外でも多少似た状況はあって、割合お金のある研究所では Sun、SGI、 あるいは IBM といった伝統的な計算機メーカーの高い並列計算機を買ってい て、そこで動くようなプログラムを作らないと研究にならなかったりするが、 しかしそういう計算機の速度は1台あたりでは 5万円の PC より遅かったりす る。

こういう、形而下の話を云々することは高尚な理論家のすることではないとい う向きもあるかもしれないが、「計算機は理論の望遠鏡」という時々聞くスロー ガンをまともに受け取るなら、使いやすいかもしれないけど同じことをするの に 100 倍お金がかかる、言い換えると同じお金で 1/100 のことしかできない 計算機を使うことに甘んじていていいものか?という疑問はでてくる。

PC クラスタが他の計算機に比べると(GRAPE は別だが)価格性能比では圧倒的 に優位にたつ時代はしばらくは続きそうな気配なので、近い将来に人より良い シミュレーションができるかどうかは PC クラスタを有効に利用できるかどう かにかかってきている。良いアルゴリズムは、良い道具の上で使えて初めて意 味があるのである。

とはいえ、問題は「敷居が高い」ということであろう。これは、天文(理論)コ ミュニティとして、啓蒙活動、さらには、より使いやすい並列プログラミング のためのインフラストラクチャの提案・開発といったところまで含めて考えて いくべき問題であろう。

あまり「重力多体系の数値計算」の話になっていないが、ページも埋められた のでこの辺で終わることにする。



Jun Makino
平成15年3月19日