This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
Adaptive Code Collage: A Framework to Transparently Modify Scientific Codes
Jan.-Feb. 2012 (vol. 14 no. 1)
pp. 52-63
Pilsung Kang, Virginia Tech
Naren Ramakrishnan, Virginia Tech
Calvin J. Ribbens, Virginia Tech
Srinidhi Varadarajan, Virginia Tech
Michael Heffner, Librato

Legacy scientific codes are often repurposed to fit adaptive needs, but making such code adaptive without changing the original source programs can be challenging. Adaptive Code Collage (ACC) meets this challenge using function-call interception in a language-neutral way at link time, transparently "catching" and redirecting function calls.

1. G. Kiczales et al., "Aspect-Oriented Programming," Proc. European Conf. Object-Oriented Programming, vol. 1241, Springer-Verlag, 1997, pp. 220–242.
2. E. Hilsdale and J. Hugunin, "Advice Weaving in AspectJ," Proc. 3rd Int'l Conf. Aspect-Oriented Software Development, ACM Press, 2004, pp. 26–35.
3. O. Spinczyk, A. Gal, and W. Schröder-Preikschat, "AspectC++: An Aspect-Oriented Extension to the C++ Programming Language," Proc. 40th Int'l Conf. Tools Pacific, Australian Computer Society, 2002, pp. 53–60.
4. W.R. Mahoney and W.L. Sousan, "Using Common Off-the-Shelf Tools to Implement Dynamic Aspects," Sigplan Notes, vol. 42, no. 2, 2007, pp. 34–41.
5. A. Srivastava and A. Eustace, "ATOM: A System for Building Customized Program Analysis Tools," Proc. ACM Sigplan 1994 Conf. Programming Language Design and Implementation, ACM Press, 1994, pp. 196–205.
6. B. Buck and J.K. Hollingsworth, "An API for Runtime Code Patching," Int'l J. High Performance Computing Applications, vol. 14, no. 4, 2000, pp. 317–329.
7. C.-K. Luk et al., "Pin: Building Customized Program Analysis Tools with Dynamic Instrumentation," Proc. ACM Sigplan Conf. Programming Language Design and Implementation, ACM Press, 2005, pp. 190–200.
8. G. Hunt and D. Brubacher, "Detours: Binary Interception of Win32 Functions," Proc. 3rd Usenix Windows NT Symp., Usenix Assoc., 1999, pp. 135–144.
9. D.R. Kincaid et al., "ITPACK 2C: A Fortran Package for Solving Large Sparse Linear Systems by Adaptive Accelerated Iterative Methods," ACM Trans. Mathematical Software, vol. 8, no. 3, 1982, pp. 302–322.
10. P.D. Hovland and M.T. Heath, Adaptive SOR: A Case Study in Automatic Differentiation of Algorithm Parameters, tech. report ANL/MCS-P673-0797, Mathematics and Computer Science Division, Argonne Nat'l Lab., 1997.
11. L.A. Hageman and D.M. Young eds., "The Successive Overrelaxation Method," Applied Iterative Methods, Academic Press, 1981, pp. 223–233.
12. P. Kang et al., "Modular Implementation of Adaptive Decisions in Stochastic Simulations," Proc. 24th ACM Symp. Applied Computing, ACM Press, 2009, pp. 995–1001.
13. P. Kang et al., "Modular, Fine-Grained Adaptation of Parallel Programs," Proc. 9th Int'l Conf. Computational Science, Springer Verlag, 2009, pp. 269–279.
14. P. Kang et al., "Dynamic Tuning of Algorithmic Parameters of Parallel Scientific Codes," Proc. 10th Int'l Conf. Computational Science, Springer Verlag, 2010, pp.145–153.
15. D. Tafti, "GenIDLEST—A Scalable Parallel Computational Tool for Simulating ComplexTurbulent Flows," Proc. ASME Fluids Eng. Division (FED), vol. 256, Am. Soc. Mechanical Engineers, 2001, pp. 347–356.
16. C.A. Schaefer, V. Pankratius, and W.F. Tichy, "Atune-IL: An Instrumentation Languagefor Auto-Tuning Parallel Applications," Proc. 15th Int'l Euro-Par Conf. Parallel Processing, Springer Verlag, 2009, pp. 9–20.
17. K. Kennedy and J.R. Allen, Optimizing Compilers for Modern Architectures: A Dependence-Based Approach, Morgan Kaufmann, 2002.
18. J. Demmel et al., "Self-Adapting Linear Algebra Algorithms and Software," Proc. IEEE, vol. 93, no. 2, 2005, pp. 293–312.

Index Terms:
Scientific software adaptation, program modification, function-call interception, scientific programming
Citation:
Pilsung Kang, Naren Ramakrishnan, Calvin J. Ribbens, Srinidhi Varadarajan, Michael Heffner, "Adaptive Code Collage: A Framework to Transparently Modify Scientific Codes," Computing in Science and Engineering, vol. 14, no. 1, pp. 52-63, Jan.-Feb. 2012, doi:10.1109/MCSE.2011.17
Usage of this product signifies your acceptance of the Terms of Use.