Programming heterogeneous multicore systems using threading building blocks

George Russell, Paul Keir, Alastair Donaldson, Uwe Dolinsky, Andrew Richards, Colin Riley

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

1 Citation (Scopus)
28 Downloads (Pure)


Intel’s Threading Building Blocks (TBB) provide a high-level abstraction for expressing parallelism in applications without writing explicitly multi-threaded code. However, TBB is only available for shared-memory, homogeneous multicore processors. Codeplay’s Offload C++ provides a single-source, POSIX threads-like approach to programming heterogeneous multicore devices where cores are equipped with private, local memories—code to move data be- tween memory spaces is generated automatically. In this paper, we show that the strengths of TBB and Offload C++ can be combined, by implementing part of the TBB headers in Offload C++. This allows applications parallelised using TBB to run, without source-level modifications, across all the cores of the Cell BE processor. We present experimental results applying our method to a set of TBB programs. To our knowledge, this work marks the first demonstration of programs parallelised using TBB executing on a heterogeneous multicore architecture.
Original languageEnglish
Title of host publicationEuro-Par 2010
Subtitle of host publicationEuro-Par 2010 Parallel Processing Workshops
EditorsMario R. Guarracino, Frédéric Vivien, Jesper Larsson Träff, Mario Cannatoro, Marco Danelutto, Anders Hast, Francesca Perla, Andreas Knüpfer, Beniamino Di Martino, Michael Alexander
PublisherSpringer Berlin Heidelberg
Number of pages10
Volume 6586
ISBN (Electronic)978-3-642-21878-1
ISBN (Print)978-3-642-21877-4
Publication statusPublished - 2011
Externally publishedYes

Publication series

NameLecture Notes in Computer Science
PublisherSpringer International Publishing AG
ISSN (Print)0302-9743


  • multicore
  • Cell
  • parallel
  • Threading Building Blocks
  • C++
  • heterogeneous


Dive into the research topics of 'Programming heterogeneous multicore systems using threading building blocks'. Together they form a unique fingerprint.

Cite this