2020-B-Nakajima Kengo
Advanced Course on Multi-Threaded Parallel Programming using OpenMP for Multicore/Manycore Systems
August 22, August 29, and September 5, 2020
Online-Course by Cisco Webex (Video recorded materials are also available)
Registration
Please register online before July 31, 2020: https://forms.gle/2ds6zmjgknQJmfZN6
(The number of participants is limited. You will receive notification if registered and enrolled successfully.)
Announcements
TBA
Course Handouts
TBA
Overview
In order to make full use of modern supercomputer systems with multicore/manycore architectures, hybrid parallel programming with message-passing and multithreading is essential. While MPI is widely used for message-passing, OpenMP for CPU and OpenACC for GPU are the most popular ways for multithreading on multicore/manycore clusters. In this 3-day course, we focus on optimization of single node performance using OpenMP for CPU. We “parallelize” a finite-volume method (FVM) code with Krylov iterative solvers for Poisson’s equation on Oakbridge-CX supercomputer (OBCX) at the University of Tokyo with 6.6 PF peak performance (https://www.cc.u-tokyo.ac.jp/en/supercomputer/obcx/system.php), which consists of the most recent CPU’s (Intel Xeon Platinum 8280 (Cascade Lake, CLX).
In this Summer School, the target application is a 3D FVM code for Poisson’s equation by ICCG Method (Conjugate Gradient (CG) iterative method with Incomplete Cholesky preconditioning), which is widely-used in practical applications. Because ICCG includes “data dependency”, where writing/reading data to/from memory could occur simultaneously, parallelization using OpenMP is not straight forward. We need certain kind of reordering in order to extract parallelism. In this 3-day course, lectures and exercise on the following issues will be provided:
Overview of Finite-Volume Method (FVM)
Kyrilov Iterative Method, Preconditioning
Implementation of the Program
Introduction to OpenMP
Reordering/Coloring Method
Parallel FVM by OpenMP
Schedule
August 22, 2020 (Sat 9:10-17:00)
09:10-10:00 Introduction
10:10-11:00 Finite Volume Method (FVM) (1/6)
11:10-12:00 Finite Volume Method (FVM) (2/6)
13:10-14:00 Finite Volume Method (FVM) (3/6)
14:10-15:00 Finite Volume Method (FVM) (4/6)
15:10-16:00 Finite Volume Method (FVM) (5/6)
16:10-17:00 Finite Volume Method (FVM) (6/6)
August 29, 2020 (Sat 9:10-17:00)
09:10-10:00 Introduction to OpenMP (1/3)
10:10-11:00 Login to OBCX System
11:10-12:00 Introduction to OpenMP (2/3)
13:10-14:00 Introduction to OpenMP (3/3)
14:10-15:00 Reordering (1/5)
15:10-16:00 Reordering (2/5)
16:10-17:00 Reordering (3/5)
September 5, 2020 (Sat 9:10-17:00)
09:10-10:00 Reordering (4/5)
10:10-11:00 Reordering (5/5)
11:10-12:00 Parallel FVM by OpenMP (1/5)
13:10-14:00 Parallel FVM by OpenMP (2/5)
14:10-15:00 Parallel FVM by OpenMP (3/5)
15:10-16:00 Parallel FVM by OpenMP (4/5)
16:10-17:00 Parallel FVM by OpenMP (5/5)
Prerequisites
Experiences in Unix/Linux (vi or emacs)
Experiences in Programming by C/C++/Fortran
Fundamental numerical algorithms (Gaussian Elimination, LU Factorization, Jacobi/Gauss-Seidel/SOR Iterative Solvers, Conjugate Gradient Method (CG))
Experiences in SSH Public Key Authentication Method (optional)
Preparation
Your PC (Windows, Mac, Linux): The latest version of Anti-Virus software and the latest OS must be installed to your PC
Cygwin (Windows Only): https://www.cygwin.com/
ParaView (for Visualization): http://www.paraview.org
FVM Codes
Instructor
Additional Materials
http://nkl.cc.u-tokyo.ac.jp/NTU2020SummerOnline/ (Available soon)
http://nkl.cc.u-tokyo.ac.jp/NTU2019S/ (Last Year’s Material)
http://nkl.cc.u-tokyo.ac.jp/20s/ (Lectures at the University of Tokyo (Online via Zoom))
主辦單位:科技部 國家理論科學研究中心數學組
協辦單位:東京大學情報基盤中心,科技部人工智慧技術暨全幅健康照護聯合研究中心,台灣工業與應用數學學會,臺灣大學數學系與應用數學科學研究所
主持人:王偉仲 (台灣大學應數所),林文偉 (交通大學應數系),舒宇宸 (成功大學數學系),黃聰明 (台灣師範大學數學系)
聯絡人:Mr. Hsieh (02-3366-8819, medalab.contact@gmail.com), Medical Data Analytics Laboratory (MeDA Lab, http://meda.ai)