ACM Home Page
Please provide us with feedback. Feedback
Serialization sets: a dynamic dependence-based parallel execution model
Full text PdfPdf (841 KB)
Source
Principles and Practice of Parallel Programming archive
Proceedings of the 14th ACM SIGPLAN symposium on Principles and practice of parallel programming table of contents
Raleigh, NC, USA
SESSION: Task mapping and scheduling table of contents
Pages 85-96  
Year of Publication: 2009
ISBN:978-1-60558-397-6
Also published in ...
Authors
Matthew D. Allen  University of Wisconsin-Madison, Madison, WI, USA
Srinath Sridharan  University of Wisconsin-Madison, Madison, WI, USA
Gurindar S. Sohi  University of Wisconsin-Madison, Madison, WI, USA
Sponsors
ACM: Association for Computing Machinery
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 78,   Downloads (12 Months): 285,   Citation Count: 0
Additional Information:

abstract   references   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1504176.1504190
What is a DOI?

ABSTRACT

This paper proposes a new parallel execution model where programmers augment a sequential program with pieces of code called serializers that dynamically map computational operations into serialization sets of dependent operations. A runtime system executes operations in the same serialization set in program order, and may concurrently execute operations in different sets. Because serialization sets establish a logical ordering on all operations, the resulting parallel execution is predictable and deterministic.

We describe the API and design of Prometheus, a C++ library that implements the serialization set abstraction through compile-time template instantiation and a runtime support library. We evaluate a set of parallel programs running on the x86_64 and SPARC-V9 instruction sets and study their performance on multicore, symmetric multiprocessor, and ccNUMA parallel machines. By contrast with conventional parallel execution models, we find that Prometheus programs are significantly easier to write, test, and debug, and their parallel execution achieves comparable performance.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

1
 
2
K. Czarnecki and U. W. Eisenecker. Generative Programming. Addison-Wesley, 2000.
 
3
 
4
5
6
7
 
8
C. Hewitt. Viewing control structures as patterns of passing messages. Journal of Aritificial Intelligence, 8:323--363, 1977.
 
9
Intel. Threading building blocks. http://threadingbuildingblocks.org.
10
 
11
 
12
 
13
C. E. Leiserson. Cilk++: Multicore-enabling legacy C++ code. Carnegie Mellon University Parallel Thinking Series, April 2008.
 
14
Microsoft. Programming the ThreadPool in .NET. http://msdn.microsoft.com/en-us/library/ms973903.aspx.
 
15
Microsoft. Task parallel library (TPL). http://msdn.microsoft.com/en-us/magazine/cc163340.aspx.
 
16
OpenMP. The OpenMP API specification for parallel programming. http://openmp.org/wp/.
 
17
J. Pisharath et al. NU-MineBench 2.0. Technical Report CUCIS-2005-08-01, Northwestern University, 2005.
 
18
R. Rajwar and J. Larus. Transactional Memory. Morgan Claypool, October 2006.
 
19
C. Ranger et al. Evaluating MapReduce for multi-core and multiprocessor systems, 2007.
20
21
 
22
T. Veldhuizen. Using C++ template metaprograms. C++ Report, 7(4):36--43, May 1995.

Collaborative Colleagues:
Matthew D. Allen: colleagues
Srinath Sridharan: colleagues
Gurindar S. Sohi: colleagues