|
Software Design in the Many-Cores
Era
|
Session
|
Description
|
Lecturer
|
Lecture 1
|
Physics and Computing
Challenges to Experiment Software Even though
the miniaturization of transistors on chips continues like
predicted by Moore's law, computer hardware starts to face
scaling issues, so-called performance 'walls'. Probably, the
best known is the 'power wall', which limits clock
frequencies. Amongst others, a way of increasing processor
performance remains now to integrate many cores in the same
chip. At the same time, the upcoming LHC upgrade will
increase the required CPU power drastically. Both problems
challenge the current way of software design in high energy
physics (HEP). Developers in high energy physics are forced
to re-think their ways of software design and need to move
to massively parallel applications. This lecture will explain
the current HEP software design, the hardware and physics
issues that need to be tackled, and possible approaches to
achieve the required level of parallelization.
|
B.Hegner
D.Piparo
|
Lecture 2
|
Concurrent
Programming in Action I
This
and the following lecture will explain the
concepts behind various parallelization
methodologies.
First,
a theoretical introduction into threads,
thread-safety and concurrent data access
will be given. As the new C++ standard
(C++11) now provides build-in support for
parallel programming, the new features of
this standard will be shown. Finally,
concrete solutions for the theoretical
problems will be discussed.
|
B.Hegner
D.Piparo
|
Lecture 3 |
Concurrent
Programming in Action II
The
focus of this lecture lies in concurrent
programming based on the 'task model', using
TBB as implementation library. There will be
a deeper look into concurrent data access
and lock and lock-free data formats. Using
the learned concepts, we will look again at
the data challenges from lecture 1 and see,
how a future-proof software design might
look like.
|
B.Hegner
D.Piparo
|
Exercise 1
Exercise 2
|
Exercise 1 & 2
The
exercises will cover the topics of lectures
1 and 2 at a hands on basis, based on C++11
and TBB. It covers examples for the new
C++11 functionality related to threads and
thread safety. In addition there will be
examples for concurrent access to data, lock
and lock-free data structures, and task
based programming.
|
B.Hegner
D.Piparo
|
Prerequisite
and
References |
References
-
C++
Concurrency in Action Practical
Multithreading Anthony Williams
February, 2012 | 528 pages ISBN:
9781933988771
-
Intel
Threading Building Blocks: Outfitting
C++ for Multi-Core Processor
Parallelism, O'Reilly
|
|
|
|