Topic outline

  • The topic of this course is high-performance computing (HPC), namely heavy-duty computing on clusters or supercomputers with thousand(s) to million(s) of cores. You will learn about the main HPC architectures (tightly versus loosely coupled architectures), distributed memory and hybrid (distributed + shared memory) programming models, message-passing interface, threading, and massive parallelism with graphics processing units (GPUs). 

    Implementation: Pre-recorded lectures, lecture slides, pre-assignments (reading and preparing to answer questions during the lecture times), weekly exercises. 

    • Lecture materials will be posted in MyCourses (Lectures section)
    • Exercise materials are distributed and returned through the course A+ page.
    • Example codes and scripts will be available from Aalto GitLab.
    • Zulip chat (pps.zulip.cs.aalto.fi) for discussions and posting questions. Main venue for getting answers are the lectures and exercise sessions.

    Pre-requisites: Course CS-E4580 Programming Parallel Computers is recommended. Good understanding of computer programming, algorithms and data structures is necessary. Basic programming skills with C are required, which is used in the assignments. Knowledge of Unix, shell scripting, and/or supercomputer architectures is a bonus.