Abstract
As processor complexity increases compilers tend to deliver suboptimal performance. Library generators such as ATLAS, FFTW and SPIRALz overcome this issue by empirically searching in the space of possible program versions for the one that performs the best. Empirical search can also be applied by programmers, but because they lack a tool to automate the process, programmers need to manually re-write the application in terms of several parameters whose best value will be determined by the empirical search in the target machine.
In this paper, we present the design of an annotation language, meant to be used either as an intermediate representation within library generators or directly by the programmer. This language that we call X represents parameterized programs in a compact and natural way. It provides an powerful optimization framework for high performance computing.
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Beckmann, O., Houghton, A., Kelly, P.H.J., Mellor, M.: Run-time code generation in c++ as a foundation for domain-specific optimisation. In: Lengauer, C., Batory, D., Consel, C., Odersky, M. (eds.) Domain-Specific Program Generation. LNCS, vol. 3016, pp. 291–306. Springer, Heidelberg (2004)
Calcagno, C., Taha, W., Huang, L., Leroy, X.: Implementing multi-stage languages using ASTs, Gensym, and reflection. In: ACM SIGPLAN/SIGSOFT Intl. Conf. Generative Programming and Component Engineering, GPCE 2003, pp. 57–76 (2003)
Chauhan, A., Kennedy, K.: Optimizing strategies for telescoping languages: procedure strength reduction and procedure vectorization. In: ACM Int. Conf. on Supercomputing (ICS 2004), June 2001, pp. 92–101 (2001)
Cohen, A., Donadio, S., Garzaran, M.-J., Padua, D., Herrmann, C.: In search for a program generator to implement generic transformations for high-performance computing. In: 1st MetaOCaml Workshop (associated with GPCE), Vancouver, British Columbia (October 2004)
Cohen, A., Girbal, S., Parello, D., Sigler, M., Temam, O., Vasilache, N.: Facilitating the search for compositions of program transformations. In: ACM Int. Conf. on Supercomputing (ICS 2005), Boston, Massachusetts (June 2005) (to appear)
Cooper, K.D., Subramanian, D., Torczon, L.: Adaptive Optimizing Compilers for the 21st Century. Journal of Supercomputing 23(1), 7–22 (2002)
Cooper, K.D., Waterman, T.: Investigating Adaptive Compilation using the MIPSPro Compiler. In: Proc. of the Symp. of the Los Alamos Computer Science Institute (October 2003)
De Rose, L., Padua, D.: Techniques for the translation of matlab programs into fortran 90. ACM Trans. on Programming Languages and Systems 21(2), 286–323 (1999)
Djoudi, L., Barthou, D., Carribault, P., Lemuet, C., Acquaviva, J.-T., Jalby, W.: A new tool for assembler analysis and optimization on epic architecture. In: Proc. of the Epic Workshop (in conjunction with CGO 2005) (2005)
Frigo, M., Johnson, S.G.: FFTW: An adaptive software architecture for the FFT. In: Proc. of the ICASSP Conf., vol. 3, pp. 1381–1384 (1998)
Hall, M., et al.: Maximizing multiprocessor performance with the SUIF compiler. IEEE Computer 29(12), 84–89 (1996)
Kamin, S., Clausen, L., Jarvis, A.: Jumbo: run-time code generation for java and its applications. In: ACM Conf. on Code Generation and Optimization (CGO 2003), pp. 48–56 (2003)
Kennedy, K.: Telescoping languages: A compiler strategy for implementation of high-level domain-specific programming systems. In: Proc. Intl. Parallel and Distributed Processing Symposium (IPIPS 2000), pp. 297–304 (2000)
Kisubi, P., Knijnenburg, P.M.W., O’Boyle, M.F.P.: The Effect of CacheModels on Iterative Compilation for Combined Tiling and Unrolling. In: Proc. of the International Conference on Parallel Architectures and Compilation Techniques, pp. 237–246 (2000)
Kisuki, T., Knijnenburg, P., O’Boyle, M., Wijshoff, H.: Iterative compilation in program optimization. In: Proc. CPC’10 (Compilers for Parallel Computers), pp. 35–44 (2000)
Lengauer, C., Batory, D., Consel, C., Odersky, M. (eds.): Domain-Specific Program Generation. LNCS, vol. 3016. Springer, Heidelberg (2004)
Li, X., Garzaran, M.-J., Padua, D.: A dynamically tuned sorting library. In: ACM Conf. on Code Generation and Optimization (CGO 2004), San Jose, CA, March 2004, pp. 111–124 (2004)
Parello, D., Temam, O., Cohen, A., Verdun, J.-M.: Towards a systematic, pragmatic and architecture-aware program optimization process for complex processors. In: ACM Supercomputing 2004, Pittsburgh, Pennsylvania, November 2004, p. 15 (2004)
Poletto, M., Hsieh, W.C., Engler, D.R., Kaashoek, M.F.: C and tcc: A language and compiler for dynamic code generation. ACM Trans. on Programming Languages and Systems 21(2), 324–369 (1999)
Puschel, M., Moura, J., Johnson, J., Padua, D., Veloso, M., Singer, B., Xiong, J., Franchetti, F., Gacic, A., Voronenko, Y., Chen, K., Johnson, R.W., Rizzolo, N.: SPIRAL: Code Generation for DSP Transforms. Proceedings of the IEEE (2005) (to appear); Special issue on Program Generation, Optimization, and Adaptation
Puschel, M., Singer, B., Xiong, J., Moura, J.M.F., Johnson, J., Padua, D., Veloso, M.M., Johnson, R.W.: SPIRAL: A Generator for Platform-Adapted Libraries of Signal Processing Algorithms. Journal of High Performance Computing and Applications, special issue on Automatic Performance Tuning 18(1), 21–45 (2004)
Schordan, M., Quinlan, D.J.: A source-to-source architecture for user-defined optimizations. In: Böszörményi, L., Schojer, P. (eds.) JMLC 2003. LNCS, vol. 2789, pp. 214–223. Springer, Heidelberg (2003)
Smith, M.D.: Overcoming the challenges to feedback-directed optimization. In: ACM SIGPLAN Workshop on Dynamic and Adaptive Compilation and Optimization, pp. 1–11 (2000) (Keynote Talk)
Taha, W.: Multi-Stage Programming: Its Theory and Applications. PhD thesis, Oregon Graduate Institute of Science and Technology (November 1999)
Veldhuizen, T.: Using C++ template metaprograms. C++ Report 7(4), 36–43 (1995)
Veldhuizen, T., Gannon, D.: Active libraries: Rethinking the roles of compilers and libraries. In: SIAM Workshop on Object Oriented Methods for Inter-operable Scientific and Engineering Computing, October 1998, pp. 21–23 (1998)
Whaley, R.C., Petitet, A., Dongarra, J.J.: Automated Empirical Optimization of Software and the ATLAS Project. Parallel Computing 27(1-2), 3–35 (2001); also available as University of Tennessee LAPACK Working Note #147, UT-CS-00-448 (2000), http://www.netlib.org/lapack/lawns/lawn147.ps
Caps entreprise, http://www.caps-entreprise.com
Yotov, K., Li, X., Ren, G., Cibulskis, M., DeJong, G., Garzarán, M., Padua, D., Pingali, K., Stodghill, P., Wu, P.: A Comparison of Empirical and Model-driven Optimization. In: Proceedings of the ACM SIGPLAN 2003 Conference on Programming Language Design and Implementation, pp. 63–76. ACM Press, New York (2003)
Yotov, K., Li, X., Ren, G., Garzarán, M., Padua, D., Pingali, K., Stodghill, P.: Is Search Really Necessary to Generate High-Performance BLASs? Proceedings of the IEEE 93(2), 358–386 (2005); Special issue on Program Generation, Optimization, and Adaptation
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Donadio, S. et al. (2006). A Language for the Compact Representation of Multiple Program Versions. In: Ayguadé, E., Baumgartner, G., Ramanujam, J., Sadayappan, P. (eds) Languages and Compilers for Parallel Computing. LCPC 2005. Lecture Notes in Computer Science, vol 4339. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-69330-7_10
Download citation
DOI: https://doi.org/10.1007/978-3-540-69330-7_10
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-69329-1
Online ISBN: 978-3-540-69330-7
eBook Packages: Computer ScienceComputer Science (R0)