近年,マイクロプロセッサの処理速度の上昇,並列計算機の発達によって,計算機システムの処理能力は飛躍的に増加している。 世界の並列計算機の動向をまとめた「TOP500リスト」によると, 世界最高速の計算機の速度は1993年6月から2011年6月の間に約10万倍近くにもなっている。 2012年6月現在で世界最高速のシステムは 約16PFLOPS(IBM BlueGeneQ)であり,157万台のコアから構成されている。 PFLOPSとは「PETA Floating Point Operations Per Second」の略,1秒間に1000兆回の浮動小数点演算性能を示す。
並列計算機の使用によって,より大規模で詳細なシミュレーションを高速に実施することが可能になり, 新しい科学の開拓が期待される・・・しかしながら,いざ,自作のプログラムを並列計算機で動かそうとすると中々容易ではない。
参考になる文献も少なく,英語のものが多い。 これまで,計算機を専門としない学生に対して科学技術シミュレーションのための並列プログラミング技術を体系的に教える授業は, 日本では皆無であった。多圏地球COEの一環として平成16年度から開講された「並列計算プログラミング」,「先端計算機演習I・II」は, そうした試みの日本における最初のもののうちの一つである。
本授業では,有限要素法,有限体積法に基づくアプリケーションを題材として,並列プログラミングを学習する。 FORTRAN,C言語などで記述されたプログラムを並列計算機上で並列化するための手段として MPI(Message Passing Interface), MPI(Message Passing Interface) を習得する。
アメリカのメリーランド大学(University of Maryland)で Applied Mathematics and Scientific Computation Programという コンピュータサイエンスと科学技術シミュレーションのジョイントプログラムを主宰している David Levermore教授によると, 科学技術シミュレーションの真髄は「SMASH」,すなわち,
本授業の中で強調したいことは以下の4点である: