1. 現在の位置 : ホーム
  2. 提供科目
  3. 2010年度の科目
  4. 計算科学演習A

計算科学演習AExercise on Computational Science A

授業の概要・目的

FORTRANおよびC言語のプログラミング技法をもとに、数値シミュレーション技術の核となる並列計算の基礎的な知識を、具体的な題材を課題とした実習 を通じて獲得する。講義に加えて、学術情報メディアセンターのスーパーコンピュータを利用した実習により、理解を深める。

授業計画と内容

内容は、始めに、並列計算技術の基本となるOpenMPとMPIという並列化手法を講義と演習を通して習得する。次に、数値シミュレーション技術の 一角をなす数値線形代数の基礎知識、特に、長方形行列のQR分解とその周辺を講義する。そして、OpenMPとMPIを利用して、その計算を並列化する。 最後に、N体法を講義し、OpenMP、MPI、CUDAを利用して、その計算を並列化する。

全15回の予定は以下の通りである。

1 OpenMP演習(1) 概念説明、各種指示文の解説

課題1

資料1

資料2


2 OpenMP演習(2) 異なる2つの実装法

課題2

Emacsの使い方

資料1


3 MPI演習(1) 1対1通信

講義資料 教材ソースコード


4 MPI演習(2) 集団通信

講義資料 教材ソースコード


5 MPI演習(3) 片方向通信

講義資料 教材ソースコード 演習解答例


6 数値線形代数の基礎(特に、LU分解、QR分解、固有値分解、特異値分解についての基礎事項の復習)

資料1


7 長方形行列のQR分解の並列化(1) -逐次処理-

資料1


8 長方形行列のQR分解の並列化(2) -OpenMP並列-

資料1


9 長方形行列のQR分解の並列化(3) -MPI並列-

資料1

資料2


10 N体計算コードの並列化(1) -OpenMP並列、MPI並列-

講義資料 教材ソースコード(OpenMP, MPI)

11 N体計算コードの並列化(2) -CUDA(解説)-

講義資料 教材ソースコード(CUDA初歩)教材ソースコード(CUDA雛型)

12 N体計算コードの並列化(3) -演習-

13 N体計算コードの並列化(4) -演習-

14 N体計算コードの並列化(5) -演習-

15 N体計算コードの並列化(6) -結果発表と解説-

課題の提出方法

履修要件
・課題実習では、学術情報メディアセンターのスーパーコンピュータを使用します。情報学研究科に所属の学生は事前に取得しているアカウントを使用します.他研究科履修生については本演習用に必要に応じてアカウントを配布します。
・実習用端末として、ノート型PCを持参してください。持参できるノート型PCがない場合には情報学研究科教務掛にあらかじめ申し出てください。
予備知識
成績評価の方法・基準
(1)OpenMPは、並列化について大きく分けて2つの異なる実装法が存在ため、それぞれを理解できている
(2)MPIは、各関数の意味を正確に理解できている
(3)数値線形代数の基礎を理解し、OpenMPやMPIを適切に利用して、長方形行列のQR分解の並列化が行える
(4)OpenMP, MPI, CUDAを適切に利用して、N体計算コードの並列化が行える
以上の項目について、レポートに基づき評価する。さらに、出席率も評価項目とする。
教科書
講義資料を配布
特に定めない
参考書等
「OpenMPによる並列プログラミングと数値計算法」牛島、丸善
“Using MPI”, “Using MPI-2”, Gropp et al., MIT Press
「はじめてのCUDAプログラミング」青木、額田、工学社
URL
その他(授業外学習の指示・オフィスアワー等)
木村欣司:金曜・3限目13:00-14:30 kkimur[at]amp.i.kyoto-u.ac.jp
矢作日出樹:月曜・3限目13:00-14:30 yahagi[at]media.kyoto-u.ac.jp
授業時間外で、質問がある場合には、あらかじめ、上記のアドレスにメールをすること。

センター提供科目一覧に戻る