Publication date : 02/09/2024

Course : C/C++, programming applications in Multicore

Practical course - 3d - 21h00 - Ref. MUC
Price : 1650 € E.T.

C/C++, programming applications in Multicore




You'll learn about multicore architectures and their programming, techniques for implementing a multithread or multiprocess approach, and languages dedicated to parallel programming. You'll also learn about data access synchronization constraints and the precautions to be taken.


INTER
IN-HOUSE
CUSTOM

Practical course in person or remote class
Disponible en anglais, à la demande

Ref. MUC
  3d - 21h00
1650 € E.T.




You'll learn about multicore architectures and their programming, techniques for implementing a multithread or multiprocess approach, and languages dedicated to parallel programming. You'll also learn about data access synchronization constraints and the precautions to be taken.


Teaching objectives
At the end of the training, the participant will be able to:
Mastering the challenges of multicore programming
Design and develop thread- and process-based applications
Master parallel programming models and available libraries
Debugging and profiling Multicore applications

Intended audience
Developers, software architects, project managers.

Prerequisites
Good knowledge of C or C++. Basic knowledge of Multicore application concepts.

Practical details
Hands-on work
Practical work will be carried out in C/C++ under Visual Studio in a Windows environment.

Course schedule

1
Introduction

  • The challenges of multicore programming.
  • Table of usable technologies: process, thread and parallelism.
  • Description of how a processor works.
  • Architecture in "Hyperthreading".
  • INTEL and AMD processor architectures.
  • NVidia architectures and APIs.
  • Shared vs. distributed memory architecture.

2
Application modeling

  • Importance of modeling aspects.
  • Parallel processing patterns.
  • Use of asynchronous mechanisms.
  • Developing a new application: precautions and modeling. Avoiding "singletons".
  • Modify an existing application in Multicore.
  • Choice of architecture: a compromise between synchronization and performance. Multiprocess/multithread choices.

3
Threads

  • Threads in an industrial application.
  • Thread scheduling.
  • Management of stacks and "call stack" in threads.
  • Multithreaded debuggers.
  • Management of synchronization objects: critical sections, Mutexes and Semaphores.
  • Develop "thread safe".
  • Thread API TBB, Clik++, C++11, boost threads, pthreads.
Hands-on work
Threads and synchronization in C/C++.

4
Process

  • Process address spaces, organization.
  • Criteria for choosing a multi-process approach.
  • Inter-process communication (IPC) techniques.
  • Multi-process debugging tools.
  • Advantages and disadvantages of multi-process techniques.
Hands-on work
Manage asynchronous processing with the C/C++ API.

5
Parallel programming

  • Contribution and objectives of parallel programming.
  • The "OpenMP" C++ library (shared memory programming).
  • The "OpenMPI" library (distributed memory programming).
  • Use GPUs on graphics cards for calculation.
  • Kits from NVidia (CUDA) and ATI.
  • The "OpenAcc" library for GPU programming.
  • The "OpenCL" library for CPU and GPU parallel programming.
Hands-on work
Parallelizing algorithms with "OpenMP" in C++. Using the OpenCL API.

6
Summary and conclusion

  • Conclusion of the techniques studied.
  • The future of C++ with multicore.


Customer reviews
4,8 / 5
Customer reviews are based on end-of-course evaluations. The score is calculated from all evaluations within the past year. Only reviews with a textual comment are displayed.
MANUEL T.
19/11/25
5 / 5

With the time available, it's hard to do better. Clear, well-structured lessons.
JULIEN G.
19/11/25
5 / 5

The teacher is very pedagogical and knows his subject very well. The course is dynamic and well structured, and the addition of practical exercises during the sessions makes a real difference to understanding the different subjects.
GUILLAUME B.
10/09/25
5 / 5

Very interesting, the subject deserves a training course of more than 3 days to delve deeper into the subject, particularly the debugging aspect.



Dates and locations
Select your location or opt for the remote class then choose your date.
Remote class

Dernières places
Date garantie en présentiel ou à distance
Session garantie

REMOTE CLASS
2026 : 11 Mar., 1 June, 16 Sep., 16 Dec.

PARIS LA DÉFENSE
2026 : 11 Mar., 1 June, 16 Sep., 16 Dec.