9:00 - 17:00, February 11-14, 2019
Room 440, Astronomy-Mathematics Building, NTU
Instructor:
Kengo Nakajima (University of Tokyo)
Takahiro Katagiri (Nagoya University)
Organizers:
Weichung Wang (National Taiwan University)
Background & Purpose:
In order to make full use of modern supercomputer systems with multicore/manycore architectures, hybrid parallel programming with message-passing and multithreading is essential. MPI for message-passing and OpenMP for multithreading are the most popular ways for parallel programming on multicore/manycore clusters.
This 4-day tutorial provides essential knowledge and experiences for parallel programming using MPI and OpenMP. Hands-on exercise by the Readbush-U supercomputer at the University of Tokyo (Intel Broadwell-EP) is also given. (https://www.cc.u-tokyo.ac.jp/system/reedbush/index-e.html).
In this course, OpenMP, MPI and OpenMP/MPI Hybrid are applied to 3D Poisson equation solver by finite-volume method (FVM) with preconditioned conjugate gradient iterative method (PCG). Detailed lectures on data structure for parallel FVM, as well as fundamental trainings for MPI and OpenMP are also provided.
The 4th day of the course will be spent for lectures and hands-on on more advanced topics, such as automatic tuning (AT), and large-scale parallel computing.
預備知識 (Prerequisites)
Experiences in Unix/Linux
Experiences in emacs or vi
Experiences of programming (Fortran or C/C++)
Fundamental numerical algorithms (Gaussian Elimination, LU Factorization, Jacobi/Gauss-Seidel/SOR Iterative Solvers)
Experiences in SSH Public Key Authentication Method
相關軟體 (Software)
Windows:
Cygwin
Please make sure to install
gcc (C) or gfortran (Fortran) from “Devel”
OpenSSH from “Net”
ParaView
MacOS, UNIX/Linux
ParaView
Cygwin: https://www.cygwin.com/
ParaView: http://www.paraview.org/
Course Outline
課程內容 (Schedule and Contents)
February 11, 2019 (Mon)
09:10-10:00 Introduction
10:10-11:00 FVM code (1/3)
11:10-12:00 FVM code (2/3)
13:10-14:00 FVM code (3/3)
14:10-15:00 Using the Reedbush-U
15:10-16:00 Parallel FVM (OpenMP) (1/3)
16:10-17:00 Parallel FVM (OpenMP) (2/3)
February 12, 2019 (Tue)
09:10-10:00 Parallel FVM (OpenMP) (3/3)
10:10-11:00 Introduction to Parallel Programming
11:10-12:00 MPI Programming (1/7)
13:10-14:00 MPI Programming (2/7)
14:10-15:00 MPI Programming (3/7)
15:10-16:00 MPI Programming (4/7)
16:10-17:00 MPI Programming (5/7)
February 13, 2019 (Wed)
09:10-10:00 MPI Programming (6/7)
10:10-11:00 MPI Programming (7/7)
11:10-12:00 Parallel Data Structure (1/2)
13:10-14:00 Parallel Data Structure (2/2)
14:10-15:00 Parallel FVM (OpenMP/MPI) (1/5)
15:10-16:00 Parallel FVM (OpenMP/MPI) (2/5)
16:10-17:00 Parallel FVM (OpenMP/MPI) (3/5)
February 14, 2019 (Thu)
09:10-10:00 Parallel FVM (OpenMP/MPI) (4/5)
10:10-11:00 Parallel FVM (OpenMP/MPI) (5/5)
11:10-12:00 Advanced Topics (1/5)
13:10-14:00 Advanced Topics (2/5)
14:10-15:00 Advanced Topics (3/5)
15:10-16:00 Advanced Topics (4/5)
16:10-17:00 Advanced Topics (5/5)