This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
Revisiting the Sequential Programming Model for the Multicore Era
January/February 2008 (vol. 28 no. 1)
pp. 12-20
Matthew J. Bridges, Princeton University
Neil Vachharajani, Princeton University
Yun Zhang, Princeton University
Thomas Jablin, Princeton University
David I. August, Princeton University
Automatic parallelization has thus far not been successful at extracting scalable parallelism from general programs. An aggressive automatic thread extraction framework, coupled with natural extensions to the sequential programming model that allow for a range of legal outcomes rather than forcing programmers to define a single legal program outcome, will let programmers achieve the performance of parallel programming via the simpler sequential model.

1. J.C. Corbett, "Evaluating Deadlock Detection Methods for Concurrent Software," IEEE Trans. Software Engineering, vol. 22, no. 3, Mar 1996, pp. 161-180.
2. P.A. Emrath and D.A. Padua, "Automatic Detection of Nondeterminacy in Parallel Programs," Proc. Workshop Parallel and Distributed Debugging, ACM Press, 1988, pp. 89-99.
3. G.R. Luecke et al., "Deadlock Detection in MPI Programs," Concurrency and Computation: Practice and Experience, vol. 14, no. 11, Aug 2002, pp. 911-932.
4. B.D. Carlstrom et al., "The Atomos Transactional Programming Language," Proc. Conf. Programming Language Design and Implementation (PLDI 06), ACM Press, 2006, pp. 1-13.
5. M. Frigo, C.E. Leiserson, and K.H. Randall, "The Implementation of the Cilk-5 Multithreaded Language," Proc. Conf. Programming Language Design and Implementation (PLDI 98), ACM Press, 1998, pp. 212-223.
6. M.I. Gordon et al., "A Stream Compiler for Communication-Exposed Architectures," Proc. Int'l Conf. Architectural Support for Programming Languages and Operating Systems (ASPLOS 02), ACM Press, 2002, pp. 291-303.
7. M.J. Bridges et al., "Revisiting the Sequential Programming Model for Multi-Core," Proc. Int'l Symp. Microarchitecture (MICRO 07), IEEE CS Press, 2007, pp. 69-81.
8. G. Ottoni et al., "Automatic Thread Extraction with Decoupled Software Pipelining," Int'l Symp. Microarchitecture (MICRO 05), IEEE CS Press, 2005, pp. 105-118.
9. R. Rangan et al., "Decoupled Software Pipelining with the Synchronization Array," Proc. Int'l Conf. Parallel Architectures and Compilation Techniques (PACT 04), IEEE CS Press, 2004, pp. 177-188.
10. E. Raman et al., "Parallel-Stage Decoupled Software Pipelining to appear in Proc.," Int'l Symp. Code Generation and Optimization (CGO 08), IEEE CS Press, 2008.
11. N. Vachharajani et al., "Speculative Decoupled Software Pipelining," Proc. Int'l Conf. Parallel Architectures and Compilation Techniques (PACT 07), IEEE CS Press, 2007, pp. 49-59.
12. J.G. Steffan et al., "The STAMPede Approach to Thread-Level Speculation," ACM Trans. Computer Systems, vol. 23, no. 3, Aug 2005, pp. 253-300.
13. S. Horwitz, T. Reps, and D. Binkley, "Interprocedural Slicing Using Dependence Graphs," ACM Trans. Programming Languages and Systems, vol. 12, no. 1, Jan 1990, pp. 26-60.
14. S. Triantafyllis et al., "A Framework for Unrestricted Whole-Program Optimization," Proc. Conf. Programming Language Design and Implementation (PLDI 06), ACM Press, 2006, pp. 61-71.
15. N. Wang and M. Fertig, S.J. Patel, "Y-Branches: When You Come to a Fork in the Road, Take It," Proc. Int'l Conf. Parallel Architectures and Compilation Techniques (PACT 03), IEEE CS Press, 2003, pp. 56-67.

Index Terms:
compiler-architecture interactions, compilers, automatic parallelization, thread extraction, sequential-programming model
Citation:
Matthew J. Bridges, Neil Vachharajani, Yun Zhang, Thomas Jablin, David I. August, "Revisiting the Sequential Programming Model for the Multicore Era," IEEE Micro, vol. 28, no. 1, pp. 12-20, Jan.-Feb. 2008, doi:10.1109/MM.2008.13
Usage of this product signifies your acceptance of the Terms of Use.