計算科学演習A
開講時期 | 2018年度 前期 |
---|---|
担当教員 | 国際高等教育院 特定講師 關戸 啓人 |
授業情報 | (群) 院横断 群 (分野(分類)) 統計・情報・データ科学系 (使用言語) 日本語 (単位数) 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回) ・MPI入門(2回) ・最小二乗法を行うためのC言語によるコードの作成 (8回) |
履修要件 | ・課題実習では、学術情報メディアセンターのスーパーコンピュータを使用します。情報学研究科に所属の学生は事前に取得しているアカウントを使用します。他研究科履修生については本演習用に必要に応じてアカウントを配布します。 ・実習用端末として、ノート型PCを持参してください。持参できるノート型PCがない場合には教員に申し出てください。 |