FDD3003 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.

Offering and execution

Course offering missing for current semester as well as for previous and coming semesters

Course information

Content and learning outcomes

Course contents *

  • 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

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 Disposition

No information inserted

Literature and preparations

Specific prerequisites *

No information inserted

Recommended prerequisites

Programming experience in C or Fortran.


No information inserted


No information inserted

Examination and completion

If the course is discontinued, students may request to be examined during the following two academic years.

Grading scale *

P, F

Examination *

    Based on recommendation from KTH’s coordinator for disabilities, the examiner will decide how to adapt an examination for students with documented disability.

    The examiner may apply another examination format when re-examining individual students.

    Other 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.

    Opportunity to complete the requirements via supplementary examination

    No information inserted

    Opportunity to raise an approved grade via renewed examination

    No information inserted


    Erwin Laure

    Ethical approach *

    • All members of a group are responsible for the group's work.
    • In any assessment, every student shall honestly disclose any help received and sources used.
    • In an oral assessment, every student shall be able to present and answer questions about the entire assignment and solution.

    Further information

    Course web

    No information inserted

    Offered by

    EECS/Computational Science and Technology

    Main field of study *

    No information inserted

    Education cycle *

    Third cycle

    Add-on studies

    No information inserted


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

    Supplementary information

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

    Postgraduate course

    Postgraduate courses at EECS/Computational Science and Technology