Introduction to High-Performance Computing

Europe/Stockholm
KTH main campus

KTH main campus

KTH main campus Valhallavägen 79
Erwin Laure (PDC - Center for High-Performance Computing), Jesper Oppelstrup (CSC - KTH School of Computer Science and Communication), Michael Hanke (CSC - KTH School of Computer Science and Communication)
Description

PDC- Center for High-Performance Computing and the KTH School of Computer Science and Communication (CSC) are organizing an introductory course in high-performance computing. This is a course within the National Graduate School in Scientific Computing (NGSSC) and is endorsed by the KTH Computational Science and Engineering Centre (KCSE) Graduate School. Both NGSSC and KCSE help sponsor the Summer School. The course is open to KTH masters students as course number DN2258. Other students, both national and international, as well as academic and industrial, are also welcome to apply.

This course will give an introduction to the skills needed to utilize high performance computing resources, including an introduction to HPC programming languages, libraries and tools, modern computer architectures, parallel algorithms, and optimization of serial and parallel programs. Case studies in various scientific disciplines will help illustrate these topics. The course consists of both lectures and guided hands-on lab experience. It carries 7.5 ECTS (European Credit Transfer and Accumulation System), where 1.5 ECTS credits are equivalent to one week's workload of 40 hours. The student receives these credits on successful completion of the post-course project. The number of seats are limited.

The course is suitable for scientist and graduate students with interest in high-performance computing. It requires good experience in programming. The course language is English.

Course registration opens on March 15, and closes June 1, 2012.

The Summer School will be held at the KTH main campus, Stockholm.

Participants will become part of the long tradition of the Summer School. This will be the 17th year it has been given. The course pages for all the previous years are online and may help give you an idea of what the course has been like.

