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
- [2019/5/30] 國立臺灣大學 天文數學館(519 室)地圖:PDF 檔,Google 版地圖
Course Handouts
- 20190715 - Class Material: https://docs.google.com/presentation/d/1BFYTvtEWWHJylfJTqCd-C0d_8aoustNbbWSBGpzMj4E/edit?usp=sharing
- http://nkl.cc.u-tokyo.ac.jp/NTU2019S/
- http://nkl.cc.u-tokyo.ac.jp/NTU2018S/ (Last Year’s Material)
- http://nkl.cc.u-tokyo.ac.jp/19s/ (Lectures at the University of Tokyo (OpenMP only)
- http://nkl.cc.u-tokyo.ac.jp/files/multicore-c.tar
- http://nkl.cc.u-tokyo.ac.jp/files/multicore-f.tar
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
- 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/
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
Recordings
● 2019/07/15
https://www.youtube.com/watch?v=6jyAIMsJipU
● 2019/07/16
01: https://www.youtube.com/watch?v=w0kF2fLT0G0
02: https://www.youtube.com/watch?v=iO3mAlrr3Pw
03: https://www.youtube.com/watch?v=CJWDEOb_LqI
04: https://www.youtube.com/watch?v=2UXBceHZYCw
05: https://www.youtube.com/watch?v=wfw-siYD3Ng
06: https://www.youtube.com/watch?v=bEq9BooALa0
07: https://www.youtube.com/watch?v=SNSoXUdCpM8
08: https://www.youtube.com/watch?v=8YhD-D4kQkY
● 2019/07/17
01: https://www.youtube.com/watch?v=NOmfPnbpV_w
02: https://www.youtube.com/watch?v=1wUiNCw7w30
03: https://www.youtube.com/watch?v=Ffe7CWHgHyw
04: https://www.youtube.com/watch?v=ALC9E7NBbKk
05: https://www.youtube.com/watch?v=LkHIcIcOWng
06: https://www.youtube.com/watch?v=MZFWWiceaj0
● 2019/07/18
01: https://www.youtube.com/watch?v=-KUbvytlFyQ
02: https://www.youtube.com/watch?v=O7w31myby-g
03: https://www.youtube.com/watch?v=HKHYndQMtGw
04: https://www.youtube.com/watch?v=ReWJieT4az0
05: https://www.youtube.com/watch?v=eCX_FGidlC4
06: https://www.youtube.com/watch?v=0dLgc9xm3Hg
● 2019/07/19
01: https://www.youtube.com/watch?v=Rre2d96hxWs
02: https://www.youtube.com/watch?v=ef_OLBpoDrc
主辦單位:科技部 國家理論科學研究中心數學組
協辦單位:東京大學情報基盤中心,科技部人工智慧技術暨全幅健康照護聯合研究中心,台灣工業與應用數學學會,臺灣大學數學系與應用數學科學研究所
主持人:王偉仲 (台灣大學應數所),林文偉 (交通大學應數系),舒宇宸 (成功大學數學系),黃聰明 (台灣師範大學數學系)
聯絡人:劉馥瑤小姐 (02-3366-8819, claireliu@ncts.ntu.edu.tw)