A High-Level Interface of Xevolver for Composing Loop Transformations
Xevolver is a code transformation framework under active development to help legacy application migration to extreme-scale computing systems. The framework originally assumes that transformation rules are written in XSLT, which might be too low-level for standard users to express their own rules. Hence, this article describes a high-level interface of the Xevolver framework, which offers an easy and declarative way to define a custom compiler directive associated with a composite of predefined loop transformation rules. Such a compiler directive can also be associated with text insertion and deletion. In the evaluation, 160 variants of a triple-nested loop required for empirical performance tuning can be generated mechanically by using the high-level interface.
KeywordsLoop Variant Loop Optimization Application Code Abstract Syntax Tree Loop Transformation
This research was partially supported by JST CREST “An Evolutionary Approach to Construction of a Software Development Environment for Massively-Parallel Heterogeneous Systems” and Grant-in-Aid for Scientific Research(B) #25280041. The authors would like to thank team members of the CREST project for fruitful discussions on the design and development of the Xevolver framework.
In addition, this research was partially supported by “Joint Usage/Research Center for Interdisciplinary Large-scale Information Infrastructures” and “High Performance Computing Infrastructure” in Japan for using the computing resources installed in Cyberscience Center, Tohoku University.
- 1.Allen, R., Kennedy, K.: Optimizing Compilers for Modern Architectures: A Dependence-Based Approach. Morgan Kaufmann, San Francisco (2001)Google Scholar
- 2.Introducing JSON. http://www.json.org/ (9 June 2015)
- 3.Kay, M.: XSLT 2.0 and XPath 2.0 Programmer’s Reference (Programmer to Programmer), 4 edn. Wrox Press Ltd., Birmingham (2008)Google Scholar
- 4.Naono, K., Teranishi, K., Cavazos, J., Suda, R. (eds.): Software Automatic Tuning—from Concepts to State-of-the-Art Results. Springer, New York (2010)Google Scholar
- 5.Suda, R., Hirasawa, S., Takizawa, H.: User-defined source-to-source code transformation tools using Xevolver. Presentation at International Workshop on Legacy HPC Application Migration (LHAM2014) (2014)Google Scholar
- 6.Takizawa, H., Hirasawa, S., Kobayashi, H.: Xevolver: an XML-based programming framework for software evolution. Poster presentation at supercomputing 2013 (SC13) (2013)Google Scholar
- 7.Takizawa, H., Hirasawa, S., Hayashi, Y., Egawa, R., Kobayashi, H.: Xevolver: an XML-based code translation framework for supporting HPC application migration. In: IEEE International Conference on High Performance Computing (HiPC) (2014)Google Scholar
- 8.The Xevolver Project: JST CREST “an evolutionary approach to construction of a software development environment for massively-parallel heterogeneous systems”. http://xev.arch.is.tohoku.ac.jp/ (2011)