IS2200 Parallel Computer Systems 7.5 credits

Parallella datorsystem

Since a few years back, programming means programming for parallel computers. Therefore, this course is essential for anyone who needs to write future-proof software, software which will continue to execute faster with next generation of hardware. Previously, the next generation of hardware meant higher clock frequency and higher performance for all programs. Now it means more parallel compute cores and a wider range of different cores.

Starting from a threads level perspective, this course will give you insight on the use and implementation of modern parallel computing frameworks, modern parallel computer architectures and tools for using them. It is not a course about supercomputers and traditional HPC programming, although supercomputer users should find it interesting as well.

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 *

  • Structured parallel programming using parallel patterns and modern parallel programming frameworks
  • Implementation of parallel programming frameworks
  • Fundamental parallel computer architecture and their effect on performance. Cache coherence, implementation of synchronization primitives, memory models etc.
  • Heterogeneous parallel architectures and programming models for heterogeneous systems (e.g. OpenCL/CUDA, accelerator programming)
  • Performance models and tools. Race detectors, Parallel performance analyzers.

Intended learning outcomes *

The goals of this course is that the student should:

  • understand and be competent in formulating problems for parallel execution,
  • have knowledge about the principles of the design of modern parallel computer systems, and
  • understand how the performance of a parallel computer is affected by:
    - the particular system architecture,
    - the partitioning of an application and the programming model

Course Disposition

Flipped classroom lectures. All lecture material is given on the web with quizzes to be done at home or in class followed by discussions on quiz results and problem oriented lecturing.

Literature and preparations

Specific prerequisites *

Previous course in basic programming with threads and/or processes. E.g. ID1217 at KTH.

Recommended prerequisites

Basic knowledge in computer organization and programming with threads. Solid programming knowledge. This is for example given through courses IS1200 Computer hardware engineering, and ID1217 Concurrent programming.

Equipment

Access to own computer (preferably x86-64 Linux) computer with KTH IP-number.

Literature

Bestäms en månad före kursstart och annonseras på kursens hemsida. Målet är att all kurslitteratur ska vara tillgänglig på webben antingen från publika källor eller via KTH:s bibliotek.

To be determined at course web site one month before start of the course. The aim is to have all course literature available from open or KTH Library sources.

Examination and completion

Grading scale *

A, B, C, D, E, FX, F

Examination *

  • PRO1 - Projedt, 3.0 credits, Grading scale: A, B, C, D, E, FX, F
  • TEN1 - Examination, 4.5 credits, Grading scale: A, B, C, D, E, FX, 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.

Written exam 4,5 hp.
Hand-in assignment 3 hp.

Other requirements for final grade *

Completed written exam and hand-in assignment.

The hand-in assignment may contain one or more of the following components:

  • In-class participation
  • Home-work assignments
  • Programming project with written report
  • Oral presentation
  • Peer assessment

Opportunity to complete the requirements via supplementary examination

No information inserted

Opportunity to raise an approved grade via renewed examination

No information inserted

Examiner

Mats Brorsson

Further information

Course web

Further information about the course can be found on the Course web at the link below. Information on the Course web will later be moved to this site.

Course web IS2200

Offered by

EECS/Computer Science

Main field of study *

No information inserted

Education cycle *

Second cycle

Add-on studies

IS2202 Computer Systems Architecture.

Degree projects in computer systems.

Contact

Mats Brorsson

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.