Parallel Programming 2020

This is the site of my course "Parallel Programming 2020" 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 architectures -- 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/25 本學期成績已結算完畢,其中A = 6.5, B = 5.5, C = 4.5, D = 3.5, 總分則是採用學校規範的等第標準, 請同學們確認一下自己的成績PP 2020 weekly exercise grade ,如果有問題請聯繫負責幫你demo的助教. 助教會在06/29送出成績。
  • 06/03 轉達訊息: 本學期為配合新冠肺炎課程措施,優良助教問卷調查將改採線上填答之方式,線上問卷調查時間為:6/8(一)上午9:00~6/12(五)晚上9:00。為提高學生填答率,將直接發送Google表單連結網址至該門修課學生之NTU信箱,每門課程之問卷連結皆不相同避免混淆。(每位學生每門課僅限作答一次) 事關助教遴選權益,煩請老師及助教們協助宣導學生上網進行問卷調查。
  • 04/24 We will discuss basic OpenMP in the coming week.
  • 04/20 More materials, cache perf perf tutorial.
  • 04/19 We will discuss cache and an instrumentation framework valgrind.
  • 04/17 The most up to date materials for this course is now available on github.
  • 04/14 Please follow the list and demo your programming homework to corresponding TA.
  • If you have any problems with the account of judgegirl, feel free to contact 林小明.
  • 04/13/2020 We will discuss caching in the lecture on 04/21/2020. Read this before coming to the class.
  • 04/10/2020 Due to security reason we will switch to Google hangouts meet next Tuesday. We will start testing at 2pm, and start the course at 2:20pm. I will send you the URL at 1:50pm by NTU email. Please note the following.
    • Since I need to admit everyone into the meeting, please change your name in your google account into Chinese, so that I can identify you as a class member.
    • For security reason I will NOT admit anyone not in the roster into the meeting.
    • Do NOT be late. It is distracting to admit students when you are lecturing.
    • Make sure your microphone is working so you can answer questions during the meeting.
    • Disable your webcam -- you do not need that,
    • Mute your microphone when you join the meeting, otherwise we will hear tens of people talking. Only turn on your microphone when you wish to speak.
  • 04/07/2020 Please enter the meeting room with your Chinese name.
  • 03/30/2020 We will go online tomorrow. I will open the meeting room at 2, and start at 2:20. Do NOT go to 204.
  • 03/30/2020 Feel free to contact Ta if you have any questions. PP 2020 weekly exercise grade .
  • 03/24/2020 Please fill out the survey.
  • 03/23/2020 Due to the fact that there are several coronavirus cases occurring in Academia Sinica, which I have close relation with, I decide to put the course online. Tomorrow we will start testing zoom. Please bring a headphone so you can use the PC in 204 for audio, or bring your own smartphone. We will meet in 204 first, then the TAs will give instructions on how to proceed the testing. Note that you need to enter your name while joining the zoom meeting, so that we can have a record of your presence. Also you you need to check into the chat window to indicate that you are online. If you have any question, please ask TAs in 204 tomorrow.
  • 03/22/2020 Due to corona virus is getting serious, we will consider the possibility of meeting online. We will try zoom this coming Monday at 3pm. The URL is
  • 02/21/2020 This course will finish in 16 weeks by extending every meeting to 3.5 hours.
  • 02/21/2020 The grades of this course will be determined as follows. Each week we will have 7 points. These could be pop quizzes and lab sessions. There will be no midterm or final exams. No grade adjustment will be made at the end of the semester.
  • 02/21/2020 Due to the large number of lab sessions, the load on TA will be very heavy. As a result this course will not admit any more students.
  • 02/20/2020 Creation of this site


  • Instructor
    • Pangfeng Liu, 劉邦鋒 教授
  • Lecture Videos on Youtube
  • Meeting time/place
    • 14:20 - 17:20, every Tuesday online
  • TA Information
    • 陳勇辰, email:
    • 陳鎰龍, email:
    • 陳則彣, email:
    • 謝雨桐, email:
    • 江昶翰, email:


  • Week 1: Introduction
  • Week 2: Parallel Architecture
  • Week 3: Evaluation of parallel computing
  • Week 4: Principles of parallel computing
  • Week 5, 6,: Parallel Algorithms
  • Week 7: Pthread Programming
  • Week 8, Mind the cache with Valgrind.
  • Week 9, 10, 11: OpenMP Programming
  • Week 12, 13, 14: OpenCL Programming
  • Week 15: CUDA Programming
  • Week 16, 16: Distributed File System, MapReduce, Hadoop Programming