Skip to main content

A Language for the Compact Representation of Multiple Program Versions

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 4339))

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.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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)

    Chapter  Google Scholar 

  2. 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)

    Google Scholar 

  3. 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)

    Google Scholar 

  4. 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)

    Google Scholar 

  5. 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)

    Google Scholar 

  6. Cooper, K.D., Subramanian, D., Torczon, L.: Adaptive Optimizing Compilers for the 21st Century. Journal of Supercomputing 23(1), 7–22 (2002)

    Article  MATH  Google Scholar 

  7. 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)

    Google Scholar 

  8. 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)

    Article  Google Scholar 

  9. 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)

    Google Scholar 

  10. 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)

    Google Scholar 

  11. Hall, M., et al.: Maximizing multiprocessor performance with the SUIF compiler. IEEE Computer 29(12), 84–89 (1996)

    Google Scholar 

  12. 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)

    Google Scholar 

  13. 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)

    Google Scholar 

  14. 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)

    Google Scholar 

  15. 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)

    Google Scholar 

  16. Lengauer, C., Batory, D., Consel, C., Odersky, M. (eds.): Domain-Specific Program Generation. LNCS, vol. 3016. Springer, Heidelberg (2004)

    Google Scholar 

  17. 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)

    Google Scholar 

  18. 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)

    Google Scholar 

  19. 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)

    Article  Google Scholar 

  20. 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

    Google Scholar 

  21. 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)

    Article  Google Scholar 

  22. 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)

    Chapter  Google Scholar 

  23. 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)

    Google Scholar 

  24. Taha, W.: Multi-Stage Programming: Its Theory and Applications. PhD thesis, Oregon Graduate Institute of Science and Technology (November 1999)

    Google Scholar 

  25. Veldhuizen, T.: Using C++ template metaprograms. C++ Report 7(4), 36–43 (1995)

    Google Scholar 

  26. 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)

    Google Scholar 

  27. 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

  28. Caps entreprise, http://www.caps-entreprise.com

  29. 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)

    Chapter  Google Scholar 

  30. 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

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics