ユニット提供科目
ユニット提供科目
本授業の目的は,大規模データに対する統計処理を通じて,高速な逐次計算プログラムを作成する技法と並列計算の初歩を学ぶことである.
その目的を達成するために,本授業では,予測を行うための典型的な手法である回帰分析を行うC言語のプログラムを3種類作成する.1つは逐次計算のプログラム,1つはOpenMPを用いた並列計算のプログラム,もう1つはMPIを用いた並列計算のプログラムである.演習に先立ち,コンピュータを用いて計算を行う数値計算についての基本的な知識や,行列・線形代数の知識,回帰分析の知識,および,並列計算を行うためのOpenMPとMPIについてなど,演習に必要な事項について講義する.
【大学院横断型教育の概要・目的】
具体的な題材を課題とした演習により,計算科学・並列計算の技法を実践的に学ぶことができ,学習成果の活用が期待される.特に,計算科学の技法を強く意識していなかった理系分野の大学院生が,この授業を受講することにより,新しい視点で,自分の分野の研究にアプローチできるようになる.
高速なプログラムを作成する技法を理解し,OpenMPおよびMPIを用いて並列計算を行うプログラムを作成できるようになること.
開講日程:9月10日(火)~9月12日(木)各日1~5限
全15回の授業の予定は以下の通りである.
・数値計算と計算科学(1回)
二分法やガウスの消去法を例に計算機で計算する方法について講義する
・線形代数(1回)
回帰分析を行うのに必要なグラム・シュミットの正規直交化法とQR分解,および,分散メモリの並列計算でQR分解を行うAll Reduceアルゴリズムについて講義する
・回帰分析(1回)
回帰分析と最小二乗法について講義する
・逐次計算の高速化(1回)
効率的なアルゴリズム,計算機アーキテクチャとキャッシュの有効活用など高速な逐次計算を行うコツについて講義する
・OpenMP入門(1回)
共有メモリ向けの並列化技法であるOpenMPについて講義する
・MPI入門(1回)
分散メモリ向けの並列化技法であるMPIについて講義する
・回帰分析を行うプログラムの作成(9回)
回帰分析を行うC言語のプログラムを3種類作成する.
始めに逐次計算のプログラムを作成し,それをOpenMPを用いて並列化を行ったプログラム,MPIを用いて並列化を行ったプログラムをそれぞれ作成する.
C言語を用いて実習を行うため,C言語の文法を既に習得しているか,事前にC言語の基礎を学習しておくことを期待する.
レポート試験により評価する.
OpenMPを用いた並列計算のプログラム,MPIを用いた並列計算のプログラムの2種類を提出してもらい,正しく効率的に計算が行われているか評価する.
講義資料を配布する.
教科書は特に定めない.
特に定めない.
C言語を用いて実習を行うため,C言語の文法を既に習得しているか,事前にC言語の基礎を学習しておくことを期待する.
授業時間の制約上,各話題について詳細に解説することが困難であるため,各自で図書館等を利用してより深い知識を得ることを期待する.