京都大学国際高等教育院附属 データ科学イノベーション教育研究センター

menu

計算科学演習A

開講時期 年度 前期
担当教員 国際高等教育院 特定講師 關戸 啓人
授業情報 (群) 院横断 群 (分野(分類)) 統計・情報・データ科学系 (使用言語) 日本語
(単位数) 1単位 (週コマ数) 1コマ (授業形態) 演習
(開講年度・開講期) 2018・前期 (配当学年) 大学院生 (対象学生) 理系向
(曜時限) 月3
(教室) 情報メ201(遠隔講義室)
授業の概要・目的 大規模データに対する統計処理を通して、高速な逐次計算プログラムを作成する技法と並列計算の初歩を学ぶことを目的とする。数値計算と統計計算について簡単に触れた後、計算機アーキテクチャの説明、キャッシュの有効活用などの話題を解説し、高速な逐次計算プログラムを作成する上での注意点を解説する。さらに、マルチコアCPUを搭載する計算機での代表的な並列計算技法であるOpenMPと分散メモリ型並列計算機のための並列化技法であるMPIについて学ぶ。
実習では、最小二乗法の問題を解く為のコードを作成する。最小二乗法については、列フルランク行列の場合には、QR分解によって計算可能である。よって、始めに、列フルランク行列の場合を仮定し、QR分解を行うための逐次計算のコードを、「逐次計算の高速化」の内容を意識して作成する。次に、そのアルゴリズムを基礎として、MPI並列計算用のQR分解法であるAll Reduce アルゴリズムを実装する。列フルランクでない行列については、ピボット選択付QR分解の後、特異値分解を用いてノルム最小二乗解を求めるのが一般的であったが、近年、それに代わるより簡便な新しい手法が提案されており、この授業では、その手法を実装する。さらに、作成した逐次計算のコードをOpenMPの技法を用いた並列計算のコードへと拡張する。

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

到達目標 統計の基礎事項である最小二乗法についてその概念や利用法を理解する。加えて、高速な逐次計算プログラムを作成する技法と並列計算技法を理解する。マルチコアCPUを搭載する計算機における並列計算技法であるOpenMPと、分散メモリ型並列計算機における並列計算技法であるMPIについて、その利用法を習得することを到達目標とする。
授業計画と内容 ・数値計算と統計計算 (2回)
計算科学の重要な手法である数値解析・数値計算の基礎について講述する。
線形代数の知識について復習した後、計算機で統計計算を行う上で重要となるアルゴリズムを解説する。特に、連立一次方程式の解法であるLU分解、最小二乗法において基礎となるQR分解について解説する。

・逐次計算の高速化(1回)
計算機アーキテクチャの説明、キャッシュの有効活用、データの再利用、さらに演算器の有効活用、効率的なプログラムを作成する上での注意事項などハイパフォーマンスコンピューティングという分野の基本的な内容を解説する。

・OpenMP 入門(2回)
OpenMP並列プログラミングの基本的な考え方と技法について解説する。簡単な課題を用いて実習を行う。

・MPI入門(2回)
MPI並列プログラミングの基本的な考え方と技法について解説する。簡単な課題を用いて実習を行う。

・最小二乗法を行うためのC言語によるコードの作成 (8回)
最小二乗法については、列フルランク行列の場合には、QR分解によって計算可能である。よって、始めに、列フルランク行列の場合を仮定し、QR分解を行うための逐次計算のコードを、「逐次計算の高速化」の内容を意識して作成する。次に、そのアルゴリズムを基礎として、MPI並列計算用のQR分解法であるAll Reduce アルゴリズムを実装する。
列フルランクでない行列については、ピボット選択付QR分解の後、特異値分解を用いてノルム最小二乗解を求めるのが一般的であったが、近年、それに代わるより簡便な新しい手法が提案されており、この授業では、その手法を実装する。さらに、作成した逐次計算のコードをOpenMPの技法を用いた並列計算のコードへと拡張する。

履修要件 ・課題実習では、学術情報メディアセンターのスーパーコンピュータを使用します。情報学研究科に所属の学生は事前に取得しているアカウントを使用します。他研究科履修生については本演習用に必要に応じてアカウントを配布します。
・実習用端末として、ノート型PCを持参してください。持参できるノート型PCがない場合には教員に申し出てください。

Contact

〒606-8315 京都市左京区吉田近衛町69 近衛館202, 301, 302号室
Tel. 075-753-9691
E-mail : contact@ds.k.kyoto-u.ac.jp