國立清華大學資訊工程學系 | 特聘教授 |
美國加州大學聖地牙哥分校 | 博士 |
【經歷】 | 國立清華大學106.109.112學年校傑出教學獎 |
【網站】 | http://lsalab.cs.nthu.edu.tw/home/ |
【授課】 | 作業系統、平行程式、雲端程式設計 |
【專長】 | 分散式系統、雲端計算、高效計算、系統資源管理 |
【特色】 | https://www.youtube.com/watch?v=UH0Wnwb9WX0&ab_channel=NTHUOCW |
國立清華大學資訊工程學系 | 特聘教授 |
美國加州大學聖地牙哥分校 | 博士 |
【經歷】 | 國立清華大學106.109.112學年校傑出教學獎 |
【網站】 | http://lsalab.cs.nthu.edu.tw/home/ |
【授課】 | 作業系統、平行程式、雲端程式設計 |
【專長】 | 分散式系統、雲端計算、高效計算、系統資源管理 |
【特色】 | https://www.youtube.com/watch?v=UH0Wnwb9WX0&ab_channel=NTHUOCW |
本課程將介紹平行計算的基礎觀念和電腦系統架構,並教授針對不同平行計算環境所設計的程式語言,包括多核心系統使用的 Pthread、OpenMP, 叢集計算使用的MPI, GPU使用的CUDA, 以及分散式系統使用的MapReduce計算框架。修課同學必須使用 這些平行計算的語言和工具完成5個程式作業,並且以程式的執行效能結果作為學習的評量標準。
指定用書
Textbooks
參考書籍
References
♠ | Documentation |
(PVM, MPI, Cilk, Pthread, TreadMark, SAM) | |
♠ | Designing and Building Parallel Programs, Ian Foster, Addison Wesley, 1995. |
教學進度
Syllabus
Part I | Introduction |
- Introduction to Parallel Computers - Introduction to Parallel Computing | |
Part II | Parallel Programming |
- Message-Passing Programming (MPI) - Shared Memory Programming (Pthread and OpenMP) | |
Part III | Parallel Computing Techniques |
- Embarrassingly Parallel Computations - Partitioning and Divide-and-Conquer Strategies - Pipelined Computations - Synchronous Computations - Load Balancing and Termination Detection | |
Part IV | GPU Programming |
- Heterogeneous computing - CUDA programming model - GPU Architecture & Multi-GPU - Advanced CUDA Programming & Optimization | |
Part V | Distributed Programming |
- MapReduce - Hadoop Programming |