シラバス参照

講義概要/Course Information
2020/04/28 現在

科目基礎情報/General Information
授業科目名
/Course title (Japanese)
ハイパフォーマンスコンピューティング基礎論
英文授業科目名
/Course title (English)
Fundamentals of High Performance Computing
科目番号
/Code
開講年度
/Academic year
2020年度 開講年次
/Year offered
全学年
開講学期
/Semester(s) offered
後学期 開講コース・課程
/Faculty offering the course
博士前期課程
授業の方法
/Teaching method
講義 単位数
/Credits
2
科目区分
/Category
大学院専門教育科目 - 専門科目Ⅰ
開講学科・専攻
/Cluster/Department
情報・ネットワーク工学専攻
担当教員名
/Lecturer(s)
山本 有作
居室
/Office
西4-208 Room 4-208, West 4 building
公開E-Mail
/e-mail
yusaku.yamamoto@uec.ac.jp
授業関連Webページ
/Course website
https://sites.google.com/site/yusakuyamamotolab/hpckisoron2020
更新日
/Last updated
2020/04/24 15:20:39 更新状況
/Update status
公開中
/now open to public
講義情報/Course Description
主題および
達成目標
/Topic and goals
本講義では、高性能計算を行うために不可欠な並列化プログラミングの初歩について、講義形式と演習形式を組み合わせて学習する。例題として数値シミュレーションの典型的な問題をいくつか取り上げ、並列計算の手法とともに計算結果の簡単な可視化手法についても学ぶ。本講義を受けることで、MPIによる分散メモリ環境でのプログラミング、OpenMPによる共有メモリ環境でのプログラミング、及び両者を組み合わせたハイブリッド型プログラミングの技術を習得することを目指す。

In this class, we learn the basics of parallel processing through lectures and exercises. We use numerical analysis of partial differential equations as a working example, and learn how to program them on parallel computers and how to visualize the computed results. By taking this class, the students are expected to master programming in shared-memory parallel environment using OpenMP, in distributed-memory parallel environment using MPI, and in hybrid environment using the combination of MPI and OpenMP.
前もって履修
しておくべき科目
/Prerequisites
数値解析やハイパフォーマンスコンピューティングに関連する科目の基礎知識を習得すること。ハードウェア、ソフトウェア工学についても一通りの知識を有することが望ましい。

Basic knowledge of numerical analysis and high performance computing is required. It is desirable that the student have basic knowledge on software engineering.
前もって履修しておくこ
とが望ましい科目
/Recommended prerequisites and preparation
数値計算一般、情報工学に関係する科目全般(プログラミングやネットワーク)と、基本的な数学の科目(線形代数学、微分積分学)を履修しておくことが望ましい。プログラミング言語としては、FORTRANあるいはC言語を習得していることが望ましい。

It is desirable that the students have taken lectures on information engineering (such as programming and computer network) and basic mathematics (linear algebra and calculus). It is desirable that the students have programming ability in FORTRAN or C.
教科書等
/Course textbooks and materials
MPIの習得については、P. パチェコ:「MPI並列プログラミング」(培風館、2001)を使用する。それ以外の内容については、随時資料を配布する。

As a textbook on MPI, we use "Parallel Programming with MPI" by Peter Pacheco (Morgan Kaufmann, 1996). On other topics, printed materials will be distributed in the class.
授業内容と
その進め方
/Course outline and weekly schedule
以下の内容で全15回の講義を実施する。

1. Unixの基礎
2. FORTRAN90/95入門
3. 偏微分方程式の数値解法
4. 行列計算の基礎 I(密行列の計算)
5. 行列計算の基礎 II(疎行列の計算)
6. 並列処理の基礎
7. OpenMP を用いた並列計算 I(共有メモリモデル、OpenMPの基礎)
8. OpenMP を用いた並列計算 II(行列計算の並列化)
9. MPI を用いた並列計算 I(分散メモリモデル、MPIの基礎)
10. MPI を用いた並列計算 II(集団通信、ノンブロッキング通信、性能測定)
11. MPI を用いた並列計算 III(熱伝導方程式の計算の並列化)
12. データ可視化
13. ハイブリッド並列プログラミング
14. 高性能化の手法
15. 高性能計算に関する最新トピックス

