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