On December 11, 2015 I gave a two hour tutorial talk on “Modern Multi-Core Architectures for Supercomputing” as part of the VSC School Seminar lecture series. This series’ goal is to push the efficiency of the codes running on the VSC clusters as well as improve the skills of the VSC School students.
My talk sets the stage for high performance computing for science in general and parallel computing in particular. The audience is supposed to have basic programming experience with C, C++ or Fortran as such it is perfectly suitable for (under)graduate students.
I start from the hardware basics where I cover the principal building blocks of modern processors, discuss memory hierarchies, pipelining and multi-core as well as multi-threaded processors. Based on those basics I move on to software aspects (frequently back-referencing to relevant hardware peculiarities), in particular discussing most common and important techniques to actually make use of the available parallel computing resources (which is the big problem we – the computational scientists – face today). Software-wise, I focus on OpenMP, vectorisation and distributed computing. Checkout the slides below.
After my talk, Karl(i) Rupp continued with another two hour talk titled “Modern Many-Core Architectures for Supercomputing”. This talk covers hardware and software aspects of graphics processing units and co-processors as well as performance modelling. You can get the talk slides here.
On January 13, 2016 Jesper Larsson Träff (TU Wien) will give a talk on “Effective MPI Programming: Concepts, Advanced Features, Dos and Don’ts“.