Skip to content

Contact sales

By filling out this form and clicking submit, you acknowledge our privacy policy.

Multi-Core Programming with C++

Course Summary

The Multi-Core Programming with C++ training course is designed to create a baseline level awareness of multi-core programming.

The course begins with a look at multi-core architecture. It then moves into an examination of how to create multi-core C++ applications. Finally, the course concludes by diving into the implementation of multi-core C++ applications.

Learn a baseline level of experience with multi-core programming.
Developers that are new to or have minimal experience with embedded programming.
Software Developer
Skill Level
Targeted Topic - Workshops
4 Days
Related Technologies


Productivity Objectives
  • Design multi-core solutions.
  • Write multi-core production code.
  • Create a baseline level of multi-core experience.

What You'll Learn:

In the Multi-Core Programming with C++ training course, you'll learn:
  • Working with Multi-Core Architecture
    • Understanding multi-core architectures
    • Advantages and disadvantages
    • How to port single core solutions to multi-core solutions
    • Considerations and impacts
    • Determining if a solution would be beneficial on multi-core platform
    • VxWorks and Green Hills capabilities
    • Software lifecycle and workflow changes in a multi-core world
    • ARM, Intel, and other multi-core platforms
  • Creating Multi-core C++ Applications
    • Overview of Parallel programming concepts
    • Overview of Threading concepts
    • Thread management in the RTOS
    • Threads and Cores - how do they work together
    • Threading considerations (race conditions, deadlock, priorities, etc.)
    • Synchronization solutions: (semaphores, spinlocks, RCU etc)
    • Embedded: cache alignment
    • Threading frameworks
  • Implementing Multi-Core C++ Applications
    • Choice of threading libraries
    • Pthreads (Posix Threads)
    • OpenMP
    • Multithreading in C++/11
    • GUI: Qt and Qthreads
    • CPU scheduling
    • Memory Management in multithreading
    • Multicore/multithread: troubleshooting and debugging
    • Multicore/multithread: performance analysis
    • Common pitfalls and their fixes
      • Parallelization opportunities and blockers
      • Data corrupters
      • Parallelization and (anti-)patterns
    • Examples: number crunching.
    • Examples: consumer/producer
    • Examples: image filtering using multithreading
“I appreciated the instructor's technique of writing live code examples rather than using fixed slide decks to present the material.”


Dive in and learn more

When transforming your workforce, it's important to have expert advice and tailored solutions. We can help. Tell us your unique needs and we'll explore ways to address them.

Let's chat

By filling out this form and clicking submit, you acknowledge our privacy policy.