シラバス参照

講義概要/Course Information
2024/05/04 現在

科目基礎情報/General Information
授業科目名
/Course title (Japanese)
ハイパフォーマンスコンピューティング基礎論(H27年度以前入学生)
英文授業科目名
/Course title (English)
Fundamentals of High Performance Computing
開講年度
/Academic year
2019年度 開講年次
/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/home/hpckisoron
更新日
/Last update
2019/02/22 17:42:52 更新状況
/Update status
公開中
/now open to public
講義情報/Course Description
主題および
達成目標(2,000文字以内)
/Themes and goals(up to 2,000 letters)
本講義では、高性能計算を行うために不可欠な並列化プログラミングの初歩について、講義形式と演習形式を組み合わせて学習する。例題として数値シミュレーションの典型的な問題をいくつか取り上げ、並列計算の手法とともに計算結果の簡単な可視化手法についても学ぶ。本講義を受けることで、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.
前もって履修
しておくべき科目(1,000文字以内)
/Prerequisites(up to 1,000 letters)
数値解析やハイパフォーマンスコンピューティングに関連する科目の基礎知識を習得すること。ハードウェア、ソフトウェア工学についても一通りの知識を有することが望ましい。

Basic knowledge of numerical analysis and high performance computing is required. It is desirable that the student have basic knowledge on software engineering.
前もって履修しておくこ
とが望ましい科目(1,000文字以内)
/Recommended prerequisites and preparation(up to 1,000 letters)
数値計算一般、情報工学に関係する科目全般(プログラミングやネットワーク)と、基本的な数学の科目(線形代数学、微分積分学)を履修しておくことが望ましい。プログラミング言語としては、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.
教科書等(1,000文字以内)
/Course textbooks and materials(up to 1,000 letters)
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.
授業内容と
その進め方(2,000文字以内)
/Course outline and weekly schedule(up to 2,000 letters)
以下の内容で全15回の講義を実施する。

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

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

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
成績評価方法
および評価基準
(最低達成基準を含む)
(1,000文字以内)
/Evaluation and grading
(up to 1,000 letters)
最低到達目標は以下の通りである。
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.
オフィスアワー:
授業相談(1,000文字以内)
/Office hours(up to 1,000 letters)
毎回の授業後に質問・相談の時間を設ける。また、Emailでの予約による質問・相談にも応じる予定である。

The students can ask questions during or after the class. Questions by email is also welcome.
学生へのメッセージ(1,000文字以内)
/Message for students(up to 1,000 letters)
計算機により自然現象を解析・予測する数値シミュレーションでは、複雑な現象を精度良く再現するために、大規模な計算を行う必要があります。そこで必要となるのが、多くの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
特になし。

None.
キーワード
/Keywords
並列計算、分散計算、MPI、OpenMP、可視化、数値計算法

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