document
    • 08:30 09:15
      Registration 45m E3

      E3

      KTH main campus

      KTH main campus Valhallavägen 79
    • 09:15 10:00
      Welcome to PDC and the Summer School 45m E3

      E3

      KTH main campus

      KTH main campus Valhallavägen 79
      Speakers: Erwin Laure (PDC), Michael Hanke (KTH)
      Example Project Report
      Slides
    • 10:00 10:15
      Coffee Break 15m
    • 10:15 12:00
      Concepts and Algorithms for Scientific Computing 1h 45m E3

      E3

      KTH main campus

      KTH main campus Valhallavägen 79
      Speaker: Björn Engquist (KTH and the University of Austin)
      Slides
    • 12:00 13:00
      Individual Lunch 1h
    • 13:15 14:00
      HPC Activities at Scania 45m E3

      E3

      KTH main campus

      KTH main campus Valhallavägen 79
      Speaker: Mattias Chevalier (Scania)
    • 14:00 14:45
      Introduction to PDC's Environment 45m E3

      E3

      KTH main campus

      KTH main campus Valhallavägen 79
      Speaker: Ul Hassan Izhar
      Slides
    • 15:00 15:15
      Coffee Break 15m
    • 15:15 16:45
      Lab: Introduction to PDC's Environment 1h 30m 4V2Röd, 4V3Ora

      4V2Röd, 4V3Ora

      KTH main campus

      KTH main campus Valhallavägen 79
      Speaker: Izhar Ul Hassan
    • 17:00 18:00
      Picnic 1h
    • 09:15 10:00
      High-Performance Computer Architecture 45m E3

      E3

      KTH main campus

      KTH main campus Valhallavägen 79
      Speaker: Erik Hagersten (Uppsala University)
      Slides
    • 10:00 10:15
      Coffee Break 15m
    • 10:15 12:00
      High-Performance Computer Architecture 1h 45m E3

      E3

      KTH main campus

      KTH main campus Valhallavägen 79
      Speaker: Erik Hagersten (Uppsala University)
      Slides
    • 12:00 13:00
      Individual Lunch 1h
    • 13:00 15:00
      High-Performance Computer Architecture 2h E3

      E3

      KTH main campus

      KTH main campus Valhallavägen 79
      Speaker: Erik Hagersten (Uppsala University)
      Slides
    • 15:00 15:15
      Coffee Break 15m
    • 15:15 17:00
      Lab: Introduction to PDC's Environment 1h 45m 4V2Röd, 4V3Ora

      4V2Röd, 4V3Ora

      KTH main campus

      KTH main campus Valhallavägen 79
      Speaker: Izhar Ul Hassan
      Lab instructions
    • 15:15 17:00
      PDC Machine Room Tour 1h 45m
    • 09:15 10:00
      Shared memory programming, OpenMP 45m E3

      E3

      KTH main campus

      KTH main campus Valhallavägen 79
      Two common ways of speeding up programs are to use processes or threads executing in parallel. The second week of the Summer School presents process-based parallel computing using MPI. In this lecture parallelization using threads will be discussed. Threads can be managed in different ways, e.g. using a low level library, like the POSIX threads library. The lecture deals with OpenMP, which is a more convenient way to use threads. OpenMP is a specification for a set of compiler directives, library routines, and environment variables that can be used to specify shared memory parallelism in Fortran and C/C++ programs. The threaded program can be executed on a shared memory computer (e.g. a multi- core processor). Typically, the iterations of a time consuming loop are shared among a team of threads, each thread working on part of the iterations. The loop is parallelized by writing a directive in the code and a compiler or a pre- processor will generate parallel code. Using short code examples, the lecture covers the most important OpenMP-constructs, how to use them and how not to use them. A few more realistic examples are presented as well.
      Speaker: Thomas Ericsson (Chalmers University)
      Slides
    • 10:00 10:15
      Coffee Break 15m
    • 10:15 12:00
      Shared memory programming, OpenMP 1h 45m E3

      E3

      KTH main campus

      KTH main campus Valhallavägen 79
      See preceding description.
      Speaker: Thomas Ericsson (Chalmers University)
    • 12:00 13:00
      Individual Lunch 1h
    • 13:15 14:00
      Shared memory programming, OpenMP 45m E3

      E3

      KTH main campus

      KTH main campus Valhallavägen 79
      See preceding description.
      Speaker: Thomas Ericsson (Chalmers University)
    • 14:15 15:00
      Lab: Programming Exercises on OpenMP 45m 4V2Röd, 4V3Ora

      4V2Röd, 4V3Ora

      KTH main campus

      KTH main campus Valhallavägen 79
      Speaker: Mr Niclas Jansson (CSC/NA)
      Lab instructions
    • 15:00 15:15
      Coffee Break 15m
    • 15:15 17:00
      Lab: Programming Exercises on OpenMP 1h 45m 4V2Röd, 4V3Ora

      4V2Röd, 4V3Ora

      KTH main campus

      KTH main campus Valhallavägen 79
      Speaker: Niclas Jansson (KTH)
    • 09:15 10:00
      Code optimization 45m E3

      E3

      KTH main campus

      KTH main campus Valhallavägen 79
      In this lecture techniques for speeding up code on a uniprocessor are presented. The lecture covers basic optimization principles such as using the memory hierarchy in an efficient way. Using short code examples, the lecture covers stride minimization, blocking, loop- fusion, loop- splitting and other approaches. The choice of programming language (Fortran or C), and compiler will be discussed. There are some hints of how to tune Matlab programs. Other topics are vector arithmetic for floating point and elementary functions, virtual memory, files and the LAPACK and BLAS libraries.
      Speaker: Thomas Ericsson (Chalmers University)
      Slides
    • 10:00 10:15
      Coffee Break 15m
    • 10:15 12:00
      Code optimization 1h 45m E3

      E3

      KTH main campus

      KTH main campus Valhallavägen 79
      See preceding description.
      Speaker: Thomas Ericsson (Chalmers University)
    • 12:00 13:00
      Individual Lunch 1h
    • 13:15 15:00
      Lab: OpenMP Advanced Project 1h 45m 4V2Röd, 4V3Ora

      4V2Röd, 4V3Ora

      KTH main campus

      KTH main campus Valhallavägen 79
      Speaker: Mr Niclas Jansson (CSC/NA)
      Lab instructions
    • 15:00 15:15
      Coffee Break 15m
    • 15:15 17:00
      Lab: OpenMP Advanced Project 1h 45m 4V2Röd, 4V3Ora

      4V2Röd, 4V3Ora

      KTH main campus

      KTH main campus Valhallavägen 79
      Speaker: Mr Niclas Jansson (CSC/NA)
    • 08:30 09:00
      Wrap up: OpenMP Advanced Project 30m F3

      F3

      KTH main campus

      KTH main campus Valhallavägen 79
      Speaker: Mr Niclas Jansson (CSC/NA)
    • 09:15 10:00
      GPU Architectures for Non-Graphics People 45m F3

      F3

      KTH main campus

      KTH main campus Valhallavägen 79
      David Black-Schaffer (Uppsala University) Today everyone is positioning GPUs for general purpose computing. They claim that you can get 10-100x speedups over conventional CPUs, and sometimes they're even right. However, to get the most out of current- (and next-) generation GPUs, one needs to understand the architectural differences and how they effect your choice of algorithm. In this talk I will cover GPU architecture in comparison to current CPUs, discuss the implications for getting good performance, and introduce OpenCL as a general-purpose programming language for accessing GPUs and CPUs today.
      Speaker: David Black-Schaffer (Uppsala University)
    • 10:00 10:15
      Coffee Break 15m
    • 10:15 12:00
      Introduction to OpenCL 1h 45m F3

      F3

      KTH main campus

      KTH main campus Valhallavägen 79
      Speaker: David Black-Schaffer (Uppsala University)
    • 12:00 13:00
      Individual Lunch 1h
    • 13:15 15:00
      Lab: OpenCL 1h 45m 4V2Röd, 4V3Ora

      4V2Röd, 4V3Ora

      KTH main campus

      KTH main campus Valhallavägen 79
      Speaker: David Black-Schaffer (Uppsala University)
    • 15:00 15:15
      Coffee Break 15m
    • 15:15 17:00
      Lab: OpenCL 1h 45m 4V2Röd, 4V3Ora

      4V2Röd, 4V3Ora

      KTH main campus

      KTH main campus Valhallavägen 79
      Speaker: David Black-Schaffer (Uppsala University)
      Lab instructions
    • 09:15 10:00
      MPI Introduction 45m E3

      E3

      KTH main campus

      KTH main campus Valhallavägen 79
      Speaker: Erwin Laure (PDC-HPC)
      Slides
    • 10:00 10:15
      Coffee Break 15m
    • 10:15 12:00
      MPI Basic Concepts & Point-to-Point Communication 1h 45m E3

      E3

      KTH main campus

      KTH main campus Valhallavägen 79
      Speaker: Erwin Laure (PDC-HPC)
      Slides
    • 12:00 13:00
      Individual Lunch 1h
    • 13:15 15:00
      Lab: MPI Part 1 1h 45m 4V2Röd, 4V3Ora

      4V2Röd, 4V3Ora

      KTH main campus

      KTH main campus Valhallavägen 79
      Speaker: Jonathan Vincent (PDC)
      Lab instructions
    • 15:00 15:15
      Coffee Break 15m
    • 15:15 17:00
      Lab: MPI Part 1 1h 45m 4V2Röd, 4V3Ora

      4V2Röd, 4V3Ora

      KTH main campus

      KTH main campus Valhallavägen 79
      Speaker: Jonathan Vincent (PDC)
    • 09:15 10:00
      MPI - Collective Communication 45m E3

      E3

      KTH main campus

      KTH main campus Valhallavägen 79
      Speaker: Erwin Laure (PDC-HPC)
      Slides
    • 10:00 10:15
      Coffee Break 15m
    • 10:15 11:00
      MPI - Intermediate MPI 45m E2

      E2

      KTH main campus

      KTH main campus Valhallavägen 79
      Speaker: Erwin Laure (PDC-HPC)
      Slides
    • 11:15 12:00
      Performance Engineering 45m E2

      E2

      KTH main campus

      KTH main campus Valhallavägen 79
      Speaker: Pekka Manninen (CSC, Finland)
      Slides
    • 12:00 13:00
      Individual Lunch 1h
    • 13:15 14:00
      Performance Engineering 45m E3

      E3

      KTH main campus

      KTH main campus Valhallavägen 79
      Speaker: Pekka Manninen (CSC, Finland)
    • 14:15 15:00
      Lab: Performance Engineering 45m 4V2Röd, 4V3Ora

      4V2Röd, 4V3Ora

      KTH main campus

      KTH main campus Valhallavägen 79
      Speaker: Pekka Manninen (CSC, Finland)
      Lab instructions
    • 15:00 15:15
      Coffee Break 15m
    • 15:15 17:00
      Lab: Performance Engineering 1h 45m 4V2Röd, 4V3Ora

      4V2Röd, 4V3Ora

      KTH main campus

      KTH main campus Valhallavägen 79
      Speaker: Pekka Manninen (CSC, Finland)
    • 15:15 17:00
      Project Work 1h 45m 4V2Röd, 4V3Ora

      4V2Röd, 4V3Ora

      KTH main campus

      KTH main campus Valhallavägen 79
      Discuss your project ideas with other students, the course examiner, and tutors.
      Speakers: Jesper Oppelstrup (KTH), Michael Hanke (KTH)
    • 08:30 09:00
      Wrap up: Performance Engineering 30m E3

      E3

      KTH main campus

      KTH main campus Valhallavägen 79
      Speaker: Pekka Manninen (CSC, Finland)
    • 09:15 10:00
      MPI: Advanced Concepts 45m E3

      E3

      KTH main campus

      KTH main campus Valhallavägen 79
      Speaker: Erwin Laure (PDC-HPC)
      Slides
    • 10:00 10:15
      Coffee Break 15m
    • 10:30 11:15
      MPI: Advanced Concepts 45m E3

      E3

      KTH main campus

      KTH main campus Valhallavägen 79
      Speaker: Erwin Laure (PDC-HPC)
    • 11:15 12:00
      Parallel Performance Engineering 45m E3

      E3

      KTH main campus

      KTH main campus Valhallavägen 79
      Speaker: Pekka Manninen (CSC, Finland)
    • 12:00 13:00
      Individual Lunch 1h
    • 13:15 15:00
      Lab: Parallel Performance Engineering 1h 45m 4V2Röd, 4V3Ora

      4V2Röd, 4V3Ora

      KTH main campus

      KTH main campus Valhallavägen 79
      Speaker: Pekka Manninen (CSC, Finland)
    • 15:00 15:15
      Coffee Break 15m
    • 15:15 17:00
      Lab: MPI Part 2 1h 45m 4V2Röd, 4V3Ora

      4V2Röd, 4V3Ora

      KTH main campus

      KTH main campus Valhallavägen 79
      Speaker: Jonathan Vincent (PDC)
      Lab instructions
    • 09:15 10:00
      Interconnection Networks 45m F3

      F3

      KTH main campus

      KTH main campus Valhallavägen 79
      Interconnect networks have large influence on the performance and efficiency of message-passing and File-I/O operations in cluster systems. The lecture presents concise information about interconnect networks in order to support the understanding of their influence and how to use it in favour of simulation applications.
      Speaker: Michael Schliephake (PDC)
    • 10:00 10:15
      Coffee Break 15m
    • 10:15 11:00
      Interconnection Networks 45m F3

      F3

      KTH main campus

      KTH main campus Valhallavägen 79
      Speaker: Michael Schliephake (PDC)
      Slides
    • 11:15 12:00
      Software co-design and the exascale challenge 45m F3

      F3

      KTH main campus

      KTH main campus Valhallavägen 79
      The next frontier of High Performance Computing is the exascale. By the early part of the 2020s we expect computers to exist that can perform 1018 calculations per second. In order to achieve this goal the systems will be incredibly complex with many millions of processor cores and complex memory and communication hierarchies. Programming such systems will be extremely challenging. This lecture will focus on the use of software co-design to prepare applications for exascale systems. It will explain how we need to use incremental and disruptive approaches to meet the many challenges posed by such systems and discuss some of the key issues we face over the next decade at the frontier of supercomputing.
      Speaker: Mark Parsons (EPCC)
      Slides
    • 12:00 13:00
      Individual Lunch 1h
    • 13:15 15:00
      Lab: MPI Part 3 1h 45m 4V2Röd, 4V3Ora

      4V2Röd, 4V3Ora

      KTH main campus

      KTH main campus Valhallavägen 79
      Speaker: Jonathan Vincent (PDC)
      Lab instructions
    • 15:00 15:15
      Coffee 15m
    • 15:15 17:00
      Lab: MPI Part 3 1h 45m 4V2Röd, 4V3Ora

      4V2Röd, 4V3Ora

      KTH main campus

      KTH main campus Valhallavägen 79
      Speaker: Jonathan Vincent (PDC)
    • 15:15 17:00
      Project Work 1h 45m 4V2Röd, 4V3Ora

      4V2Röd, 4V3Ora

      KTH main campus

      KTH main campus Valhallavägen 79
      Speakers: Jesper Oppelstrup (KTH), Michael Hanke (KTH)
    • 18:00 21:00
      Summing Up Dinner 3h
    • 09:15 10:00
      Future Programming Languages 45m E3

      E3

      KTH main campus

      KTH main campus Valhallavägen 79
      The lecture presents the current limitations of traditional programming models, such as MPI and openMP, and provides motivations to adopt new programming models for parallel computing. The potential of innovative programming models such as the Partitioned Global Address Space (PGAS) languages, and task-based programming models is discussed. Few examples of how to test on Lindgren these innovative programming models are also presented.
      Speaker: Stefano Markidis (PDC)
      Slides
    • 10:00 10:15
      Coffee Break 15m
    • 10:15 11:00
      Future Programming Languages 45m E3

      E3

      KTH main campus

      KTH main campus Valhallavägen 79
      The lecture presents the current limitations of traditional programming models, such as MPI and openMP, and provides motivations to adopt new programming models for parallel computing. The potential of innovative programming models such as the Partitioned Global Address Space (PGAS) languages, and task-based programming models is discussed. Few examples of how to test on Lindgren these innovative programming models are also presented.
      Speaker: Stefano Markidis (PDC)
    • 11:15 12:00
      Abstractions for processing large data sets 45m E3

      E3

      KTH main campus

      KTH main campus Valhallavägen 79
      At Google there is often a need to process very large data sets across many machines. Building efficient parallel processing programs is not trivial and to avoid the overhead of each engineer reinventing the wheel, Google has created several programming models to abstract away the complexities of parallelism and have the programmer concentrate on the core of his processing problem instead. I will talk mainly about the MapReduce model, how it works and the conceptual model the programmer has to work with when using it. I will also mention a bit about a more recent framework, Pregel, which is built for processing very large graph models.
      Speaker: Jonas Yngvesson (Google)
    • 12:00 13:00
      Individual Lunch 1h
    • 13:00 17:00
      Open Lab and Project Work 4h 4V2Röd, 4V3Ora

      4V2Röd, 4V3Ora

      KTH main campus

      KTH main campus Valhallavägen 79