Issue No.04 - July-Aug. (2012 vol.32)
pp: 54-67
Hengjie Li , Institute of Computing Technology, CAS
Wenting He , Institute of Computing Technology, CAS
Yang Chen , Institute of Computing Technology, CAS
Lieven Eeckhout , Ghent University
Olivier Temam , INRIA Saclay
Chengyong Wu , Institute of Computing Technology, CAS
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.
Software algorithms, Parallel processing, Computer architecture, Program processors, Semantics, Algorithm design and analysis, SWAP, Software algorithms, Parallel processing, Computer architecture, Program processors, Semantics, Algorithm design and analysis, specification compatibility graph, parallel programming, parallelization
Hengjie Li, Wenting He, Yang Chen, Lieven Eeckhout, Olivier Temam, Chengyong Wu, "SWAP: Parallelization through Algorithm Substitution", IEEE Micro, vol.32, no. 4, pp. 54-67, July-Aug. 2012, doi:10.1109/MM.2012.53
1. H. Kim et al., "Scalable Speculative Parallelization on Commodity Clusters," Proc. 43rd Ann. IEEE/ACM Int'l Symp. Microarchitecture, IEEE CS, 2010, pp. 3-14.
2. M.W. Benabderrahmane et al., "The Polyhedral Model Is More Widely Applicable Than You Think," Compiler Construction, Springer, 2010, pp. 283-303.
3. J. Reinders, Intel Threading Building Blocks, O'Reilly & Associates, 2007.
4. R. Blumofe et al., "Cilk: An Efficient Multithreaded Runtime System," Proc. 5th ACM SIGPLAN Symp. Principles and Practice of Parallel Programming (PPOPP 95), ACM, 1995, pp. 207-216.
5. P. An et al., "STAPL: An Adaptive, Generic Parallel C++ Library," Proc. 14th Int'l Conf. Languages and Compilers for Parallel Computing, Springer, 2001, pp. 193-208.
6. F. Putze, J. Singler, and P. Sanders, "MCSTL: The Multi-core Standard Template Library," Proc. Int'l European Conf. Parallel and Distributed Computing (Euro-Par 07), Springer, 2007, pp. 682-694.
7. J. Ansel et al., "PetaBricks: A Language and Compiler for Algorithmic Choice," Proc. ACM SIGPLAN Conf. Programming Language Design and Implementation (PLDI 09), ACM, 2009, pp. 38-49.
8. S. Sethumadhavan et al., "COMPASS: A Community-Driven Parallelization Advisor for Sequential Software," Proc. Int'l Workshop Multicore Software Eng. (IWMSE 09), IEEE CS, 2009, pp. 41-48.
9. L. DeMichiel,Enterprise JavaBeans Specification, Version 2.1, Sun Microsystems, Nov. 2003.
10. A. Rasche and A. Polze, "Configuration and Dynamic Reconfiguration of Component-Based Applications with Microsoft .NET," Proc. 6th IEEE Int'l Symp. Object-Oriented Real-Time Distributed Computing (ISORC 03), IEEE CS, 2003, pp. 164-171.
11. J. Cheesman and J. Daniels, UML Components: A Simple Process for Specifying Component-Based Software, Addison-Wesley, 2000.
12. K. Lau and Z. Wang., "Software Component Models," IEEE Trans. Software Eng., Oct. 2007, pp. 709-724.
13. S.W. Keckler et al., "GPUs and the Future of Parallel Computing," IEEE Micro, vol. 31, no. 5, 2011, pp. 7-17.