50.049 Parallel Computing on Multicore Architectures

Home / Education / Undergraduate / Courses / 50.049 Parallel Computing on Multicore Architectures

Course Description

This course hence aims to equip students with core knowledge of multicore processor architectures and parallel computing, they will:

  • understand where is the parallelism come from based on the advances in superscalar hyperthreading hardware architectures (multicore CPUs and GPUs);
  • learn how to architect algorithms, software and solutions that can take full advantage of the latest hardware architectures;
  • understand the principles of how to design correct and efficient parallel computing software and get familiar with the tools to debug and instrument parallel computing;
  • get hands-on experience from case studies of algorithms/systems and readings from the current literature provide comparisons and contrasts.

Prerequisites

Learning Objectives

  1. Explain the key technologies (e.g., pipeline, out-of-order execution, speculation) used in processor architecture for improving performance.
  2. Learning key concepts in design issues of multi-core processors, such as memory, communication, and scheduling.
  3. Learning how one can develop software that exploits parallelism and concurrency for efficiency, including using software libraries, tools, and formal techniques for design and benchmarking.
  4. Able to develop parallel computing algorithm or system component on modern multicore hardware architectures.

Measurable Outcomes

  1. Able to understand the fundamental concepts of multicore architectures [Exam].
  2. Implement a working efficient parallel computing algorithm/system components on modern multicore architectures [Projects].
  3. Implement, optimize and test parallel algorithms and data structures [Projects, Exams].

Textbooks & Required Readings

  • Java Concurrency in Practice by Brian Goetz / Tim Peierls / Joshua Bloch / Joseph Bowbeer / David Holmes / Doug Lea, 2006
  • Parallel Programming: For Multicore and Cluster Systems Authors: Rauber, Thomas, Rünger, Gudula

Recommended Texts and Readings

  • Concurrency: State Models and Java Programming by Jeff Magee and Jeff Kramer, Wiley Second Edition.

Image Credit Freepik