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

ユニット提供科目

  1. 現在の位置 : ホーム
  2.  
  3. ユニット提供科目-科目内容
  4.  
  5. 計算科学演習B(集中科目)

計算科学演習B(集中科目)

授業の概要・目的

比較的簡単で背景となる数学的かつ工学的知識を受講者が共通に持つ具体的な大規模な科学技術計算の課題について,履修生がC言語,またはFortranを選択して,自ら並列計算プログラムを作成し,スーパーコンピュータにおける実行データを分析する.課題としては,例えば,拡散方程式の陽的差分法に関する並列計算がある.本科目は,計算科学に関する教育研究を行う全ての研究科に所属する大学院学生が受講しやすいよう夏期休暇中の集中講義科目として実施する.

【研究科横断型教育の概要・目的】
基本的な並列プログラミングの習得に止まらず,具体的な大規模な科学技術計算の課題についての実習により,計算科学の技法の習得ができる.そのため,より実践的な場面での学習成果の活用が期待される.特に,計算科学の技法を強く意識していなかった理系分野の大学院生が,この授業を受講することにより,新しい視点で,自分の分野の研究にアプローチできるようになる.

到達目標

MPIおよびOpenMPの基本的な機能を用いた並列プログラミングのためのスキルを習得すること.

授業計画と内容

開講日程:9月9日(月)~9月13日(金) 各3,4,5限

全15回の予定は,以下の通りである.
・並列計算概論2回
並列計算の基本,メディアセンターのスーパーコンピュータの紹介,スーパーコンピュータの基本的利用法に関する演習

・逐次プログラミング 2回
課題プログラムの原理・基本的計算法に関する解説,逐次プログラムの作成

・MPI(基礎)2回
MPI並列プログラミングの基本的な考え方と技法,MPIによる課題プログラムの基本的な並列化設計

・MPI(応用)2回
MPIの高度な機能とそれを用いたプログラミング,集合通信の機能と性能,MPIによる課題並列プログラム作成演習

・OpenMP(基礎)2回
OpenMP並列プログラミングの基本的な考え方と技法,OpenMPによる課題プログラムの基本的な並列化設計

・OpenMP(応用)2回
NUMAメモリアーキテクチャとNUMA対応のプログラミング,OpenMPによる課題並列プログラム作成演習

・並列化プログラミング 3回
課題並列プログラムの性能解析とチューニング・改良演習,レポート作成

履修要件

・C言語またはFortranによるプログラミングができること.
・実習用端末として,SSHのクライアント(WSLやPuTTYなど)をインストールしたノート型PCを持参すること.
・学術情報メディアセンターのスーパーコンピュータを使用する.情報学研究科に所属の学生は事前に取得しているアカウントを使用する.他研究科履修生については本演習用に実習端末にOpenMPとMPIが利用可能な環境を準備すること.環境の準備に関しては講義内で説明する.

成績評価の方法・基準

【レポート試験の成績(75%)】
MPIやOpenMPを利用したC言語もしくはFortranの並列化プログラミングに関する基礎的知識を獲得し,あわせて履修生が自身の専門分野において並列化シミュレーションを実施するために必要な知識,技能を獲得することを目標とする.講義内容の理解度や並列プログラミング技能の習熟度について,拡散方程式の初期値求解プログラムに関する以下の5回のレポート(配点各15点)により評価する.
・逐次プログラム
・問題空間を1次元分割したMPI並列プログラム
・問題空間を2次元分割したMPI並列プログラム
・Work Sharingを用いたOpenMPプログラム
・OpenMPとMPIを併用したハイブリッド並列プログラム
【平常点評価(25%)】
出席状況と,質問などを通した授業への積極的な参加を評価する.

教科書

教科書は特に定めず,配布資料に基づいて講義する.

参考書等

『スーパーコンピュータの使い方』 (https://web.kudpc.kyoto-u.ac.jp/doc/hpc-manual/hpc-manual-ja.pdf)

その他(授業外学習の指示・オフィスアワー等)

『スーパーコンピュータの使い方』 (https://web.kudpc.kyoto-u.ac.jp/doc/hpc-manual/hpc-manual-ja.pdf)

ページの先頭へ

S