Google Cloud Platform(AWSでもAzureでも良いのですが)を使って数値計算を行いたい
要求
- 自前で計算資源を持たずに数値計算とその可視化・分析を行う
- 可視化・分析はJupyter互換環境で行う
- 計算の対象は偏微分方程式系、特に時空カオス系の研究用
- 長時間の計算もありうる(stable chaos等)
- 運動のシミュレーションだけでなく複雑なアルゴリズム(分岐追跡等)の実行も含む
- 可視化以外はそのまま三次元に適用できる事が望ましい
- Paraview等を使った三次元計算の可視化については今回は考えない
- 計算データは毎回生成するのではなく一旦保存し、そのデータに対して分析・可視化、及びそのデータを初期値としての計算等を行う
- データは一回で数GB程度、全体で少なくとも数十TB程度
計算
計算自体は単一ノードで行う想定(複数ノードのMPIは使わない)。スレッド並列は計算をRustを書くのでRayonに頼る形になりそう。計算時間は
- 数時間から数日レベルの計算(要データ保存)
- 数秒から数分程度の計算(データの加工含む)
の両方が必要になる予定。
データの保存
データサイエンスの普及のおかげで多くのサービスがある。どれを選ぶべきかはストレージ オプションの選択が詳しい。
今回は可視化サーバーを計算サーバーとは共有しないので、必要なデータはすべてストレージに保存する。
- 計算の進捗や収束状況のような時系列データ
- 反復法の誤差のログや分岐追跡のログ
- 計算の出力の構造化データ
- msgpackやprotocol/flat buffersでシリアライズされた場の生データ
- デバック・アルゴリズム検討の為の非構造化データ
- Krylov法の途中のベクトルとか、その時のデバッグで必要なもの