6.2 CONCURRENCY PLATFORMS

An alternative to these low-level do-it-yourself tools is the concurrency platform—this is a software that allows coordination, scheduling, and management of multicore resources. Examples of concurrency platforms include [55]

  • .NET ThreadingPool class [56]
  • message-passing libraries such as message passing interface (MPI) [57]
  • data-parallel programming languages such as NESL [58], Ct from RapidMind/Intel [59];
  • task parallel libraries such as Intel’s Threading Building Blocks (TBB) [60], Microsoft’s Task Parallel Library (TPL) [61], and Microsoft’s Concurrency Runtime; and
  • extensions to programming languages such as OpenMP [51], Cilk++ [50], C++ [62], and Microsoft’s Parallel Patterns Library (PPL) [63].

In the following sections, we illustrate using concurrency platforms.

Get Algorithms and Parallel Computing now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.