SWAP: Parallelization through Algorithm Substitution

By explicitly indicating which algorithms they use and encapsulating these algorithms within software components, programmers make it possible for an algorithm-aware compiler to replace their original algorithm implementations with compatible parallel implementations, or with the parallel implementations of compatible algorithms, using the so-called specification compatibility graph (SCG). Along with the SCG, a software environment is introduced for performing algorithm-aware compilation.

[1]  Feng Liu,et al.  Scalable Speculative Parallelization on Commodity Clusters , 2010, 2010 43rd Annual IEEE/ACM International Symposium on Microarchitecture.

[2]  John Daniels,et al.  UML Components: A Simple Process for Specifying Component-Based Software , 2000 .

[3]  Laxmikant V. Kalé,et al.  CHARM++: a portable concurrent object oriented system based on C++ , 1993, OOPSLA '93.

[4]  William J. Dally,et al.  GPUs and the Future of Parallel Computing , 2011, IEEE Micro.

[5]  Nancy M. Amato,et al.  STAPL: An Adaptive, Generic Parallel C++ Library , 2001, LCPC.

[6]  Benjamin Hindman,et al.  Composing parallel software efficiently with lithe , 2010, PLDI '10.

[7]  Bradley C. Kuszmaul,et al.  Cilk: an efficient multithreaded runtime system , 1995, PPOPP '95.

[8]  QuémaVivien,et al.  The FRACTAL component model and its support in Java , 2006 .

[9]  Teresa H. Y. Meng,et al.  Merge: a programming model for heterogeneous multi-core systems , 2008, ASPLOS.

[10]  Alan Edelman,et al.  PetaBricks: a language and compiler for algorithmic choice , 2009, PLDI '09.

[11]  Thierry Coupaye,et al.  The FRACTAL component model and its support in Java , 2006, Softw. Pract. Exp..

[12]  Albert Cohen,et al.  The Polyhedral Model Is More Widely Applicable Than You Think , 2010, CC.

[13]  Nancy M. Amato,et al.  A framework for adaptive algorithm selection in STAPL , 2005, PPoPP.

[14]  James Reinders,et al.  Intel® threading building blocks , 2008 .

[15]  Microsystems Sun,et al.  Enterprise JavaBeans^ Specification Version 2.1 , 2002 .

[16]  Gail E. Kaiser,et al.  COMPASS: A Community-driven Parallelization Advisor for Sequential Software , 2009, 2009 ICSE Workshop on Multicore Software Engineering.

[17]  Peter Sanders,et al.  MCSTL: the multi-core standard template library , 2007, PPOPP.

[18]  Kung-Kiu Lau,et al.  Software Component Models , 2006, IEEE Transactions on Software Engineering.

[19]  Andreas Polze,et al.  Configuration and dynamic reconfiguration of component-based applications with Microsoft .NET , 2003, Sixth IEEE International Symposium on Object-Oriented Real-Time Distributed Computing, 2003..