高度情報教育基盤ユニット(iEdu)

ユニット提供科目

  1. 現在の位置 : ホーム
  2.  
  3. ユニット提供科目-科目内容
  4.  
  5. 計算科学演習A

計算科学演習A

授業の概要・目的

本授業の目的は、大規模データに対する統計処理を通じて、高速な逐次計算プログラムを作成する技法と並列計算の初歩を学ぶことである。その目的を達成するために、本授業では、予測を行うための典型的な手法である回帰分析を行うC言語のプログラムを3種類作成する。1つは逐次計算のプログラム、1つはOpenMPを用いた並列計算のプログラム、もう1つはMPIを用いた並列計算のプログラムである。実習に先立ち、コンピュータを用いて計算を行う数値計算についての基本的な知識や、行列・線形代数の知識、回帰分析の知識、および、並列計算を行うためのOpenMPとMPIについてなど、実習に必要な事項について講義する。
【大学院横断型教育の概要・目的】具体的な題材を課題とした実習により、計算科学・並列計算の技法を実践的に学ぶことができ、学習成果の活用が期待される。特に、計算科学の技法を強く意識していなかった理系分野の大学院生が、この授業を受講することにより、新しい視点で、自分の分野の研究にアプローチできるようになる。

授業計画と内容

・数値計算と計算科学(1回)二分法やガウスの消去法を例に計算機で計算する方法について講義する
・線形代数(1回)回帰分析を行うのに必要なグラムシュミットの正規直交化法とQR分解、および、分散メモリの並列計算でQR分解を行うAllReduceアルゴリズムについて講義する
・回帰分析(1回)回帰分析と最小二乗法について講義する
・逐次計算の高速化(1回)効率的なアルゴリズム、計算機アーキテクチャとキャッシュの有効活用など高速な逐次計算を行うコツについて講義する
・OpenMP入門(1回)共有メモリ向けの並列化技法であるOpenMPについて講義する
・MPI入門(1回)
分散メモリ向けの並列化技法であるMPIについて講義する
・回帰分析を行うプログラムの作成(9回)回帰分析を行うC言語のプログラムを3種類作成する。始めに逐次計算のプログラムを作成し、それをOpenMPを用いて並列化を行ったプログラム、MPIを用いて並列化を行ったプログラムをそれぞれ作成する。

履修要件

C言語を用いて実習を行うため、C言語の文法を既に習得しているか、予習と復習を授業と並行して行うことを期待する。

成績評価の方法・基準

レポート試験(80%)および平常点(20%)により評価する。
レポート試験については、OpenMPを用いた並列計算のプログラム、MPIを用いた並列計算のプログラムの2種類を提出してもらい、正しく効率的に計算が行われているか評価する。平常点については、出席状況と質問などを通じた授業への積極的な参加を評価する。

教科書

講義資料を配布する。
教科書は特に定めない。

参考書等

(参考書)
特に定めない。

その他(授業外学習の指示・オフィスアワー等)

プログラムを作成する上で、授業時間内で行うことができなかった工夫などを実装することを期待する。
各話題について、授業時間の制約上、詳細に解説することが困難であるため、各自で図書館等を利用してより深い知識を得ることを期待する。

実習では学術情報メディアセンターのスーパーコンピュータを使用します。スーパーコンピュータのアカウントについては必要に応じて配布します。
実習用の端末としてノート型PCを持参してください。持参できるノートPCがない場合は教員に申し出てください。
オフィスアワーについては担当教員のKULASIS登録情報を参照すること。
佐藤寛之:hsato@amp.i.kyoto-u.ac.jp
關戸啓人:sekido@amp.i.kyoto-u.ac.jp
授業時間外で質問がある場合には、あらかじめ、上記のアドレスにメールをすること。

ページの先頭へ

S