- 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
FDD3003 Parallel Computing: Theory - Hardware - Software with Special Focus on Multi-Core Programming 7.5 credits

Information per course offering
Course offerings are missing for current or upcoming semesters.
Course syllabus as PDF
Please note: all information from the Course syllabus is available on this page in an accessible format.
Course syllabus FDD3003 (Spring 2019–)Content and learning outcomes
Course contents
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.
Literature and preparations
Specific prerequisites
Recommended prerequisites
Either DD2358 or DD2356, Programming experience in C/C++, Optional: DD2360
Literature
Examination and completion
Grading scale
Examination
- EXA1 - Examination, 7.5 credits, grading scale: P, F
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.
If the course is discontinued, students may request to be examined during the following two academic years.
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.
Examiner
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 room in Canvas
Offered by
Education cycle
Supplementary information
Target audience are interdisciplinary graduate students and researchers with needs of high performance and parallel computing.