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 contribution

6 Downloads (Pure)

Abstract

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
Pages260-269
Number of pages10
Volume 6586
ISBN (Electronic)978-3-642-21878-1
ISBN (Print)978-3-642-21877-4
DOIs
Publication statusPublished - 2011
Externally publishedYes

Publication series

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

Fingerprint

Data storage equipment
Demonstrations

Keywords

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

Cite this

Russell, G., Keir, P., Donaldson, A., Dolinsky, U., Richards, A., & Riley, C. (2011). Programming heterogeneous multicore systems using threading building blocks. In M. R. Guarracino, F. Vivien, J. L. Träff, M. Cannatoro, M. Danelutto, A. Hast, F. Perla, A. Knüpfer, B. Di Martino, ... M. Alexander (Eds.), Euro-Par 2010: Euro-Par 2010 Parallel Processing Workshops (Vol. 6586, pp. 260-269). (Lecture Notes in Computer Science). Springer Berlin Heidelberg. https://doi.org/10.1007/978-3-642-21878-1_15
Russell, George ; Keir, Paul ; Donaldson, Alastair ; Dolinsky, Uwe ; Richards, Andrew ; Riley, Colin. / Programming heterogeneous multicore systems using threading building blocks. Euro-Par 2010: Euro-Par 2010 Parallel Processing Workshops. editor / Mario 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. Vol. 6586 Springer Berlin Heidelberg, 2011. pp. 260-269 (Lecture Notes in Computer Science).
@inproceedings{317be833d6d3453e909647abf8c01d4c,
title = "Programming heterogeneous multicore systems using threading building blocks",
abstract = "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.",
keywords = "multicore, Cell, parallel, Threading Building Blocks, C++, heterogeneous",
author = "George Russell and Paul Keir and Alastair Donaldson and Uwe Dolinsky and Andrew Richards and Colin Riley",
year = "2011",
doi = "10.1007/978-3-642-21878-1_15",
language = "English",
isbn = "978-3-642-21877-4",
volume = "6586",
series = "Lecture Notes in Computer Science",
publisher = "Springer Berlin Heidelberg",
pages = "260--269",
editor = "Guarracino, {Mario R. } and Vivien, {Fr{\'e}d{\'e}ric } and Tr{\"a}ff, {Jesper Larsson } and Cannatoro, {Mario } and Danelutto, {Marco } and Hast, {Anders } and Perla, {Francesca } and Kn{\"u}pfer, {Andreas } and {Di Martino}, {Beniamino } and Michael Alexander",
booktitle = "Euro-Par 2010",
address = "Germany",

}

Russell, G, Keir, P, Donaldson, A, Dolinsky, U, Richards, A & Riley, C 2011, Programming heterogeneous multicore systems using threading building blocks. in MR Guarracino, F Vivien, JL Träff, M Cannatoro, M Danelutto, A Hast, F Perla, A Knüpfer, B Di Martino & M Alexander (eds), Euro-Par 2010: Euro-Par 2010 Parallel Processing Workshops. vol. 6586, Lecture Notes in Computer Science, Springer Berlin Heidelberg, pp. 260-269. https://doi.org/10.1007/978-3-642-21878-1_15

Programming heterogeneous multicore systems using threading building blocks. / Russell, George; Keir, Paul; Donaldson, Alastair; Dolinsky, Uwe; Richards, Andrew; Riley, Colin.

Euro-Par 2010: Euro-Par 2010 Parallel Processing Workshops. ed. / Mario 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. Vol. 6586 Springer Berlin Heidelberg, 2011. p. 260-269 (Lecture Notes in Computer Science).

Research output: Chapter in Book/Report/Conference proceedingConference contribution

TY - GEN

T1 - Programming heterogeneous multicore systems using threading building blocks

AU - Russell, George

AU - Keir, Paul

AU - Donaldson, Alastair

AU - Dolinsky, Uwe

AU - Richards, Andrew

AU - Riley, Colin

PY - 2011

Y1 - 2011

N2 - 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.

AB - 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.

KW - multicore

KW - Cell

KW - parallel

KW - Threading Building Blocks

KW - C++

KW - heterogeneous

U2 - 10.1007/978-3-642-21878-1_15

DO - 10.1007/978-3-642-21878-1_15

M3 - Conference contribution

SN - 978-3-642-21877-4

VL - 6586

T3 - Lecture Notes in Computer Science

SP - 260

EP - 269

BT - Euro-Par 2010

A2 - Guarracino, Mario R.

A2 - Vivien, Frédéric

A2 - Träff, Jesper Larsson

A2 - Cannatoro, Mario

A2 - Danelutto, Marco

A2 - Hast, Anders

A2 - Perla, Francesca

A2 - Knüpfer, Andreas

A2 - Di Martino, Beniamino

A2 - Alexander, Michael

PB - Springer Berlin Heidelberg

ER -

Russell G, Keir P, Donaldson A, Dolinsky U, Richards A, Riley C. Programming heterogeneous multicore systems using threading building blocks. In Guarracino MR, Vivien F, Träff JL, Cannatoro M, Danelutto M, Hast A, Perla F, Knüpfer A, Di Martino B, Alexander M, editors, Euro-Par 2010: Euro-Par 2010 Parallel Processing Workshops. Vol. 6586. Springer Berlin Heidelberg. 2011. p. 260-269. (Lecture Notes in Computer Science). https://doi.org/10.1007/978-3-642-21878-1_15