Parallel Programming 2018

This is the site of my course "Parallel Programming 2018" at the department of CSIE, National Taiwan University. This course is about programming multiple processing units for performance. We will discuss two kinds of parallel architecture -- multicore CPU and multi-CPU clusters. For multicore CPU we will discuss Pthread, Open Multi-Processing (OpenMP), and OpenCL. For multi-CPU clusters we will discuss Google's MapReduce. We will discuss the architecture, programming model, programming techniques, and application characteristic for these different architectures. Extensive in-class lab sessions will be conducted.


  • 06/12/2018: There will be 15 questions in CUDA quiz, please be prepared to it.
  • 06/06/2018: CUDA 教材可在 PP2013 Materials 中找到
  • 05/20/2018: I have been informed that I need to take a medical procedure this Tuesday afternoon. The TA will guide you through the quiz and the workshop.
  • 05/17/2018: We will start on OpenCL next week (05/22). There are various materials to cover so please start early.
  • 04/24/2018: I will be away for a conference so the next meeting will be on 05/08/2018. We will cover intermediate OpenMP.
  • 04/20/2018:
    • 04/27 改至 107 教室上課,同學需自備筆電練習當日的 Workshop 題目。
    • 供同學練習用的伺服器網路位址變動,更改詳情請到台大信箱確認。
  • 04/18/2018: We will cover basic OpenMP next week. It will be a workshop just like the one for Pthread.
  • 04/16/2018: OK I guess you have already read the slides. Be prepared to explain them to the class tomorrow.
  • 04/13/2018: We will go over Mind the cache next week. Please study the slides THOROUGHLY since you will be asked to explain the performance details in these slides.
  • 04/06/2018: We will have a Pthread workshop next week. There will be a written exam first, then the workshop.
  • 03/26/2018: 伺服器帳號已開通,請到台大信箱領取帳號和密碼。如有疑問請詢問助教。
    • 確認登入後,請盡速更改密碼和權限,以免遭人盜用。
    • 禁止使用伺服器執行非課程相關程序,一經發現,將封鎖使用權限。
  • 03/23/2018: We will have our first workshop about Pthread on 04/10. You need to finish all the video before coming to class. More details in the next lecture.
  • 03/23/2018: We will finish the algorithm next week. Be prepared to write a simple task.
  • 03/20/2018: We will finish the evaluation and try to finish the algorithm today. Of course there will be a quiz; otherwise I believe that you will be disappointed.
  • 03/11/2018: We will finish the architecture and try to finish the in "evaluation" in he next meeting. Be prepared for a quiz.
  • 03/09/2018. PP2018 Quiz & workshop record sheet has been published at "Assignment" page. Please always check the sheet after the class, and contact TA if there is any problem.
  • 03/05/2018. We will finish the introduction and try to finish the architecture tomorrow. Be prepared for a quiz.
  • 02/26/2018 We will have the first meeting tomorrow (02/27). Be prepared to write a simple program in class.
  • 02/01/2018 已登記同學請於02/02開始到332拿授權碼。
  • 01/21/2018 註冊確認信已寄出。開學後請找我那授權碼。名單如下: 建議各位可以開始看 Youtube 上的影片。如果你不在名單還是想修,請 01/26 後和我聯絡。
  • 01/14/2018 想修平行程式設計的同學請在 01/22 前填表單,謝謝。
  • 01/12/2018 Creation of this site


  • Instructor
    • Pangfeng Liu, 劉邦鋒 教授
  • Lecture Videos on Youtube
  • Meeting time/place
    • 14:20 - 17:20, every Tuesday at CSIE 204
  • TA Information
    • 張逸寧, 林明璟 at Lab 332 /
    • TA Hours:
      • 張逸寧: Mon. 14:20 - 16:20
      • 林明璟: Thu. 10:30 - 12:30


  • Introduction
  • Parallel Architecture
  • Evaluation of parallel computing
  • Principles of parallel computing
  • Parallel Algorithms
  • Pthread Programming
  • OpenMP Programming
  • OpenCL Programming
  • CUDA Programming
  • Hadoop Programming