Computational Science, Introduction

Numbering Code G-LAS12 80018 LJ10 Year/Term 2022 ・ First semester
Number of Credits 2 Course Type Lecture
Target Year Graduate students Target Student For science students
Language Japanese Day/Period Thu.5
Instructor name YAMASHITA NOBUO (Graduate School of Informatics Professor)
SATO HIROYUKI (Graduate School of Informatics Program-Specific Associate Professor)
USHIJIMA SATORU (Academic Center for Computing and Media Studies Professor)
FUJIWARA HIROSHI (Graduate School of Informatics Associate Professor)
ENOMOTO TAKESHI (Disaster Prevention Research Institute Professor)
Outline and Purpose of the Course 計算アルゴリズムと計算機アーキテクチャによる高精度計算と高速計算の基礎、並列計算技法、応用事例を教授する。コンピュータを活用する上で最も重要な逐次計算の高速化技法と、マルチコアCPUを搭載する計算機での並列計算技法や分散メモリ型並列計算機における並列計算技法について、C言語を利用して実習を行う。計算科学についての基礎力をつけることを目的とする。

【大学院横断型教育の概要・目的】
計算機アーキテクチャの理解、並列プログラミングの習得に止まらず、多くの事例研究の学習により、幅広い分野における計算科学の技法の習得ができる。そのため、より実践的な場面での学習成果の活用が期待される。特に、計算科学の技法を強く意識していなかった理系分野の大学院生が、この授業を受講することにより、新しい視点で、自分の分野の研究にアプローチできるようになる。
Course Goals 計算アルゴリズムと計算機アーキテクチャによる高精度計算と高速計算の基礎、並列計算技法を理解する。特に、高精度計算では、浮動小数点数による数値計算の特性を理解する。高速な計算では、BLASの有効な活用法を理解する。さらに、マルチコアCPUを搭載する計算機における並列計算技法であるOpenMPと、分散メモリ型並列計算機における並列計算技法であるMPIについて、その利用法を習得することを到達目標とする。
Schedule and Contents シミュレーション科学,行列計算,最適化アルゴリズムなどを題材として,計算の精度と実行時間,並列プログラミング(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回程度)
Evaluation Methods and Policy 以下の通り、レポート課題で評価する。
・数値計算についての講義において、レポート課題を出題する(配点40点)
・スーパーコンピュータ実習において、プログラミングの課題を出題する(配点60点)
Course Requirements ・課題実習では、学術情報メディアセンターのスーパーコンピュータを使用します。情報学研究科に所属の学生は事前に取得しているアカウントを使用します。他研究科履修生については本演習用に必要に応じてアカウントを配布します。
・実習用端末として、ノート型PCを持参してください。持参できるノート型PCがない場合には教員に申し出てください。
Study outside of Class (preparation and review) プログラミング言語Cについては、その文法を習得していることを前提として演習を行う為、それについての予習と復習を授業と並行して行うことを期待する。さらに、各話題について、授業時間の制約の為、詳細に解説することが困難であるため、各自で、図書館等を利用して各話題についての深い知識を得ることを期待する。
Textbooks Textbooks/References 講義資料を配布する。
教科書は特に定めない。
References, etc. 特に定めない。
PAGE TOP