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

Instructor

Prof. Kengo Nakajima

Information Technology Center, The University of Tokyo, Tokyo, Japan [Web]

主辦單位科技部 國家理論科學研究中心數學組

協辦單位東京大學情報基盤中心科技部人工智慧技術暨全幅健康照護聯合研究中心台灣工業與應用數學學會臺灣大學數學系與應用數學科學研究所

主持人:王偉仲 (台灣大學應數所),林文偉 (交通大學應數系),舒宇宸 (成功大學數學系),黃聰明 (台灣師範大學數學系)

聯絡人:Mr. Hsieh (02-3366-8819, medalab.contact@gmail.com), Medical Data Analytics Laboratory (MeDA Lab, http://meda.ai)