Topic outline

  • General

    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: 10 contact teaching sessions and ~ similar amount of coding exercises. 

    Materials: Pre-recorded lectures, lecture slides, pre-reading, example codes and scripts. 

    • Lecture materials and pre-assignments will be posted in MyCourses (Lectures section) 
    • Example codes, scripts and coding exercises will be available from (TBA).
    • Zulip chat (TBA) for discussions and posting questions. 

    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 based on the returned exercise codes (40%), presence in the contact session teaching sessions (10%), and an exam (50%). Coding exercises are returned in a specified directory in Triton and graded there. Exam takes place in a computer class.