Vector Fabrics Vector Fabrics Blog RSS

Multicore Programming in C and C++

3 day training

Learn how to find parallelization opportunities and how to implement them.

Nowadays all PCs and many tablets and phones are using multicore processors. Unfortunately, most systems do not utilize these processors well. Many programmers consider multicore programming to be difficult. Most algorithms do not easily allow multithreading and all kinds of programming errors endanger your code’s stability. But is it truly hard to do multicore programming?

The widely acclaimed parallelization experts from Vector Fabrics teamed up with two industry training experts, Chris Simmonds of 2net and Robert Berger of Reliable Embedded Systems, to author a three day in-depth training course. You will learn how to use C and C++ in concurrent programming using various modern techniques. You will learn how to easily recognize code that has parallelization and/or vectorization opportunities and identify and work around code constructs that prevent parallelization. You will be able to prevent and correct deadlocks, false sharing and race conditions. You will write code faster and avoid common pitfalls. After this course, your applications will benefit from multicore performance.

Who should attend?

  • C/C++ programmers
  • Software architects who design software architectures with parallel execution
  • Software optimization experts

In-depth course contents

  • Day 1 "Multicore Architectures and conventional multi-threading"

    Multicore CPU architectures and their memory mechanisms, impact of multicore on throughput, processes and threads, data sharing and locking, POSIX threads, C11, profiling tools and computational complexity

  • Day 2 "Finding Parallelization Opportunities"

    Parallelization patterns, dependencies, parallelization blockers and vectorization

  • Day 3 "Parallelization without stepping into the common multicore pitfalls"

    Multithreading using OpenMP, multithreading using C++11, the dangers of CPU overcommit, special libraries and offloading.
    We end with enumerating common pitfalls for multicore software engineers

The training consists of classroom training and labs on Linux PCs.
There are at least 3 lab sessions per day, with topics like how to interpret profiler runs, recognize code patterns and apply programming patterns in various language extensions.

More information or sign up

For further information and applying for this course, please contact sales@vectorfabrics.com or call +31 40 8200960.

Pricing

The 3-day training costs €1800 per attendee, including lunches, classroom and material. All attendees receive a complimentary copy of the Darryl Gove book "Multicore Application Programming".

Next public training sessions

  • September 9-11, 2013, Eindhoven, The Netherlands
  • November 4-6, 2013, Eindhoven, The Netherlands

On-site training available upon request, also customized trainings are possible.

“We had 14 people join Vector Fabrics' one-day multicore programming workshop. After the workshop, everybody was very enthusiastic about the content and level of insight gained. For us it was the right way to understand multicore programming better.”

Frank de Roo,
Business Manager,
TOPIC Embedded Systems

“The training course was well set up and covered topics in-depth while keeping applications in mind. Thank you!”

“Very good that several experts were brought in to teach their favorite lecture parts.”

“Thanks again for the interesting course. I certainly learned a lot! I hope more courses are coming up.”

“Good mix of theory and practical. Well understandable examples.”