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 current supercomputing architectures (NUMA), 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 coding sessions in supercomputing environment (Triton cluster). Coding exercises (four major assignments in total) for Triton. 

    • Lecture materials and pre-assignments will be posted in MyCourses (Lectures section)
    • Example codes, scripts and coding exercises will be available from Aalto GitLab.
    • Zulip chat (pps23.zulip.cs.aalto.fi) for discussions and posting questions. Main venue for getting answers are the lectures and exercise sessions. Being present in the sessions is highly recommended, and it may be difficult to pass the course if you know that you cannot participate in person!

    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 example codes and solutions. Knowledge of Unix, shell scripting, and/or supercomputer architectures is a bonus. 

    Grading: is solely based on the returned exercise codes and materials. Coding exercises are returned in a specified directory in Triton and graded there.

    • File icon
      Course management slides File
      Not available unless: You belong to any group