Introduction to High-Performance Computing
from
Monday 20 August 2012 (08:00)
to
Friday 31 August 2012 (18:00)
Monday 20 August 2012
08:30
Registration
Registration
08:30 - 09:15
Room: E3
09:15
Welcome to PDC and the Summer School
-
Erwin Laure
(
PDC
)
Michael Hanke
(
KTH
)
Welcome to PDC and the Summer School
Erwin Laure
(
PDC
)
Michael Hanke
(
KTH
)
09:15 - 10:00
Room: E3
10:00
Coffee Break
Coffee Break
10:00 - 10:15
10:15
Concepts and Algorithms for Scientific Computing
-
Björn Engquist
(
KTH and the University of Austin
)
Concepts and Algorithms for Scientific Computing
Björn Engquist
(
KTH and the University of Austin
)
10:15 - 12:00
Room: E3
12:00
Individual Lunch
Individual Lunch
12:00 - 13:00
13:15
HPC Activities at Scania
-
Mattias Chevalier
(
Scania
)
HPC Activities at Scania
Mattias Chevalier
(
Scania
)
13:15 - 14:00
Room: E3
14:00
Introduction to PDC's Environment
-
Ul Hassan Izhar
Introduction to PDC's Environment
Ul Hassan Izhar
14:00 - 14:45
Room: E3
15:00
Coffee Break
Coffee Break
15:00 - 15:15
15:15
Lab: Introduction to PDC's Environment
-
Izhar Ul Hassan
Lab: Introduction to PDC's Environment
Izhar Ul Hassan
15:15 - 16:45
Room: 4V2Röd, 4V3Ora
17:00
Picnic
Picnic
17:00 - 18:00
Tuesday 21 August 2012
09:15
High-Performance Computer Architecture
-
Erik Hagersten
(
Uppsala University
)
High-Performance Computer Architecture
Erik Hagersten
(
Uppsala University
)
09:15 - 10:00
Room: E3
10:00
Coffee Break
Coffee Break
10:00 - 10:15
10:15
High-Performance Computer Architecture
-
Erik Hagersten
(
Uppsala University
)
High-Performance Computer Architecture
Erik Hagersten
(
Uppsala University
)
10:15 - 12:00
Room: E3
12:00
Individual Lunch
Individual Lunch
12:00 - 13:00
13:00
High-Performance Computer Architecture
-
Erik Hagersten
(
Uppsala University
)
High-Performance Computer Architecture
Erik Hagersten
(
Uppsala University
)
13:00 - 15:00
Room: E3
15:00
Coffee Break
Coffee Break
15:00 - 15:15
15:15
Lab: Introduction to PDC's Environment
-
Izhar Ul Hassan
Lab: Introduction to PDC's Environment
Izhar Ul Hassan
15:15 - 17:00
Room: 4V2Röd, 4V3Ora
PDC Machine Room Tour
PDC Machine Room Tour
15:15 - 17:00
Wednesday 22 August 2012
09:15
Shared memory programming, OpenMP
-
Thomas Ericsson
(
Chalmers University
)
Shared memory programming, OpenMP
Thomas Ericsson
(
Chalmers University
)
09:15 - 10:00
Room: E3
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.
10:00
Coffee Break
Coffee Break
10:00 - 10:15
10:15
Shared memory programming, OpenMP
-
Thomas Ericsson
(
Chalmers University
)
Shared memory programming, OpenMP
Thomas Ericsson
(
Chalmers University
)
10:15 - 12:00
Room: E3
See preceding description.
12:00
Individual Lunch
Individual Lunch
12:00 - 13:00
13:15
Shared memory programming, OpenMP
-
Thomas Ericsson
(
Chalmers University
)
Shared memory programming, OpenMP
Thomas Ericsson
(
Chalmers University
)
13:15 - 14:00
Room: E3
See preceding description.
14:15
Lab: Programming Exercises on OpenMP
-
Niclas Jansson
(
CSC/NA
)
Lab: Programming Exercises on OpenMP
Niclas Jansson
(
CSC/NA
)
14:15 - 15:00
Room: 4V2Röd, 4V3Ora
15:00
Coffee Break
Coffee Break
15:00 - 15:15
15:15
Lab: Programming Exercises on OpenMP
-
Niclas Jansson
(
KTH
)
Lab: Programming Exercises on OpenMP
Niclas Jansson
(
KTH
)
15:15 - 17:00
Room: 4V2Röd, 4V3Ora
Thursday 23 August 2012
09:15
Code optimization
-
Thomas Ericsson
(
Chalmers University
)
Code optimization
Thomas Ericsson
(
Chalmers University
)
09:15 - 10:00
Room: E3
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.
10:00
Coffee Break
Coffee Break
10:00 - 10:15
10:15
Code optimization
-
Thomas Ericsson
(
Chalmers University
)
Code optimization
Thomas Ericsson
(
Chalmers University
)
10:15 - 12:00
Room: E3
See preceding description.
12:00
Individual Lunch
Individual Lunch
12:00 - 13:00
13:15
Lab: OpenMP Advanced Project
-
Niclas Jansson
(
CSC/NA
)
Lab: OpenMP Advanced Project
Niclas Jansson
(
CSC/NA
)
13:15 - 15:00
Room: 4V2Röd, 4V3Ora
15:00
Coffee Break
Coffee Break
15:00 - 15:15
15:15
Lab: OpenMP Advanced Project
-
Niclas Jansson
(
CSC/NA
)
Lab: OpenMP Advanced Project
Niclas Jansson
(
CSC/NA
)
15:15 - 17:00
Room: 4V2Röd, 4V3Ora
Friday 24 August 2012
08:30
Wrap up: OpenMP Advanced Project
-
Niclas Jansson
(
CSC/NA
)
Wrap up: OpenMP Advanced Project
Niclas Jansson
(
CSC/NA
)
08:30 - 09:00
Room: F3
09:15
GPU Architectures for Non-Graphics People
-
David Black-Schaffer
(
Uppsala University
)
GPU Architectures for Non-Graphics People
David Black-Schaffer
(
Uppsala University
)
09:15 - 10:00
Room: F3
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.
10:00
Coffee Break
Coffee Break
10:00 - 10:15
10:15
Introduction to OpenCL
-
David Black-Schaffer
(
Uppsala University
)
Introduction to OpenCL
David Black-Schaffer
(
Uppsala University
)
10:15 - 12:00
Room: F3
12:00
Individual Lunch
Individual Lunch
12:00 - 13:00
13:15
Lab: OpenCL
-
David Black-Schaffer
(
Uppsala University
)
Lab: OpenCL
David Black-Schaffer
(
Uppsala University
)
13:15 - 15:00
Room: 4V2Röd, 4V3Ora
15:00
Coffee Break
Coffee Break
15:00 - 15:15
15:15
Lab: OpenCL
-
David Black-Schaffer
(
Uppsala University
)
Lab: OpenCL
David Black-Schaffer
(
Uppsala University
)
15:15 - 17:00
Room: 4V2Röd, 4V3Ora
Saturday 25 August 2012
Sunday 26 August 2012
Monday 27 August 2012
09:15
MPI Introduction
-
Erwin Laure
(
PDC-HPC
)
MPI Introduction
Erwin Laure
(
PDC-HPC
)
09:15 - 10:00
Room: E3
10:00
Coffee Break
Coffee Break
10:00 - 10:15
10:15
MPI Basic Concepts & Point-to-Point Communication
-
Erwin Laure
(
PDC-HPC
)
MPI Basic Concepts & Point-to-Point Communication
Erwin Laure
(
PDC-HPC
)
10:15 - 12:00
Room: E3
12:00
Individual Lunch
Individual Lunch
12:00 - 13:00
13:15
Lab: MPI Part 1
-
Jonathan Vincent
(
PDC
)
Lab: MPI Part 1
Jonathan Vincent
(
PDC
)
13:15 - 15:00
Room: 4V2Röd, 4V3Ora
15:00
Coffee Break
Coffee Break
15:00 - 15:15
15:15
Lab: MPI Part 1
-
Jonathan Vincent
(
PDC
)
Lab: MPI Part 1
Jonathan Vincent
(
PDC
)
15:15 - 17:00
Room: 4V2Röd, 4V3Ora
Tuesday 28 August 2012
09:15
MPI - Collective Communication
-
Erwin Laure
(
PDC-HPC
)
MPI - Collective Communication
Erwin Laure
(
PDC-HPC
)
09:15 - 10:00
Room: E3
10:00
Coffee Break
Coffee Break
10:00 - 10:15
10:15
MPI - Intermediate MPI
-
Erwin Laure
(
PDC-HPC
)
MPI - Intermediate MPI
Erwin Laure
(
PDC-HPC
)
10:15 - 11:00
Room: E2
11:15
Performance Engineering
-
Pekka Manninen
(
CSC, Finland
)
Performance Engineering
Pekka Manninen
(
CSC, Finland
)
11:15 - 12:00
Room: E2
12:00
Individual Lunch
Individual Lunch
12:00 - 13:00
13:15
Performance Engineering
-
Pekka Manninen
(
CSC, Finland
)
Performance Engineering
Pekka Manninen
(
CSC, Finland
)
13:15 - 14:00
Room: E3
14:15
Lab: Performance Engineering
-
Pekka Manninen
(
CSC, Finland
)
Lab: Performance Engineering
Pekka Manninen
(
CSC, Finland
)
14:15 - 15:00
Room: 4V2Röd, 4V3Ora
15:00
Coffee Break
Coffee Break
15:00 - 15:15
15:15
Lab: Performance Engineering
-
Pekka Manninen
(
CSC, Finland
)
Lab: Performance Engineering
Pekka Manninen
(
CSC, Finland
)
15:15 - 17:00
Room: 4V2Röd, 4V3Ora
Project Work
-
Jesper Oppelstrup
(
KTH
)
Michael Hanke
(
KTH
)
Project Work
Jesper Oppelstrup
(
KTH
)
Michael Hanke
(
KTH
)
15:15 - 17:00
Room: 4V2Röd, 4V3Ora
Discuss your project ideas with other students, the course examiner, and tutors.
Wednesday 29 August 2012
08:30
Wrap up: Performance Engineering
-
Pekka Manninen
(
CSC, Finland
)
Wrap up: Performance Engineering
Pekka Manninen
(
CSC, Finland
)
08:30 - 09:00
Room: E3
09:15
MPI: Advanced Concepts
-
Erwin Laure
(
PDC-HPC
)
MPI: Advanced Concepts
Erwin Laure
(
PDC-HPC
)
09:15 - 10:00
Room: E3
10:00
Coffee Break
Coffee Break
10:00 - 10:15
10:30
MPI: Advanced Concepts
-
Erwin Laure
(
PDC-HPC
)
MPI: Advanced Concepts
Erwin Laure
(
PDC-HPC
)
10:30 - 11:15
Room: E3
11:15
Parallel Performance Engineering
-
Pekka Manninen
(
CSC, Finland
)
Parallel Performance Engineering
Pekka Manninen
(
CSC, Finland
)
11:15 - 12:00
Room: E3
12:00
Individual Lunch
Individual Lunch
12:00 - 13:00
13:15
Lab: Parallel Performance Engineering
-
Pekka Manninen
(
CSC, Finland
)
Lab: Parallel Performance Engineering
Pekka Manninen
(
CSC, Finland
)
13:15 - 15:00
Room: 4V2Röd, 4V3Ora
15:00
Coffee Break
Coffee Break
15:00 - 15:15
15:15
Lab: MPI Part 2
-
Jonathan Vincent
(
PDC
)
Lab: MPI Part 2
Jonathan Vincent
(
PDC
)
15:15 - 17:00
Room: 4V2Röd, 4V3Ora
Thursday 30 August 2012
09:15
Interconnection Networks
-
Michael Schliephake
(
PDC
)
Interconnection Networks
Michael Schliephake
(
PDC
)
09:15 - 10:00
Room: F3
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.
10:00
Coffee Break
Coffee Break
10:00 - 10:15
10:15
Interconnection Networks
-
Michael Schliephake
(
PDC
)
Interconnection Networks
Michael Schliephake
(
PDC
)
10:15 - 11:00
Room: F3
11:15
Software co-design and the exascale challenge
-
Mark Parsons
(
EPCC
)
Software co-design and the exascale challenge
Mark Parsons
(
EPCC
)
11:15 - 12:00
Room: F3
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.
12:00
Individual Lunch
Individual Lunch
12:00 - 13:00
13:15
Lab: MPI Part 3
-
Jonathan Vincent
(
PDC
)
Lab: MPI Part 3
Jonathan Vincent
(
PDC
)
13:15 - 15:00
Room: 4V2Röd, 4V3Ora
15:00
Coffee
Coffee
15:00 - 15:15
15:15
Lab: MPI Part 3
-
Jonathan Vincent
(
PDC
)
Lab: MPI Part 3
Jonathan Vincent
(
PDC
)
15:15 - 17:00
Room: 4V2Röd, 4V3Ora
Project Work
-
Jesper Oppelstrup
(
KTH
)
Michael Hanke
(
KTH
)
Project Work
Jesper Oppelstrup
(
KTH
)
Michael Hanke
(
KTH
)
15:15 - 17:00
Room: 4V2Röd, 4V3Ora
18:00
Summing Up Dinner
Summing Up Dinner
18:00 - 21:00
Friday 31 August 2012
09:15
Future Programming Languages
-
Stefano Markidis
(
PDC
)
Future Programming Languages
Stefano Markidis
(
PDC
)
09:15 - 10:00
Room: E3
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.
10:00
Coffee Break
Coffee Break
10:00 - 10:15
10:15
Future Programming Languages
-
Stefano Markidis
(
PDC
)
Future Programming Languages
Stefano Markidis
(
PDC
)
10:15 - 11:00
Room: E3
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.
11:15
Abstractions for processing large data sets
-
Jonas Yngvesson
(
Google
)
Abstractions for processing large data sets
Jonas Yngvesson
(
Google
)
11:15 - 12:00
Room: E3
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.
12:00
Individual Lunch
Individual Lunch
12:00 - 13:00
13:00
Open Lab and Project Work
Open Lab and Project Work
13:00 - 17:00
Room: 4V2Röd, 4V3Ora