Spatiotemporal Partitioning Strategies
The partitioning strategies project explores design patterns of parallel software development as a tool for both software engineering and teaching. Existing parallel patterns have tremendous descriptive power, but it is often unclear to non-experts how to choose a pattern based on the specific performance goals of a given application. This work addresses the need for a pattern selection methodology by presenting four patterns and an accompanying decision framework for choosing from these patterns given an application’s throughput and latency goals.

The patterns are based on recognizing that one can partition an application’s data or instructions and that these partitionings can be done in time or space, hence we refer to them as spatiotemporal partitioning strategies. This work introduces a taxonomy that describes each of the resulting four partitioning strategies and presents a three-step methodology for selecting one or more given a throughput and latency goal.
Publications:
- Selecting Spatiotemporal Patterns for Development of Parallel Applications,
by Henry Hoffmann, Anant Agarwal, and Srinivas Devadas.
IEEE Transactions on Parallel and Distributed Systems (to appear) -
A pattern for efficient parallel computation on multicore processors with scalar operand networks,
by Henry Hoffmann, Srinivas Devadas, and Anant Agarwal.
Proceedings of the 2010 Workshop on Parallel Programming Patterns, March 2010. (doi) - Partitioning Strategies: Spatiotemporal Patterns of Program Decomposition,
by Henry Hoffmann, Anant Agarwal, and Srinivas Devadas.
Proceedings of the 21st IASTED Conference on Parallel and Distributed Computing and Systems, November 2009 (link). - Partitioning Strategies for Concurrent Programming,
by Henry Hoffmann, Anant Agarwal, and Srinivas Devadas.
Proceedings of the 2009 Workshop on Parallel Programming Patterns, June 2009 (link).
Team Members:
- Henry Hoffmann (MIT)
- Srinivas Devadas (MIT)
- Anant Agarwal (MIT)