16. 今後の計画
赤木 :ここまでで、数値計算、特に粒子法の基本的な考え方と、
あと、そのためのソフトウェアパッケージのベースにあたるものを
一応やったと思うのね。
-
粒子データを扱うクラス
-
nacsio その汎用の入出力
-
clop 色々な処理プログラムを作るためのコマンドライン解釈ライブラリ
-
parser 粒子データを処理するためのインタプリタ「
こんな感じ。これで、N体だけで、銀河みたいな無衝突系なら100万粒子くらい
まではちょっと時間かかるけどできなくはないわ。
学生C:じゃあこの辺で私お疲れさまで、、、、
赤木 :でも、まだ、もっと粒子数大きいのを、と思うとツリーコードだとい
うだけではやっぱり性能不足で、
-
並列計算機での MPI による並列化
-
1台の中でのマルチコアによる並列化
-
SIMD 演算器の利用
を考えないといけないし、惑星形成とか球状星団とかの計算に使おうと思うと
ハミルトニアン分割をいれたコードじゃないと使えないのね。で、例えば並列
化は FDPS っていう作者氏のグループで開発しているフレームワーク使う方法
があるし、その上でハミルトニアン分割するのは GPLUM とか PeTar とかの、
それぞれ素晴らしいプログラムがあるのね。
でも、それ使って、っていうだけだとなんというか教育にならないじゃない?
学生C:でもだから車輪の再発明もどうかと思います。
赤木 :なので、その辺難しいところよね。あと、単に重力だけでなくて流体
もいれたいなと。
学生C:それって作者がやってみたいだけなんでは?
赤木 :まあそうともいうわね。そういう意味ではやっておきたい/みたいこと
(誰がよというのはちょっとおいて)を並べると
-
FDPS による並列化・高速化
-
FDPS によらない並列化・高速化
-
ハミルトニアン分割(P3Tスキーム)のコード
-
球状星団ができるコード
-
惑星形成が一応動くコード
-
銀河中心(ブラックホールあり)が動くコード
-
流体いりコード
みたいな。
学生C:それちょっと無理そうというか、FDPS 使わないで並列化はさすがにちょっとなくないですか?FDPS的な
ものを全部書き直すんですか?
赤木 :うーん、いつかというかそのうちというか時々しないといけないと思
うんだけどねえ、、、
学生C:まあでも今じゃないと思います。なのでまずは FDPS 使うのをでいい
んじゃないですか?で、P3T は書いてみて的な。
赤木 :そうねえ、当面の計画としてはそっちね。
学生C: FDPS の Crystal 対応って作者がやりかけてなかったでしたっけ?
えーと、
crystalfdps ですね。
赤木 :あ、でも、これ、オフィシャルな C 言語インターフェースができる前
に作りかけたやつで、 Fortran インターフェース用のダミーコードを生成す
るのよね、、、まあそれベース直すのがいいかしら。
学生C:と思います。
16.1. 課題
この章は息抜きなので課題はありません。
16.2. まとめ
-
次の章では FDPS を使ってみる。
16.3. 参考資料
FDPS