開放式課程>>開放課程: 新增課程

課程列表: 新增課程

10701 工程
平行程式
周志遠

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

 

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

 
 

【指定用書Text Books 
      

1.


Parallel Programming
Techniques and applications Using Networked Workstations and Parallel Computers, Barry Wilkinson and Michael Allen, Prentice Hall, 1999. 

2.


Parallel Programming in C with MPI and OpenMP, Michael J. Quinn, McGraw- Hill, 2003. 

3. Intel Multi-Core Programming 

   

 

【參考書籍References

1.

Documentation
 (PVM, MPI, Cilk, Pthread, TreadMark, SAM) 

2. 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 

 

 

 

圖片上傳中...