Sponsored by
[ Events ]

Activity Search
Sort out
2018 NCTS Summer Course: Introduction to Parallel Computing (II)
9:00-12:00, 13:00-17:00, July 16 - 19, 2018
Room 440, Astronomy-Mathematics Building, NTU

Kengo Nakajima (University of Tokyo)
Tetsuya Hoshino (University of Tokyo)

Weichung Wang (National Taiwan University)
Wen-Wei Lin (National Chiao Tung University)
Yu-Chen Shu (National Cheng Kung University)
Tsung-Ming Huang (National Taiwan Normal University)

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 (http://www.cc.u-tokyo.ac.jp/system/reedbush/index-e.html), which consists of the most recent CPU’s (Intel Xeon E5-2695 v4 (Broadwell-EP)) and GPU’s (NDIVIA Tesla P100 (Pascal)).
In the winter schools in 2016, 2017 and 2018, the target application was a 3D FVM code for Poisson’s equation by Conjugate Gradient (CG) iterative method with very simple Point Jacobi preconditioner. This time our target is same FVM code, but linear equations are solved by ICCG (CG iterative method with Incomplete Cholesky preconditioning), which is more complicated, powerful and 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 
July 16, 2018 (M)
‧Finite-Volume Method (FVM)
‧Login to Reedbush System
‧Reordering (1/2)
July 17, 2018 (T)
‧Reordering (2/2)
‧Parallel FVM by OpenMP
July 18, 2018 (W)
‧Introduction to GPU Programming
‧OpenACC (1/2)
July 19, 2018 (Th)
‧OpenACC (2/2)
‧Parallel FVM by OpenACC



Poster: events_3_145180511294992955.pdf

back to list
 (C) 2018 National Center for Theoretical Sciences