ABSTRACT
Component-based frameworks for high-performance computing (HPC) are being developed in response to the increasing complexity of HPC software. These frameworks promote the development of clear programming interfaces that allow easy code reuse, distributed development, and inter-language operability. Unfortunately, the decoupled and dynamic nature of component-based applications prevent static compilers from applying optimization across components. Consequently, if components are used at too fine of a granularity they can impose a significant performance overhead -- a serious consequence in the HPC community. Therefore, this paper proposes dynamic compilation as a method for improving performance of component-based HPC applications, which would allow programmers to express programs at the most natural granularity. We introduce a technique called IR annotation in which a high-level intermediate representation (IR) of a program is embedded inside an optimized native executable. This approach leverages the benefits of multiple program representations at the cost of increased code size. The optimized code enables immediate execution at native speed while the IR allows selective dynamic re-compilation if runtime monitoring exposes performance problems. Our experimental results for using IR annotation on the Common Component Architecture (CCA), a component-based HPC framework, show that the program size increase is only about 2.5x. Finally, we propose several ideas that can potentially further reduce the code growth due to IR annotation.
- Cca-forum. http://www.cca-forum.org.Google Scholar
- Hpctoolkit. http://hpctoolkit.org.Google Scholar
- A.-R. Adl-Tabatabai, M. Cierniak, G.-Y. Lueh, V. M. Parikh, and J. M. Stichnoth. Fast, effective code generation in a just-in-time java compiler. SIGPLAN Not., 33(5):280--290, 1998. Google ScholarDigital Library
- V. Bala, E. Duesterwald, and S. Banerjia. Dynamo: a transparent dynamic optimization system. In Proceedings of the ACM SIGPLAN 2000 conference on Programming Language Design and Implementation, pages 1--12, New York, NY, USA, 2000. ACM. Google ScholarDigital Library
- M. G. Burke, J.-D. Choi, S. Fink, D. Grove, M. Hind, V. Sarkar, M. J. Serrano, V. C. Sreedhar, H. Srinivasan, and J. Whaley. The jalapeno dynamic optimizing compiler for java. In JAVA '99: Proceedings of the ACM 1999 conference on Java Grande, pages 129--141, New York, NY, USA, 1999. ACM. Google ScholarDigital Library
- C. Chambers and D. Ungar. Customization: optimizing compiler technology for self, a dynamically-typed object-oriented programming language. SIGPLAN Not., 24(7):146--160, 1989. Google ScholarDigital Library
- T. Dahlgren, T. Epperly, G. Kumfert, and J. Leek. Babel Users' Guide. Lawrence Livermore National Laboratory, November 2007.Google Scholar
- L. P. Deutsch and A. M. Schiffman. Efficient implementation of the smalltalk-80 system. In POPL '84: Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages, pages 297--302, New York, NY, USA, 1984. ACM. Google ScholarDigital Library
- C. Lattner and V. Adve. Llvm: A compilation framework for lifelong program analysis & transformation. In Proceedings of the 2004 International Symposium on Code Generation and Optimization, Palo Alto, California, Mar 2004. Google ScholarDigital Library
- J. Lu, H. Chen, P.-C. Yew, and W.-C. Hsu. Design and implementation of a lightweight dynamic optimization system. Journal of Instruction-Level Parallelism, 6:1--24, April 2004.Google Scholar
- M. Paleczny, C. Vick, and C. Click. The java hotspottm server compiler. In JVM'01: Proceedings of the JavaTM Virtual Machine Research and Technology Symposium on JavaTM Virtual Machine Research and Technology Symposium, pages 1--1, Berkeley, CA, USA, 2001. USENIX Association. Google ScholarDigital Library
- R. G. Scarborough and H. G. Kolsky. Improved optimization of fortran object programs. IBM Journal of Research and Development, 24(6):660, Nov 1980. Google ScholarDigital Library
- T. Suganuma, T. Yasue, M. Kawahito, H. Komatsu, and T. Nakatani. A dynamic optimization framework for a java just-in-time compiler. SIGPLAN Not., 36(11):180--195, 2001. Google ScholarDigital Library
Index Terms
- Dynamic compilation for component-based high performance computing
Recommendations
Evaluating parameter sweep workflows in high performance computing
SWEET '12: Proceedings of the 1st ACM SIGMOD Workshop on Scalable Workflow Execution Engines and TechnologiesScientific experiments based on computer simulations can be defined, executed and monitored using Scientific Workflow Management Systems (SWfMS). Several SWfMS are available, each with a different goal and a different engine. Due to the exploratory ...
Replay compilation: improving debuggability of a just-in-time compiler
Proceedings of the 2006 OOPSLA ConferenceThe performance of Java has been tremendously improved by the advance of Just-in-Time (JIT) compilation technologies. However, debugging such a dynamic compiler is much harder than a static compiler. Recompiling the problematic method to produce a ...
Comments