平行程式設計
Parallel Programming
| 節 | 週三 |
|---|---|
7 15:30–16:20 | 平行程式設計 ED713(光復) 3 節連堂 |
8 16:30–17:20 | |
9 17:30–18:20 |
* 根據陽明交大上課時間表所列
This course aims at the training of programming with multiple processing units for high-performance applications. Two different kinds of parallel architectures including shared-memory (multi-core) and distributed-memory (multi-machine) systems are covered. For multi-core programming, we will introduce Pthread, Open Multi-Processing (OpenMP) and Compute Unified Device Architecture (CUDA) for parallel programming. For multi-machine programming, we mainly focus Message Passing Interface (MPI) and Map/Reduce if time permits. Various parallel architectures, programming models, programming techniques, and applications are also covered in lectures. Meanwhile, extensive in-class machine laboratories are required in this course.
本課程考量設備容量之限制故有設立修課資格優先權與名額上限 === 20170913(三) 第一堂上課請務必出席 下午3:40我們將會依照優先權順序開始登記修課資格 (亦即在線上處理本課程之加退選事宜) 並且當天會有課堂程式鑑定考試 通過者才具備資格選修 請欲選課同學務必準時出席,不便之處尚請見諒~
無備註
教師未提供此項資料
4 Programming Assignments:20% Midterm Exam:25% Finally Exam:25% Term Project:30%
Introduction to Parallel Computing (Architectures and Algorithms)
The main purpose of the topic is to give a solid overview of the important aspects of parallel computer architectures that play a role for parallel programming and the development of efficient parallel programs.
- 講授:
- 6
Shared Memory Programming (Pthread and OpenMP)
This topic considers the development of parallel programs for shared address spaces and describes Pthread and OpenMP techniques to obtain efficient parallel programs. Many examples help to understand the relevant concepts and to avoid common programming errors that may lead to low performance or may cause problems like deadlocks or race conditions.
- 講授:
- 12
- 實作:
- 6
Distributed Shared Memory Programming with MPI
This topic considers the development of parallel programs for distributed address spaces. In particular, a detailed description of Message Passing Interface (MPI) is given, which is by far the most popular programming environment for distributed address spaces. Important features and library functions of MPI are also covered.
- 講授:
- 6
- 實作:
- 6
Parallel Program Development
- 講授:
- 6
Massively parallel (CUDA) programming
The topic describes the architecture of GPUs and concentrates on the programming environment CUDA (Compute Unified Device Architecture) from NVIDIA. A short overview of OpenCL is also given in this topic.
- 講授:
- 12
- 實作:
- 9
| 週次 | 主題 |
|---|---|
| 第 1 週 | Syllabus and Screening Programming Test 2017/09/13 |
| 第 2 週 | Introduction to Parallel Programming and their Architecture 2017/09/20 |
| 第 3 週 | Pthread Programming (Part 1) 2017/09/27 |
| 第 4 週 | 中秋節國定假日 2017/10/04 |
| 第 5 週 | Pthread Programming (Part 2) 2017/10/11 |
| 第 6 週 | OpenMP Programming (Part 1) 2017/10/18 |
| 第 7 週 | OpenMP Programming (Part 2) 2017/10/25 |
| 第 8 週 | Midterm Review - nBody 2017/11/01 |
| 第 9 週 | Midterm Exam (machine test) 2017/11/08 |
| 第 10 週 | MPI Programming (Part 1) 2017/11/15 |
| 第 11 週 | MPI Programming (Part 2) 2017/11/22 |
| 第 12 週 | Parallel Program Development (Part 1) 2017/11/29 |
| 第 13 週 | Parallel Program Development (Part 2) 2017/12/06 |
| 第 14 週 | CUDA/GPU Programming (Part 1) 2017/12/13 |
| 第 15 週 | CUDA/GPU Programming (Part 2) 2017/12/20 |
| 第 16 週 | CUDA/GPU Programming (Part 3) 2017/12/27 |
| 第 17 週 | CUDA/GPU Programming (Part 4) 2018/01/03 |
| 第 18 週 | Project Presentation 2018/01/10 |
1.(Reference) Parallel Programming for Multicore and Cluster Systems, Thomas Rauber and Gudula Runger, 1st Edition, Springer-Verlag, 2010 2.(Reference) Parallel Programming in C with MPI and OpenMP, Michael J. Quinn, McGraw-Hill, 2003. 3.(Reference) An Introduction to Parallel Programming, Peter Pacheco, Morgan Kaufmann Publishers Inc., 2012. 4.Other supplementary materials from Intel, NVIDIA and etc.
- 地點
- ED700
- 時間
- Office Hours: Wednesdays 13:30-15:20
- 聯絡方式
- email: opwen@g2.nctu.edu.tw / phone: ext 31273
