ScaLAPACK — CAE用語解説
ScaLAPACK
先生、HPCのジョブで「ScaLAPACK」ってライブラリが使われてるんですけど、LAPACKとは何が違うんですか?
LAPACKは1台のマシンで動く線形代数ライブラリだ。ScaLAPACKはその名の通り「Scalable LAPACK」で、並列計算環境で複数のノードに行列を分散させて計算できるバージョンだよ。
行列を分散させるって、具体的にどうやるんですか?
「ブロックサイクリック分散」という方式を使う。行列をブロック単位で各プロセスに順番に配る。例えば4プロセスなら行列の各ブロックがプロセス0,1,2,3,0,1,2,3...と巡回的に割り当てられる。こうすると負荷が均等になるんだ。
CAEのどういう場面で使われるんですか?
大規模なLU分解や固有値解析だね。例えば100万自由度の構造解析で直接法ソルバーを使う場合、密行列部分の分解にScaLAPACKが裏で動いている。数百コア以上に並列化できるから、1台では何日もかかる計算が数時間で終わることもある。
CAEユーザーが直接ScaLAPACKのAPIを叩くことってあるんですか?
普通はない。ソルバーの内部で使われているから、ユーザーは意識しないことが多い。ただし自分でソルバーを開発したり、研究コードを書く場合は直接呼ぶことになる。BLACS(通信レイヤー)の初期化とかクセがあるから、最初はちょっと苦労するかもね。
最近のGPU計算ではScaLAPACKは使わないんですか?
GPU向けにはNVIDIAのcuSOLVERやMagmaといった別のライブラリが主流になってきた。ただしCPUクラスタではまだScaLAPACKが現役バリバリで、多くのCAEソルバーの数学基盤として動き続けているよ。
CAE用語の正確な理解は、チーム内のコミュニケーションの基盤です。 — Project NovaSolverは実務者の学習支援も視野に入れています。
Project NovaSolver — CAE実務の課題に向き合う研究開発
「ScaLAPACKをもっと効率的に解析できないか?」——私たちは実務者の声に耳を傾け、既存ワークフローの改善を目指す次世代CAEプロジェクトに取り組んでいます。具体的な機能はまだ公開前ですが、開発の進捗をお届けします。
進捗通知を受け取る →関連トピック
なった
詳しく
報告