"Introduction to High-Performance Computing" chaired by
Michael Hanke (CSC - KTH School of Computer Science and Communication)
, Erwin Laure (PDC - Center for High-Performance Computing)
, Jesper Oppelstrup (CSC - KTH School of Computer Science and Communication)
from Monday 15 August 2011
(08:00)
to Friday 26 August 2011
(18:00)
at
KTH main campus
(
E3
)
support:
summer-info@pdc.kth.se
Description:
Update: Registration starts on Monday August 15 at 08.15 in front of lecture room E3
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, 2011.
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 16th 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.
In this presentation, an overview of the computing landscape
in Sweden and internationally will be given. Also, two concrete
examples of scientific computing problems in different
disciplines will be described and the impact of models,
numerical methods, implementation and computer
architecture will be discussed.
14:15
Lab: Introduction to PDC's Environment (45')
( more information )
(Location:
Orange and Red
)
Elisabet Molin (PDC)
14:15
Machine Room Tour (2h45')
(Location:
PDC Machine Room
)
15:00
Break
15:15
Lab: Introduction to PDC's Environment (1h45')
( more information )
(Location:
Orange and Red
)
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
Break
10:15
Shared memory programming, OpenMP (1h45')
Thomas Ericsson (Chalmers)
See preceding description.
12:00
Lunch
13:15
Shared memory programming, OpenMP (45')
Thomas Ericsson (Chalmers)
See preceding description.
14:15
Lab: Programming Exercises on OpenMP (45')
( more information )
(Location:
Orange and Red
)
Niclas Jansson (KTH/CSC)
15:00
Break
15:15
Lab: Programming Exercises on OpenMP (1h45')
( more information )
(Location:
Orange and Red
)
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
Break
10:15
Code optimization (1h45')
Thomas Ericsson (Chalmers)
See preceding description.
12:00
Lunch
13:15
Lab: OpenMP Advanced Project (1h45')
( more information )
(Location:
Orange and Red
)
Niclas Jansson (KTH/CSC)
15:00
Break
15:15
Lab: OpenMP Advanced Project (1h45')
( more information )
(Location:
Orange and Red
)
GPU Architectures for Non-Graphics People (45')
( Slides )
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.
Case Study: Very large-scale brain simulations using supercomputers (45')
( Slides )
Anders Lansner (KTH/CSC)
Brain science is a rapidly growing application area for
supercomputers with a main focus on data analysis of large
volumes of data generated from measurements on the
brain and on simulations of brain dynamics. The talk will
mostly dwell on the latter aspect, first describing briefly
some structural and functional aspects of the brain and
standard methodology used in computational neuroscience
to simulate activity of neurons and networks. Then follows
some examples from our own investigations of perceptual
and memory functions of the brain using simulation models
with varying degrees of biophysical detail. Finally, our
experience from performing very large-scale simulations and
scaling of models to actual brain size on the Blue Gene
architecture will be described.
New Parallel Programming Languages (45')
( Slides )
Iris Christadler (LRZ - Leibniz-Rechenzentrum)
A programming language that is able to abstract the
peculiarities of parallel programming on a higher level and
deliver good performance and scalability will be a key to
harness the vast amount of parallelism available in current
and future high-end systems. This lecture gives an overview
of the different ways parallelism is expressed in languages
designed for -or used in- High Performance Computing. The
aim of the lecture is to give students an understanding of
the technical possibilities and limitations of those
languages. We will have a look at the way parallelism is
abstracted and briefly discuss how difficult it is to
produce efficient code by the compiler.
10:00
Break
10:15
New Parallel Programming Languages (45')
( Slides )
Iris Christadler (LRZ - Leibniz-Rechenzentrum)
11:15
Case Study: Beyond IT: the Telecom Cloud (45')
( Slides )
Andras Vajda (Ericsson)
Cloud computing is one of the key business and technology
trends impacting every aspect of the ICT industry. While the
IT industry was succesful in pushing down the cost of
computation and storage, signifcant challenges remain in
the areas of networking, SLA enforcement and security,
traditionally areas of strength for telecom companies. In
this talk we analyze the impact and opportunities of the
cloud computing paradigm for the telecommunication
companies, both as users as well as provider of cloud-based
solutions. Based on the identified opportunities, we describe
the key technological and operational innovations that can
help streamline operations of telecommunication companies
and, at the same time, generate new revenue streams
through differentiating solutions.