2019-C-Nakajima+Hoshino

Advanced Course on Multi-Threaded Parallel Programming using OpenMP/OpenACC for Multicore/Manycore Systems

July 15-19, 2019

Room 519, Astro-Mathematics Building, National Taiwan University

Map: http://goo.gl/iutx|Transportation: https://visitorcenter.ntu.edu.tw/eng/p5-transportation.php

請在 2019/06/21 前線上註冊 : https://forms.gle/ok75k44QSrPBmQNy9

(本課程名額有限,錄取學員將另行通知。)

News

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 4-day course, we focus on optimization of single node performance using OpenMP and OpenACC for CPU and GPU. We “parallelize” a finite-volume method (FVM) code with Krylov iterative solvers for Poisson’s equation on Reedbush supercomputer at the University of Tokyo with 1.93 PF peak performance (), which consists of the most recent CPU’s (Intel Xeon E5-2695 v4 (Broadwell-EP)) and GPU’s (NDIVIA Tesla P100 (Pascal)).

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/OpenACC is not straight forward. We need certain kind of reordering in order to extract parallelism. In this 4-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/OpenACC
  • Reordering/Coloring Method
  • Parallel FVM by OpenMP/OpenACC

Schedule

July 15, 2019 (Mon 14:00-17:00) (Optional)

  • Introduction to Linux (using MacOS or Cygwin on Windows)
  • Fundamental Programming in C (using MacOS or Cygwin on Windows)
  • Fundamental Numerical Algorithms (Gaussian Elimination, LU Factorization, Jacobi/Gauss-Seidel Iterative Method)

July 16, 2019 (Tue 9:00-17:00)

  • Introduction
  • Finite-Volume Method (FVM)
  • Login to Reedbush System
  • OpenMP
  • Reordering (1/2)

July 17, 2019 (Wed 9:00-17:00)

  • Reordering (2/2)
  • Parallel FVM by OpenMP (1/2)

July 18, 2019 (Thu 9:00-17:00)

  • Parallel FVM by OpenMP (2/2)
  • Introduction to GPU Programming
  • OpenACC (1/2)

July 19, 2019 (Fri 9:00-17:00)

  • OpenACC (2/2)
  • Parallel FVM by OpenACC
  • Exercises

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

Instructors

Prof. Kengo Nakajima

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

Prof. Tetsuya Hoshino

Information Technology Center, The University of Tokyo, Tokyo, Japan

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

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

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

聯絡人:劉馥瑤小姐 (02-3366-8819, claireliu@ncts.ntu.edu.tw)