DD3003 Parallel Computing: Theory - Hardware - Software with Special Focus on Multi-core Programming 7.5 credits

Parallella beräkningar: teori - maskinvara - programvara, med särskilt fokus på flerkärnig programmering

With the wide spread availability of multi-core systems and general-purpose graphics processing units (GPGPUs) mastering parallel computing is becoming increasingly important. At the same time high-end parallel systems are increasing in their complexity and offer unprecedented levels of parallelism. This course will provide students with the basic knowledge to understand and master the challenges of parallel computing. Multi-core architectures and programming will be emphasized.

  • Educational level

    Third cycle
  • Academic level (A-D)

  • Subject area

  • Grade scale

    P, F

Information for research students about course offerings

The course will start January 16:th 2012 and end March 12:th 2012.

Intended learning outcomes

The overall goal of the course is to give basic knowledge of the theory, hardware, and software approaches to parallel computing. Especially, hardware and software challenges and the interactions between them, as well as exposure to research challenges in this field will be emphasized.

After the course you will be able to:

  • understand the properties of different parallel architectures
  • reason about the performance of a system
  • assess the potential and limitations of parallel processing
  • chose between different parallelization techniques
  • write parallel programs on multi-core machines.

Course main content

  • Introduction to Parallelism
  • Performance Considerations
  • Parallel Architectures
    • Shared Memory
    • Scalable Multi-Processors
    • Interconnection networks
  • Parallel Programming Methods and Techniques
    • Task and Data parallelism
    • Programming for performance
    • Overview of programming techniques
  • Multi-Core programming
    • Properties of Multi-Core architectures
    • Pthreads
    • OpenMP
  • Future Directions
    • GPU, Accelerators


Recommended prerequisites

Programming experience in C or Fortran.



Requirements for final grade

Homework assignments for the first part of the program. Programming assignments and project work for the second half of the program.

Offered by

CSC/Computer Science


Erwin Laure, e-post: erwinl@kth.se


Erwin Laure <erwinl@kth.se>

Supplementary information

Target audience are interdisciplinary graduate students and researchers with needs of high performance and parallel computing.


Course syllabus valid from: Autumn 2009.
Examination information valid from: Autumn 2009.