TOCEC
邏輯學,形上學,工程
層級: 課程資料
媒體: 影音 講義

10701平行程式Parallel Programming

2017-09-01-2030-12-30

國立清華大學 資訊工程學系 周志遠

關鍵字: 平行程式 Parallel Programming

本課程將介紹平行計算的基礎觀念和電腦系統架構,並教授針對不同平行計算環境所設計的程式語言,包括多核心系統使用的 Pthread、OpenMP, 叢集計算使用的MPI, GPU使用的CUDA, 以及分散式系統使用的MapReduce計算框架。修課同學必須使用 這些平行計算的語言和工具完成5個程式作業,並且以程式的執行效能結果作為學習的評量標準。 

 

 

課程說明
Course Description       

           本課程將介紹平行計算的基礎觀念和電腦系統架構,並教授針對不同平行計算環境所設計的程式語言,包括多核心系統使用的 PthreadOpenMP, 叢集計算使用的MPI, GPU使用的CUDA, 以及分散式系統使用的MapReduce計算框架。修課同學必須使用 這些平行計算的語言和工具完成5個程式作業,並且以程式的執行效能結果作為學習的評量標準。 

 

指定用書
Textbooks

♠ Parallel Programming– 

Techniques and applications Using Networked Workstations and Parallel Computers, Barry Wilkinson and Michael Allen, Prentice Hall, 1999. 
Parallel Programming in C with MPI and OpenMP, Michael J. Quinn, 

McGraw- Hill, 2003. 
Intel Multi-Core Programming 

      

 

參考書籍
 References

♠ Documentation

(PVM, MPI, Cilk, Pthread, TreadMark, SAM) 
Designing and Building Parallel Programs, Ian Foster, Addison Wesley, 1995. 


 
 

教學進度
Syllabus


Part IIntroduction 
      - 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 

  

前往課程 View Course
http://ocw.nthu.edu.tw/ocw/index.php?page=course&cid=231&
https://www.youtube.com/watch?v=t_q0Tajpyso&list=PLS0SUwlYe8cxqw70UHOE5n4Lm-mXFXbZT