ユニット提供科目
ユニット提供科目
計算アルゴリズムと計算機アーキテクチャによる高精度計算と高速計算の基礎,並列計算技法,応用事例を教 授する.コンピュータを活用する上で最も重要な逐次計算の高速化技法と,マルチコア CPU を搭載する計算 機での並列計算技法や分散メモリ型並列計算機における並列計算技法について,C 言語を利用して実習を行う. 計算科学についての基礎力をつけることを目的とする.
【大学院横断型教育の概要・目的】
計算機アーキテクチャの理解,並列プログラミングの習得に止まらず,多くの事例研究の学習により,幅広い 分野における計算科学の技法の習得ができる.そのため,より実践的な場面での学習成果の活用が期待される. 特に,計算科学の技法を強く意識していなかった理系分野の大学院生が,この授業を受講することにより,新 しい視点で,自分の分野の研究にアプローチできるようになる.
計算アルゴリズムと計算機アーキテクチャによる高精度計算と高速計算の基礎,並列計算技法を理解する.特 に,高精度計算では,浮動小数点数による数値計算の特性を理解する.高速な計算では,BLAS の有効な活用 法を理解する.さらに,マルチコア CPU を搭載する計算機における並列計算技法である OpenMP と,分散メ モリ型並列計算機における並列計算技法である MPI について,その利用法を習得することを到達目標とする.
シミュレーション科学,行列計算,最適化アルゴリズムなどを題材として,計算の精度と実行時間, 並列プログラミング(OpenMP と MPI 入門),事例研究について学ぶ.
全 15 回の予定は以下の通りである.
・数値計算についての講義(6 回程度)
(1)数値計算の精度と安定性
数値計算の結果の精度を向上させるための数理的背景を持つ事例,多倍長計算の活用,計算機における演
算,計算スキームの安定性などの解説
(2)数値計算の高速化 BLAS&LAPACK 数値計算を高速化するための一つの有効な手段として,数値計算ライブラリとして有名な BLAS と
LAPACK の構造やその活用法の解説 (3)最適化アルゴリズム
アルゴリズムや実装の工夫による最適化計算の高速化についての解説
※年度によって (1)-(3) の一部を省略することがある
・計算科学についての講義(3 回)
(1)逐次計算の高速化と並列計算
計算機アーキテクチャの説明,キャッシュの有効活用,データの再利用などによる逐次計算の高速化とデー タ分割,キュー,粒度などの並列計算の基礎理論の説明
(2)OpenMP による並列計算
並列計算のための OpenMP プログラミング技法,基礎理論,逐次プログラムからの変更点などの紹介
(3)MPI による並列計算
並列計算のための MPI の並列モデル,基礎理論,基本関数の使い方などの解説
・スーパーコンピュータ実習(3 回)
(1)C 言語による逐次計算の高速化技法についての実習
(2)C 言語によるマルチコア CPU を搭載する計算機での並列計算技法についての実習 (3)C 言語による分散メモリ型並列計算機での並列計算技法についての実習
・事例研究についての講義(3 回程度)