各テーマについて、講義形式で説明を行った後、クラスタ計算機を利用してプログラミング演習を行う。

なお、受講者が少ない場合は講義ではなく輪講形式とし、高性能計算に関する文献を読むこととする。

The class consists of the following 15 lessons.

1. Basics of numerical simulation
2. Numerical methods for partial differential equations (space discretization)
3. Numerical methods for partial differential equations (time discretization)
4. Basics of matrix computations
5. Using matrix libraries
6. Fundamentals of parallel processing
7. Parallel processing with OpenMP I (Basics of OpenMP)
8. Parallel processing with OpenMP I (Parallelization of matrix computations)
9. Parallel processing with MPI I (Basics of MPI)
10. Parallel processing with MPI II (Collective communication and non-blocking communication)
11. Parallel processing with MPI II (Parallelizing the solution of heat equation)
12. Visualization
13. Hybrid parallel programming
14. Techniques of high performance computing
15. Recent topics in high performance computing

Each lesson consists of lecture and programming exercise.
実務経験を活かした
授業内容
(実務経験内容も含む)
/Course content utilizing practical experience
授業時間外の学習
(予習・復習等)
/Preparation and review outside class
レポート課題により並列プログラミングの練習を行うこと。

The students are expected to practice parallel programming by working on the problems to be given in the class.
成績評価方法
および評価基準
(最低達成基準を含む)
/Evaluation and grading
最低到達目標は以下の通りである。
1) 分散メモリ型の並列計算モデルの理解とMPIの習得。
2) 共有メモリ型の並列計算モデルの理解とOpenMPの習得
3) OpenMP・MPIハイブリッド並列プログラミングと高性能化手法の習得。
評価は、講義時間中に行う演習で作成・提出したプログラム、およびレポート課題により、上記目標が達成されているかどうかを判定して評価する。

The students are expected to achieve the followings:
1) Understand the concept of distributed-memory parallel programming and can write a parallel program using MPI.
2) Understand the concept of shared-memory parallel programming and can write a parallel program using OpenMP.
3) Master hybrid parallel programming using both MPI and OpenMP and typical techniques for high performance computing.
The grade will be determined depending on the degree of achievement of these objectives. The degree of achievement will be judged from reports.
オフィスアワー:
授業相談
/Office hours
毎回の授業後に質問・相談の時間を設ける。また、Emailでの予約による質問・相談にも応じる予定である。

The students can ask questions during or after the class. Questions by email is also welcome.
学生へのメッセージ
/Message for students
計算機により自然現象を解析・予測する数値シミュレーションでは、複雑な現象を精度良く再現するために、大規模な計算を行う必要があります。そこで必要となるのが、多くのCPUを並列に動作させ、計算を高速に行う並列計算機です。本講義では、分散メモリ型と共有メモリ型という、2種類の代表的な並列計算機を取り上げ、並列化プログラミングの言語であるMPIとOpenMPを学びます。また、計算結果として得られる大量の数値データを、グラフィックにより可視化するための方法も学びます。本講義で学んだことを、ぜひ自分の研究に生かして欲しいと思います。

Recently, parallel computing is becoming more and more important as a tool for large scale numerical simulation. In this class, we learn two representative parallel programming models, namely, shared-memory programming model and distributed-memory programming model, and programming languages for each of them, namely, OpenMP and MPI. We also learn how to visualize the computed results. I hope that the students use the methodologies learned through this class in their future research.
その他
/Others
今年度は、大学閉鎖に伴う遠隔授業のため、上記のシラバスを変更し、高性能計算に関する英語文献の輪講を遠隔会議システムZoomを用いて行う。授業に関する連絡を下記のページに掲載するので確認のこと。
https://sites.google.com/site/yusakuyamamotolab/hpckisoron2020
また、受講希望者は上記の「公開E-mail」宛てに連絡すること。

In this year, due to the closing of the university, we change the syllabus above and read an English book on High Performance Computing. Details of the class will be given on the following web page.
https://sites.google.com/site/yusakuyamamotolab/hpckisoron2020
Also, the students interested in taking this course should send an email to the email address shown above.
キーワード
/Keyword(s)
並列計算、分散計算、MPI、OpenMP、可視化、数値計算法

Parallel processing, distributed processing, MPI, OpenMP, Visualization, numerical computation