ユニット提供科目
ユニット提供科目
本授業の目的は,大規模データに対する統計処理を通じて,高速な逐次計算プログラムを作成する技法と並列計算の初歩を学ぶことである.その目的を達成するために,本授業では,予測を行うための典型的な手法である回帰分析を行うC言語のプログラムを3種類作成する.1つは逐次計算のプログラム,1つはOpenMPを用いた並列計算のプログラム,もう1つはMPIを用いた並列計算のプログラムである.演習に先立ち,コンピュータを用いて計算を行う数値計算についての基本的な知識や,行列・線形代数の知識,回帰分析の知識,および,並列計算を行うためのOpenMPとMPIについてなど,演習に必要な事項について講義する.
高速なプログラムを作成する技法を理解し,OpenMPおよびMPIを用いて並列計算を行うプログラムを作成できるようになること.
全15回の授業の予定は以下の通りである.
・数値計算と計算科学(1回)
二分法やガウスの消去法を例に計算機で計算する方法について講義する
・線形代数(1回)
回帰分析を行うのに必要なグラム・シュミットの正規直交化法とQR分解,および,分散メモリの並列計算でQR分解を行うAllReduceアルゴリズムについて講義する
・回帰分析(1回)
回帰分析と最小二乗法について講義する
・逐次計算の高速化(1回)
効率的なアルゴリズム,計算機アーキテクチャとキャッシュの有効活用など高速な逐次計算を行うコツについて講義する
・OpenMP入門(1回)
共有メモリ向けの並列化技法であるOpenMPについて講義する
・MPI入門(1回)
分散メモリ向けの並列化技法であるMPIについて講義する
・回帰分析を行うプログラムの作成(9回)
回帰分析を行うC言語のプログラムを3種類作成する.
始めに逐次計算のプログラムを作成し,それをOpenMPを用いて並列化を行ったプログラム,MPIを用いて並列化を行ったプログラムをそれぞれ作成する.
C言語を用いて実習を行うため,C言語の文法を既に習得しているか,予習と復習を授業と並行して行うことを期待する.