Partitioning Strategies for Concurrent Programming

This work presents four partitioning strategies, or design patterns, useful for decomposing a serial application into multiple concurrently executing parts. These partitioning strategies augment the commonly used task and data parallel design patterns by recognizing that applications are spatiotem...

Full description

Bibliographic Details
Main Authors: Hoffmann, Henry Christian, Agarwal, Anant, Devadas, Srinivas
Other Authors: Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory
Format: Article
Language:en_US
Published: 2010
Online Access:http://hdl.handle.net/1721.1/59845
https://orcid.org/0000-0001-8253-7714
https://orcid.org/0000-0002-7015-4262
_version_ 1811077785388580864
author Hoffmann, Henry Christian
Agarwal, Anant
Devadas, Srinivas
author2 Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory
author_facet Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory
Hoffmann, Henry Christian
Agarwal, Anant
Devadas, Srinivas
author_sort Hoffmann, Henry Christian
collection MIT
description This work presents four partitioning strategies, or design patterns, useful for decomposing a serial application into multiple concurrently executing parts. These partitioning strategies augment the commonly used task and data parallel design patterns by recognizing that applications are spatiotemporal in nature. Therefore, data and instruction decomposition are further distinguished by whether the partitioning is done in the spatial or in temporal dimension. Thus, this work describes four decomposition strategies: spatial data partitioning (SDP), temporal data partitioning (TDP), spatial instruction partitioning (SIP), and temporal instruction partitioning (TIP), while cataloging the benefits and drawbacks of each. These strategies can be combined to realize the benefits of multiple patterns in the same program. The practical use of the partitioning strategies is demonstrated through a case study which implements several different parallelizations of a multicore H.264 encoder for HD video. This case study illustrates the application of the patterns, their effects on the performance of the encoder, and the combination of multiple strategies in a single program.
first_indexed 2024-09-23T10:48:21Z
format Article
id mit-1721.1/59845
institution Massachusetts Institute of Technology
language en_US
last_indexed 2024-09-23T10:48:21Z
publishDate 2010
record_format dspace
spelling mit-1721.1/598452022-09-27T15:06:36Z Partitioning Strategies for Concurrent Programming Hoffmann, Henry Christian Agarwal, Anant Devadas, Srinivas Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science Devadas, Srinivas Hoffmann, Henry Christian Agarwal, Anant Devadas, Srinivas This work presents four partitioning strategies, or design patterns, useful for decomposing a serial application into multiple concurrently executing parts. These partitioning strategies augment the commonly used task and data parallel design patterns by recognizing that applications are spatiotemporal in nature. Therefore, data and instruction decomposition are further distinguished by whether the partitioning is done in the spatial or in temporal dimension. Thus, this work describes four decomposition strategies: spatial data partitioning (SDP), temporal data partitioning (TDP), spatial instruction partitioning (SIP), and temporal instruction partitioning (TIP), while cataloging the benefits and drawbacks of each. These strategies can be combined to realize the benefits of multiple patterns in the same program. The practical use of the partitioning strategies is demonstrated through a case study which implements several different parallelizations of a multicore H.264 encoder for HD video. This case study illustrates the application of the patterns, their effects on the performance of the encoder, and the combination of multiple strategies in a single program. 2010-11-05T19:58:08Z 2010-11-05T19:58:08Z 2009 Article http://purl.org/eprint/type/ConferencePaper http://hdl.handle.net/1721.1/59845 Devadas, Srinivas, Anant Agarwal, and Henry Hoffmann. "Partitioning Strategies for Concurrent Programming." https://orcid.org/0000-0001-8253-7714 https://orcid.org/0000-0002-7015-4262 en_US Attribution-Noncommercial-Share Alike 3.0 Unported http://creativecommons.org/licenses/by-nc-sa/3.0/ application/pdf MIT web domain
spellingShingle Hoffmann, Henry Christian
Agarwal, Anant
Devadas, Srinivas
Partitioning Strategies for Concurrent Programming
title Partitioning Strategies for Concurrent Programming
title_full Partitioning Strategies for Concurrent Programming
title_fullStr Partitioning Strategies for Concurrent Programming
title_full_unstemmed Partitioning Strategies for Concurrent Programming
title_short Partitioning Strategies for Concurrent Programming
title_sort partitioning strategies for concurrent programming
url http://hdl.handle.net/1721.1/59845
https://orcid.org/0000-0001-8253-7714
https://orcid.org/0000-0002-7015-4262
work_keys_str_mv AT hoffmannhenrychristian partitioningstrategiesforconcurrentprogramming
AT agarwalanant partitioningstrategiesforconcurrentprogramming
AT devadassrinivas partitioningstrategiesforconcurrentprogramming