C-C++ Multicore Application Programming @ MdS
Date: 10 - 12 March 2014
The purpose of this training is to present C-C++ shared memory multicore application programming. These languages provide access to a substantial number of multithreading programming environments and libraries, like the native threads libraries (Pthreads in Linux-Unix, Windows threads), OpenMP, the Intel Parallel Suite (Threading Building Blocks, Cilk++, ArBB), several high level libraries and, the new C++ norm that integrates multithreading in the language specification.
This training will provide a unified presentation of the basic concepts of multithreading and shared memory programming, underlining the universality of these concepts and discussing the way in which they are declined in the different programming environments. It will asses the focus, the strengths and the eventual weaknesses of the different programming environment, insisting on their complementarily as well as on their interoperability.Content:
Introduction to multithreading, overview of hardware and software technologies.
Thread creation and management
Concurrent access to shared data: the need for mutual exclusion
Thread synchronization
Memory coherence and memory consistency issues.
Task centric programming versus thread centric programming.
Comments on hybrid MPI-Multicore programming.
Numerous examples are given on the usage of TBB or Pthreads based tools in an OpenMP environment, in order to cope with parallel contexts that are not easily handled in OpenMP.Instructor
V. Alessandrini (Maison de la Simulation)Learning outcomesEnhance programmer’s capabilities in application code design.
Enhance programmer's insights on threads, not multithreading languages, by focusing on parallel and concurrent patterns that occur in real applications, and by discussing useful tricks, potential pitfalls and best practices that are largely independent of the underlying programming environment.Prerequisites
Experience in C programming
Basic knowledge of C++ programming may be helpful, but not required
Event types:
- Workshops and courses
Activity log