News Course Articles

Parallel Programming with Multi-core Processors

Parallel Programming with Multi-core Processors




Instructor: Nick Zhang




Course Outline:


This course focuses on practical aspects of programming with multi-core processors. A few “hello-world” examples are followed by a brief introduction to multi-core processor based computer architecture. This course covers principles of parallel programming, including algorithmic techniques and programming mechanisms such as threads and message passing. You also learn how to apply principles to the real world. Upon successful completion, you should be able to write high performance parallel programs that take advantage of multiple cores in modern processors.


Course topics include: multi-core processors, parallel programming models and algorithms, and performance measurements. This course is delivered with lectures combined with programming assignments. A programming assignment is handed out at the end of each lecture and is collected at the next lecture. Programming assignment can be done in any modern programming languages, such as Java or C or C++. Java is preferred.


5 Weeks


Week 1: Introduction to Parallel Architectures and Programming

Week 2: Parallel Programming Models and Languages

Week 3: Performance Metrics

Week 4: Parallel Algorithms

Week 5: Future Trends




Java or C programming, basic knowledge of data structures and algorithms




There are 4 assignments and a capstone project as the final. Each weighs 20%. Each assignment is due one week it is assigned and has to be sent to the instructor via email. Starting from second week, students may be asked to present and discuss their homework assignment from previous week in class. The final capstone project due date will be announced in class.


Textbooks (optional)