10701 工程學群 資訊工程學系

平行程式

周志遠 教授

資訊工程學系
國立清華大學資訊工程學系  教授 
加州大學聖地牙哥分校     博士

【經歷】 國立清華大學106.109學年校傑出教學獎
【網站】 http://lsalab.cs.nthu.edu.tw/home/
【授課】 作業系統、平行程式、雲端程式設計
【專長】 分散式系統、雲端計算、高效計算、系統資源管理

News

最新公告

2023-11-28 「2023白先勇清華文學講座:文化的記憶與重建」將於年底迎來「大師月」系列課程, 由四組重量級嘉賓擔任主講,講座訊息請點入閱讀。
2023-11-20 【2023/12/8-2024/1/2教學助理教學意見調查】期中期末大爆炸,助教考卷改到炸!若您曾受惠於TA,匿名填卷表感謝,愛的鼓勵兩相悅!!
2023-11-02 【開放式課程】數學系程守慶教授複變數函數論課程,與您力挽狂瀾迎戰期末!!
2023-11-01 【2023超猛筆記】動機系筆記小達人材料力學CH1-CH14期末進補新鮮發行中!
2023-10-26 2023 NTHUOCW 〡開放式課程網站中文版操作說明!〡How to enter NTHU OCW platform?
2023-10-26 2023清華大學開放式課程 〡 授權合作、共創雙贏中.英文版 ! Authorization & Cooperation to Co-create Win-Win !
2023-10-24 ❤ 開放式課程授權合作推薦 Open Course Cooperation Recommendation ❤
2023-10-20 【2023開放式課程*超猛筆記大募集】我們深信學習不是少數人的事,而是所有人的事,敬邀您的熱血參與!!!
2023-10-18 賀 2023 未來科技獎清華共有十大技術獲獎!
2023-10-18 臺灣開放式課程暨教育聯盟領團赴加拿大參與 - 2023全球開放教育年會!
2023-10-16 2023 引領教學潮流 : 大學教授的魅力品牌之路 !
2023-10-16 【筆記分享】工程數學一〡機率與統計 上.下〡近代物理 上.工程數學一〡機率與統計 上.下〡近代物理 上.下〡熱力學,謝謝美麗與實力兼具的歐同學!
2023-09-26 9/13-12/27白先勇清華文學講座4-文化的記憶與重建〡台灣篇,敬邀您的熱情參與!
2023-09-26 【學習無藩籬─把清大老師帶回家!】
2023-09-26 教師備課一定要知道3件事分享報導 !

Syllabus

課程大綱

本課程將介紹平行計算的基礎觀念和電腦系統架構,並教授針對不同平行計算環境所設計的程式語言,包括多核心系統使用的 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 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 

  

Keyword

關鍵字

  • 平行程式
  • Introduction to Parallel Programming
  • Parallel I/O and Parallel Program Analysis
  • Synchronization Construct
  • Parallel Sorting and Pipelined Computations
  • Heterogeneous Computing
  • Parallel Programming Model on GPU

Teachers

周志遠 教授

Social Share

Details