高速計算コンサルティングセミナー

ご質問への回答集(Q&A)

FDM・FEMのための非線形/線形ソルバ理論

1.直接法にはメモリの関係でサイズに限界があるとのお話でしたが、どのくらいの大きさまで直接法が使えますか?
1.3次元非構造格子上で有限要素法を用いて離散化する場合ですと、メモリ2Gバイトあたり20万未知数程度が直接法で計算できる限界だと思われます。
2.大規模な行列ほど行列の条件数が大きくなり解くのが難しくなるとのことでしたが、最初に割と小さな行列で計算して問題なく計算できていたとしても、ウィークスケーリングの手法を用いて計算規模を大きくしていった場合、発散したりして解けなくなってしまうことが起こり得るのでしょうか?
2.はい。そういったことは起こり得ます。

数値解析プログラムに隠れている問題点の見つけ方とその解決策

3.方程式の規格化というのは具体的にどのようにするのでしょうか。また、条件数の大きい連立一次方程式の対策を5つ挙げられていましたが、どのような順序で適用するのでしょうか?
3.対称行列の場合はD1とD2が対称になるように配慮する必要があります。規格化は各行と列のノルムが1に近づくように行います。5つの対策のうち、どの対策を実施するかは問題に依存するため、具体的な問題を見て決めることになります。
4.条件数が大きいと解きにくくなる、とのことでしたが、解きにくい条件数というのは具体的にどのぐらいでしょうか。
4.固有値の分布やマトリクスソルバの性能によっても変わります。場合によっては10の6乗程度から解きにくくなることがありますが、経験上、だいたい10の8乗が境となっています。

計算機の性能を引き出すMPI並列プログラミング

5.領域分割型プログラムには節点を分割する場合と要素を分割する場合の2種類があるということですが、どういった場合にどちらの手法を用いればいいという知見はお持ちでしょうか?
5.どちらも大きな差はなく、どちらを採用するかは実装のしやすさを考慮して決定して下さい。ただし、採用している手法によって、どちらかの手法でなければコーディングが困難なことがあるかもしれません。また、行列になった状態で分割しなければならない場合には、要素を分割することは不可能なので、節点を分割するしかありません。
6.プログラムの並列化において、GPGPUを積極的に利用しているベンダーとあまり利用していないベンダーがありますが、ヴァイナスはどのように考えていますか?
6.GPGPUはメモリアクセスには時間がかかるが演算は非常に速いという特徴があります。このため、あまり頻繁にメモリアクセスを必要としない計算の場合は導入効果が高いと考えられます。ヴァイナスの得意技術である線形ソルバは、ベクトル行列積や行列行列積といった頻繁にメモリアクセスを必要とする計算がほとんどであるため、GPGPUの高速な演算性能を十分に活かしきれないと考えられます。現在はまだ考慮中の段階です。

CFDの大規模可視化を実現するインテリジェントCFDポストプロセッサ
FieldView Parallelのご紹介

7.FieldView Parallelが12億9千万メッシュを可視化したとき、32並列と64並列であまり処理時間がかわらないのは、ハードウェアのリミットだったというお話ですが、どのハードウェアが原因となっていたのでしょうか?
7.サーバのハードディスクのI/Oのバンド幅を使いきってしまったことが原因でした。
8.サーバクライアント形式の処理を行った場合、レンダリングはどちらが担当しているのですか?
8.サーバ側からポリゴンデータがクライアント側に送られ、このポリゴンデータを用いてクライアント側でレンダリング処理を行っています。