This training proposes a pedagogical presentation of C-C++ shared memory multicore application programming. C++ in particular provides access to a substantial number of multithreading programming environments and libraries, like the native threads libraries (Pthreads in Linux-Unix, Windows threads) or the most recent C++11 standard threads library, a portable environment designed for performance. While the emphasis is put in OpenMP as a widely adopted standard, a broader vision of multithreading is useful to develop a clear vision of the strategic options open to developers.
The pedagogical objectives of this training are:
The training planned for 2016 puts special emphasis on two recent important developments in the multithreading area: the C++11 multithreading standard library, and the substantial extensions incorporated in the OpenMP 4.0 release.
The subjects to be developed are grouped in three categories, :
Each one of these subjects is illustrated with examples exhibiting pitfalls and best practices. A library of high level utilities - written in C++11 - that simplify the programming of delicate concurrency patterns (like control parallelism and pipelines, or point to point synchronizations among individual threads) developed by the author, is made available.
Experience in C programming and some limited knowledge of C++. Experience in advanced C++ programming is not required. The (limited) specific C++ syntax required by the C++11 threads library will be discussed when needed.
This training is based on selected subjects from a book recently published by the author (see store.elsevier.com, and search by ISBN : 9780128037614). Ex- amples and exercises are taken from the software accompanying the book (see booksite.elsevier.com/9780128037614 ).
Victor Alessandrini
Maison de la Simulation