Exercise on Computational Science A
Numbering Code |
G-LAS12 80016 SJ10 G-LAS12 80016 SJ11 |
Year/Term | 2022 ・ First semester | |
---|---|---|---|---|
Number of Credits | 1 | Course Type | Seminar | |
Target Year | Graduate students | Target Student | For science students | |
Language | Japanese | Day/Period | Mon.2 | |
Instructor name | SATO HIROYUKI (Graduate School of Informatics Program-Specific Associate Professor) | |||
Outline and Purpose of the Course |
本授業の目的は、大規模データに対する統計処理を通じて、高速な逐次計算プログラムを作成する技法と並列計算の初歩を学ぶことである。 その目的を達成するために、本授業では、予測を行うための典型的な手法である回帰分析を行うC言語のプログラムを3種類作成する。1つは逐次計算のプログラム、1つはOpenMPを用いた並列計算のプログラム、もう1つはMPIを用いた並列計算のプログラムである。実習に先立ち、コンピュータを用いて計算を行う数値計算についての基本的な知識や、行列・線形代数の知識、回帰分析の知識、および、並列計算を行うためのOpenMPとMPIについてなど、実習に必要な事項について講義する。 【大学院横断型教育の概要・目的】 具体的な題材を課題とした実習により、計算科学・並列計算の技法を実践的に学ぶことができ、学習成果の活用が期待される。特に、計算科学の技法を強く意識していなかった理系分野の大学院生が、この授業を受講することにより、新しい視点で、自分の分野の研究にアプローチできるようになる。 |
|||
Course Goals | 高速なプログラムを作成する技法を理解し、OpenMPおよびMPIを用いて並列計算を行うプログラムを作成できるようになること。 | |||
Schedule and Contents |
全15回の授業の予定は以下の通りである。 ・数値計算と計算科学(1回) 二分法やガウスの消去法を例に計算機で計算する方法について講義する ・線形代数(1回) 回帰分析を行うのに必要なグラムシュミットの正規直交化法とQR分解、および、分散メモリの並列計算でQR分解を行うAll Reduceアルゴリズムについて講義する ・回帰分析(1回) 回帰分析と最小二乗法について講義する ・逐次計算の高速化(1回) 効率的なアルゴリズム、計算機アーキテクチャとキャッシュの有効活用など高速な逐次計算を行うコツについて講義する ・OpenMP入門(1回) 共有メモリ向けの並列化技法であるOpenMPについて講義する ・MPI入門(1回) 分散メモリ向けの並列化技法であるMPIについて講義する ・回帰分析を行うプログラムの作成(9回) 回帰分析を行うC言語のプログラムを3種類作成する。 始めに逐次計算のプログラムを作成し、それをOpenMPを用いて並列化を行ったプログラム、MPIを用いて並列化を行ったプログラムをそれぞれ作成する。 |
|||
Evaluation Methods and Policy |
レポート試験により評価する。 OpenMPを用いた並列計算のプログラム、MPIを用いた並列計算のプログラムの2種類を提出してもらい、正しく効率的に計算が行われているか評価する。 |
|||
Course Requirements | C言語を用いて実習を行うため、C言語の文法を既に習得しているか、予習と復習を授業と並行して行うことを期待する。 | |||
Study outside of Class (preparation and review) |
プログラムを作成する上で、授業時間内で行うことができなかった工夫などを実装することを期待する。 各話題について、授業時間の制約上、詳細に解説することが困難であるため、各自で図書館等を利用してより深い知識を得ることを期待する。 |
|||
Textbooks | Textbooks/References |
講義資料を配布する。 教科書は特に定めない。 |
||
References, etc. | 特に定めない。 |