Experience Embedded

Professional Training, Consulting and Project Support

OpenMP: Platform-Independent Multicore Programming with C or C++

  • Content
     
  • Objectives
  • Participants
  • Requirements

The training shows you how to develop platform independent and portable multithreading/ multicore applications without having to deal with explicit thread programming. You learn how existing application code that has been developed for sequential execution is parallelized without having to change its general software architecture. You are able to design applications such that you benefit from increased performance due to additional cores, without having to adjust the application to this end.

Software developers, software architects or project managers who want to develop platform independent multithreading/multicore-applications without the need to deal with explicit thread programming.

A working knowledge of C (or C++) and a basic knowledge of multithreading systems. (Important note: This course does not support the Fortran API of OpenMP!)

Introduction: General Multicore Programming Considerations

  • CPU use scenarios
  • False sharing
  • Criteria for best performance results

Loop Parallelization

  • The directive parallel_for
  • Thread local variable
  • Private variable
  • lastprivate
  • Reduction
  • Scheduling strategies
  • static
  • dynamic
  • guided
  • runtime
  • Conditional parallelization
  • single
  • nowait
  • master
  • copyprivate

Synchronization

  • Atomic
  • Critical regions
  • Locks
  • Barriers
  • Ordered execution
  • Data consistency between threads
  • Implicit use of flush

Miscellaneous

  • Sections
  • Orphaned directives
  • Nested parallel regions
  • Dynamic thread number adjustment
  • Time measurement


The price includes lunch,

drinks, training documentation and certificate.


Information for HR

You can book up to 5 participants on one training with our online order form.
If you wish to book more participants on several trainings, please contact us!
Please also note our bonus program when booking several trainings and/or participants at once.


Information for HR

Related trainings

Embedded Multicore Microcontrollers: Practical Application
Training Code: E-µC-MULTI

Embedded C Training: Programming Methods and Tools for Embedded Applications
Training Code: E-EMB-C

Embedded C++: Object-oriented Programming for Microcontrollers with C++/EC++ and UML
Training Code: E-EC++

Embedded C++ Advanced: Object-oriented Programming for Microcontrollers with C++/EC++
Training Code: E-EC++/FOR


Related trainings

Trainings

Price *Duration
650,00 €1 day
Training code: E-OPENMP

* All prices are exclusive of applicable VAT.


> Registration form download (PDF)
> Training details as PDF

Inhouse Training

In customized workshops, we integrate your specific project tasks and our training program, considering your requirements as regards content, time, location, duration, technical environment and knowledge transfer methodology.

Please contact us for further information or an individual quotation.

> Training details as PDF

Coaching

Unsere Coaching-Angebote bieten den großen Vorteil, dass unsere Experten ihr Wissen und ihre Erfahrungen direkt in Ihren Lösungsprozess einbringen und damit unmittelbar zu Ihrem Projekterfolg beitragen.

Für Ihre Anfrage oder weiterführende Informationen stehen wir Ihnen gern zur Verfügung.

OpenMP: Platform-Independent Multicore Programming with C or C++

Content

Introduction: General Multicore Programming Considerations

  • CPU use scenarios
  • False sharing
  • Criteria for best performance results

Loop Parallelization

  • The directive parallel_for
  • Thread local variable
  • Private variable
  • lastprivate
  • Reduction
  • Scheduling strategies
  • static
  • dynamic
  • guided
  • runtime
  • Conditional parallelization
  • single
  • nowait
  • master
  • copyprivate

Synchronization

  • Atomic
  • Critical regions
  • Locks
  • Barriers
  • Ordered execution
  • Data consistency between threads
  • Implicit use of flush

Miscellaneous

  • Sections
  • Orphaned directives
  • Nested parallel regions
  • Dynamic thread number adjustment
  • Time measurement

Wishlist


No trainings