課程名稱 |
平行程式設計 Parallel Programming |
開課學期 |
113-1 |
授課對象 |
電機資訊學院 資訊網路與多媒體研究所 |
授課教師 |
李濬屹 |
課號 |
CSIE5213 |
課程識別碼 |
922EU1520 |
班次 |
|
學分 |
3.0 |
全/半年 |
半年 |
必/選修 |
選修 |
上課時間 |
星期五2,3,4(9:10~12:10) |
上課地點 |
資102 |
備註 |
本課程以英語授課。開學後開放研究生加選。 限學士班學生 總人數上限:50人 |
|
|
課程簡介影片 |
|
核心能力關聯 |
核心能力與課程規劃關聯圖 |
課程大綱
|
為確保您我的權利,請尊重智慧財產權及不得非法影印
|
課程概述 |
*** We welcome and encourage all sophomore students to take this course. All the necessary fundamental backgrounds will be covered. :) ***
This course offers an in-depth exploration of parallel computing, a field of increasing significance in contemporary computer science. As the number of processor cores in both server and desktop environments continues to grow, the challenge of efficiently harnessing these abundant computational resources has become paramount. The course addresses this challenge by providing students with a comprehensive understanding of parallel programming paradigms and the underlying architectures of parallel multi-core processors, including both Central Processing Units (CPUs) and Graphics Processing Units (GPUs).
The curriculum is structured to progress from fundamental concepts to advanced topics in parallel computing. Students will acquire not only software-related skills crucial for writing efficient parallel programs but also gain insights into the hardware architectures that support parallelism. This dual focus enables students to develop strategies for accelerating existing programs, optimizing the utilization of computational resources, and enhancing the computation-to-communication ratio — all critical factors in maximizing system performance.
Throughout the course, emphasis will be placed on practical applications of parallel computing principles. Students will engage with real-world scenarios that demonstrate the importance of parallel programming in addressing complex computational problems. The course will also explore current trends and future directions in parallel computing, preparing students for the evolving landscape of high-performance computing.
By the conclusion of this course, students will possess a robust foundation in parallel computing, equipped with the knowledge and skills necessary to design, implement, and optimize parallel algorithms across a variety of computational platforms. This expertise will position students at the forefront of a critical area in computer science, ready to tackle the computational challenges of the future. |
課程目標 |
The primary objectives of this course are to instruct students in understanding the concepts of parallel computing, the principles of parallel programming, and the hardware and software architectures associated with parallel computation. |
課程要求 |
*** We welcome and encourage all sophomore students to take this course. All the necessary fundamental backgrounds will be covered. :) ***
The students who intend to take this course has to possess C/C++ programming skills, as well as the background knowledge of "introduction to computers". |
預期每週課後學習時數 |
|
Office Hours |
另約時間 備註: The students can discuss with me and the TAs during the class hours, of make appointments by email. |
指定閱讀 |
Reference books (Not necessary to purchase. The course will be taught using the slides prepared by the instructor.)
- Parallel Programming: Techniques and Applications Using Networked Work- stations and Parallel Computers, second edition. By Barry Wilkinson and Mi- chael Allen, Prentice Hall, 2004
- Parallel Programming in C with MPI and OpenMP. By Michael J, Quinn, McGraw-Hill, 2003. |
參考書目 |
|
評量方式 (僅供參考) |
No. |
項目 |
百分比 |
說明 |
1. |
Assignments |
50% |
We will have several programming assignments, including Pthread, OpenMP, MPI, GPU programming, etc. |
2. |
Midterm Exam |
15% |
The midterm exam is expected to evaluate students' learning during the semester. |
3. |
Final Exam |
15% |
The final exam is expected to evaluate students' learning at the end of the semester. |
4. |
Final Project |
20% |
The students will have to work on their final projects and make a formal presentation at the end of the semester. |
|
針對學生困難提供學生調整方式 |
上課形式 |
|
作業繳交方式 |
學生與授課老師協議改以其他形式呈現 |
考試形式 |
|
其他 |
由師生雙方議定 |
|
週次 |
日期 |
單元主題 |
第1週 |
9/6 |
Modern Multicore Processors and Parallelism (1/2) |
第2週 |
9/13 |
Modern Multicore Processors and Parallelism (2/2) |
第3週 |
9/20 |
Data Parallel Execution Models and Parallel Programming Abstractions (1/2) |
第4週 |
9/27 |
Data Parallel Execution Models and Parallel Programming Abstractions (2/2) |
第5週 |
10/4 |
Communication and Message Passing Interface (MPI) (1/2) |
第6週 |
10/11 |
Communication and Message Passing Interface (MPI) (2/2) |
第7週 |
10/18 |
GPU Architectures and GPU Programming (1/3) |
第8週 |
10/25 |
Midterm Exam |
第9週 |
11/1 |
GPU Architectures and GPU Programming (2/3) |
第10週 |
11/8 |
GPU Architectures and GPU Programming (3/3) |
第11週 |
11/15 |
On-Chip Interconnection Networks (NoCs) (1/2) |
第12週 |
11/22 |
On-Chip Interconnection Networks (NoCs) (2/2) |
第13週 |
11/29 |
System Performance Evaluation & Heterogeneous Architecture (1/2) |
第14週 |
12/6 |
System Performance Evaluation & Heterogeneous Architecture (2/2) |
第15週 |
12/13 |
Final Exam |
第16週 |
12/20 |
Final Project Presentation |
|