高度情報教育基盤ユニット(iEdu)

ユニット提供科目

  1. 現在の位置 : ホーム
  2.  
  3. ユニット提供科目-科目内容
  4.  
  5. 計算科学入門

計算科学入門

授業の概要・目的

計算アルゴリズムと計算機アーキテクチャによる高精度計算と高速計算の基礎,並列計算技法,応用事例を教授する.コンピュータを活用する上で最も重要な逐次計算の高速化技法と,マルチコア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回程度)

履修要件

・課題実習では,学術情報メディアセンターのスーパーコンピュータを使用します.情報学研究科に所属の学生は事前に取得しているアカウントを使用します.他研究科履修生については本演習用に必要に応じてアカウントを配布します.
・実習用端末として,ノート型PCを持参してください.持参できるノート型PCがない場合には教員に申し出てください.

ページの先頭へ

S