Learn to develop bug-free parallel software

Training: Multicore Programming in C and C++

All new hardware is multicore.

But multicore programming is complex, so most hardware potential remains unused and/or hard-to-find bugs are introduced.

Parallelization experts at Vector Fabrics have created a training course to ease the pain.

Next training: April 11-13 in Eindhoven, The Netherlands

Quick Course Facts

  • Who should attend:
    C/C++ programmers, Software architects, Performance optimization experts.
  • Format:
    3-day course, classroom, 3 hands-on exercises per day.
  • Dates and locations:
    • Apr 11-13, 2016: Eindhoven, NL
    • May 2-4, 2016: Munich, DE
    • Jun 6-8, 2016: Leuven, BE
  • Pricing:
    € 1800,= per attendee. This includes 2 books, USB stick and lunches.
  • Custom and on-site training courses are available, all courses are taught in the English language.
Contact us >


  • learn how to recognize and implement parallelism in software
  • gain insights how to make your software architecture parallel and future proof
  • create a parallel design faster and with less bugs
  • write correct multi-threading code with less locking overhead
  • communicate more clearly about parallelism and concurrency
  • make optimal use of your available multicore hardware

"The way the processor industry is going,
is to add more and more cores,
but nobody knows how to program those things.
I mean, two, yeah; four, not really; eight, forget it."

Steve Jobs, Apple
in: NY Times,
June 2008

Prevent multicore issues from delaying your milestones

All software projects migrating to multicore systems suffer from the same stages:

  • application code cannot be built for a week
  • then it works again, but is slower than before.
  • weeks to months later, performance has improved, but there are still some impossibly hard-to-find bugs left.

It doesn’t need to be this way
By recognizing and understanding the patterns in your code, you can prevent race conditions and deadlocks. Through the use of patterns, the design time goes down, yet quality improves because common bug types can be avoided completely.

Course Contents

Day 1 "Multicore Architectures and conventional multi-threading"
  • A quick refresh on threading, sharing and locking APIs on Linux (POSIX pthreads) and Windows
  • Multicore CPU architectures and their memory mechanisms, throughput
  • How to find code hotspots using profiling tools and define computational complexity

Day 2 "Finding Parallelization Opportunities"
  • Recognizing parallelization patterns, like fork-join, map-reduce and pipeline
  • Parallelization blockers and parallelization anti-patterns
  • Vectorization using ARM NEON and Intel SSSE

Day 3 "Parallelization without stepping into the common multicore pitfalls"
  • Implement multithreading using OpenMP or C++11.
  • We end with enumerating common pitfalls for multicore software engineers
Contact us >
Slides examples

Praise from our students

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

"A very well presented and relevant course!"

"Wonderful, good work!"

"Can't think of anything that could be improved!"

"Instructor's coaching during the exercises was useful & inspiring."

"An exceptionally fine training with knowledgeable instructors/trainers."

"Very interesting training!"

The Multicore Optimization Experts

All engineers at Vector Fabrics are long-time industry experts in hardware and software optimization. With background in hardware design, operating systems, software development and algorithms, Vector Fabrics team members have all earned their optimization badges. Our experience is rooted in the harsh reality of embedded, industrial, automotive and application industries. Attend our training to find out that our combined knowledge was distilled into this unique three day course.

In addition to software optimization services and training, Vector Fabrics also develops Pareon, an unparalleled software tool to aid the user in recognizing and implementing parallelism in existing code. Vector Fabrics is a technology and thought leader in multicore programming, member of the Multicore Assocation and a valued industry partner in many pan-European academic research projects.

Jos teaching class