1st  Thematic CERN School of Computing 2013
3-7 June 2013, Split, Croatia
 

tCSC2013 Parallelism Theme

Lecturer:
Hans Pabst

 

TBW

 

Parallelism Theme

Session

Description

Lecturer

Lecture 1

Introduction
This lecture motivates multicore parallelism with focus on energy consumption, and connects to the various sources of parallelism in today's hardware. The audience will learn how to calculate the peak performance of common hardware such as a multi-socket CPU system as well GPGPU hardware. With the sources of hardware parallelism in mind, the lecture introduces how performance scales to a larger level. The software aspect starts from an operating system's point of view and continues with parallel patterns that are used to extract and express parallelism. This guides into parallel programming and actual programming languages. This continues into parallelism issues and tools that help mastering these problems. In the last part of the lecture, the Pthreads library as a foundation of multicore programming is introduced which includes a discussion of task scheduling and synchronization. The lecture closes with a motivation of higher level programming models.

Hans Pabst

Lecture 2

OpenMP and Cilk Plus
This lecture thoroughly introduces OpenMP as a parallel programming standard. The lecture motivates its use in scientific computing, but also covers task parallelism and even recent additions in OpenMP 4.0. Towards the end of the lecture, Cilk Plus is introduced as another compiler-based programming model. Cilk Plus is given as a reference that focuses on task scheduling and lock-free programming. Some more advanced topics such as serial elision and hyper-objects are touched as time permits. The lecture closes with a discussion of each models strengths and connects back to the Pthreads foundation.

Hans Pabst

Lecture 3

C++11 and TBB
This lecture thoroughly introduces Intel TBB as a library-based programming model. Due to its focus on C++, new parallelism aspects of C++11 such as the memory coherence model are introduced. This part also connects back to the foundations of parallelism where parallel patterns, tasks, and scheduling have been introduced. The lecture continues with performance tuning aspects, and reiterates parallelism issues with practical examples on concurrent data structures as well as general synchronization primitives. The lecture continues with a pattern that helps to extract parallelism on a function level, and closes with an outlook on message-driven programming.

Hans Pabst

Exercise 1

TBW
TBW.

Hans Pabst

Exercise 2

TBW
TBW.

Hans Pabst

Exercise 3

TBW
TBW.

Hans Pabst

Prerequisite

and

References

Desirable Prerequisite

  • TBW

  • TBW

 

 



   Efficient computing

   Data oriented design

   Memory programming

   Parallelism

   Acceleration


    Presentations by student



 

Copyright CERN

Print version