Go to the Datasim Education BV homepage Datasim Education BV Datasim Education BV Datasim Education BV Datasim Education BV Datasim Education BV
Information request

Follow datasim on Twitter

Share this page

Multithreading and parallel design patterns master class

Course Category: 

Multi-threading Software Design - Parallel Design Patterns  - (code MC-PDP)

In this workshop we give a detailed overview of the software design process using parallel software and hardware. In particular, we concentrate on designing a complex software system by decomposing it into loosely coupled subsystems, each of which is designed and implemented using parallel design patterns. This workshop also discusses the transition from single-threaded GOF and POSA patterns to modern parallel patterns on multi-processor computers.

What do you learn and the Benefits?

The main goal of this workshop is to introduce and discuss parallel design and programming languages for modern multi-processor and multi-core computers. This is a paradigm shift from traditional object-oriented design and implementations on single-core computers:

  • Analysis/critique of current design methods.
  • Why Gamma patterns need to be extended for multithreaded applications.
  • Learning to 'think parallel'.
  • Complete overview of parallel design patterns.
  • A discussion of the full parallel software project.
  • Low-level design of multithreaded applications.
  • Multithreading libraries and functionality in C++ and C#.
  • Application areas for parallel programming and multithreading.

Course contents

Analysis of Current Design Methodology

  • Object-oriented design
  • Tightly-coupled systems and data
  • Why traditional design and parallel design are incompatible
  • Steps when designing parallel systems

Decomposition Techniques

  • Task and data decomposition
  • Task and data parallelism
  • Divide and conquer
  • Load balancing
  • Data sharing
  • Design evaluation


  • Task and data parallelism patterns
  • Divide and conquer pattern
  • Geometric decomposition
  • Pipeline
  • Event-based coordination pattern

Supporting Structures

  • SPMD pattern
  • Master/Worker
  • Loop parallelism
  • Fork/join
  • Shared queue

Implementation Mechanisms

  • Thread management
  • Synchronisation and Notification
  • Communication

Languages and Libraries

  • Boost Thread
  • OpenMP
  • C# threads
  • .NET TPL library

Application Areas

  • Data-intensive applications
  • Task-intensive applications
  • Architectural styles and relationships with multithreading

Technical software background. Knowledge of Java, C# or C++ is an advantage.

Who should attend?
This workshop is suitable for software developers, designers and architects who wish to get an in-depth overview of parallel design techniques for modern multi-core computers.

Duration, price, date, locations
Course duration 1 day
Price Euro 395.-- ex. VAT
Euro 477.95 inc. 21% VAT
Date and location Dates available on request

It is also possible to organize this course at your company premises (the in-company option). If you have any question, please contact our Datasim office.

Share this page

Contact and Profile
Registration form
Course Dates