Skip to main content
Log in

Reducing and Vectorizing Procedures for Telescoping Languages

  • Published:
International Journal of Parallel Programming Aims and scope Submit manuscript

Abstract

At Rice University, we have undertaken a project to construct a framework for generating high-level problem solving languages that can achieve high performance on a variety of platforms. The underlying strategy, called telescoping languages, builds problem-solving systems from domain-specific libraries and scripting languages by extensively preanalyzing libraries to produce a precompiler that optimizes library calls within the scripts as if they were primitives in the underlying language. Our study of applications written in Matlab by the signal processing group at Rice University has identified a collection of old and new optimizations that show promise for this particular domain. Two promising new optimizations are procedure vectorization and procedure strength reduction. By transforming these programs, at source level, according to the strategies described in this paper, we were able to achieve speedups ranging from a factor of 1.1 to 1.6 over the entire applications—with speedups for individual functions as high as 3.3.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

REFERENCES

  1. Ken Kennedy, Telescoping Languages: A Compiler Strategy for Implementation of Highlevel Domain-specific Programming Systems, Proc. Int'l Parallel and Distributed Proc.Symp. (May 2000).

  2. Ken Kennedy, Bradley Broom, Keith Cooper, Jack Dongarra, Rob Fowler, Dennis Gannon, Lennart Johnson, John Mellor-Crummey, and Linda Torczon, Telescoping Languages: A Strategy for Automatic Generation of Scientific Problem-Solving Systems from Annotated Libraries, J. Parallel and Distributed Computing, 61(12):1803–1826 (December 2001).

    Google Scholar 

  3. Dan Grove and Linda Torczon, Interprocedural Constant Propagation: A Study of Jump Function Implementations, Proc. ACM SIGPLAN Conf. Progr. Lang. Design and Implementation, pp. 90–99 (June 1993).

  4. Mike S. Paterson and Mark N. Wegman, Linear Unification, J. Comput. Syst. Sci., 16(2): 158–167 (1978).

    Google Scholar 

  5. Keith D. Cooper, Mary W. Hall, and Ken Kennedy, Procedure Cloning, Proc. IEEE Int'l Conf. Computer Lang. (April 1992).

  6. John R. Allen and Ken Kennedy, Automatic Translation of Fortran Programs to Vector Form, ACM Trans. Progr. Lang. Syst., 9(4):491–542 (October 1987).

    Google Scholar 

  7. Randy Allen and Ken Kennedy, Advanced Compilation for Vector and Parallel Computers, Morgan Kaufmann Publishers, San Mateo, California (2001).

    Google Scholar 

  8. Preston Briggs and Keith D. Cooper, Effective Partial Redundancy Elimination, Proc. ACM SIGPLAN Conf. Progr. Lang. Design and Implementation, pp. 159–170 (June 1994).

  9. Philips S. Abrams, An APL Machine, Ph.D. thesis, Stanford Linear Accelerator Center, Stanford University (1970).

  10. Vijay Menon and Keshav Pingali, A Case for Source Level Transformations in Matlab, Proc. ACM SIGPLAN/USENIX Conf. Domain Specific Lang. (1999).

  11. Mary Hall, Ken Kennedy, and Kathryn McKinley, Interprocedural Transformations for Parallel Code Generation, Proc. Supercomputing, pp. 424–434 (November 1991).

  12. Frances E. Allen, John Cocke, and Ken Kennedy, Reduction of Operator Strength, In S. Muchnick and N. Jones, eds., Program Flow Analysis: Theory and Applications, Prentice-Hall, pp. 79–101 (1981).

  13. David Callahan and Ken Kennedy, Analysis of Interprocedural Side-effects in Parallel Programming Environment, J. Parallel Distribut. Comput., 5:517–550 (1988).

    Google Scholar 

  14. Paul Havlak and Ken Kennedy, An Implementation of Interprocedural Bounded Regular Section Analysis, IEEE Trans. Parallel Distribut. Syst., 2(3):350–360 (July 1991).

    Google Scholar 

  15. http://www.mathworks.com/. Mathworks, Inc.

  16. Luiz Antônio DeRose, Compiler Techniques for Matlab Programs, Ph.D. thesis, University of Illinois at Urbana-Champaign (1996).

  17. Luiz DeRose and David Padua, Techniques for the Translation of MATLAB Programs into Fortran 90, ACM Trans. Progr. Lang. Syst., 21(2):286–323 (March 1999).

    Google Scholar 

  18. http://polaris.cs.uiuc.edu/majic/. MAJIC Project.

  19. Vijay Menon and Keshav Pingali, High-level Semantic Optimization of Numerical Code, Proc. ACM-SIGARCH Int'l Conf. Supercomputing (1999).

  20. Haskell B. Curry and Robert Fayes, Combinatory Logic, Vol. 65, Studies in Logic and the Foundation of Mathematics, North-Holland Pub. Co., Amsterdam (1958).

    Google Scholar 

  21. ACM SIGPLAN Workshop on Partial Evaluation and Semantics Based Program Manipulation.

  22. Andreas Griewank, Evaluating Derivatives: Principles and Techniques of Algorithmic Differentiation, SIAM, Philadelphia, Pennsylvania (2000).

    Google Scholar 

  23. http://www.cs.rice.edu/' adifor/. ADIFOR Project: Automatic Differentiation of Fortran.

  24. Samuel Z. Guyer and Calvin Lin, An Annotation Language for Optimizing Software Libraries, Proc. ACM SIGPLAN/USENIX Conf. Domain Specific Languages (1999).

  25. Michael J. Quinn, Alexey Malishevsky, and Nagajagadeswar Seelam, Otter: Bridging the Gap Between MATLAB and ScaLAPACK, Proc. IEEE Int'l Symp. High Performance Distributed Computing (August 1998).

  26. Peter Drakenberg, Peter Jacobson, and Bo Kågström, A CONLAB Compiler for a Distributed Memory Multicomputer. SIAM Conf. Parallel Processing for Scientific Computing, 2:814–821 (1993).

    Google Scholar 

  27. Stéphane Chauveau and François Bodin, MENHIR: An Environment for High Performance MATLAB, Proc. Workshop Languages, Compilers, and Run-time Systems for Scalable Computers (May 1998).

  28. Anshuman Nayak, Malay Haldar, Abhay Kanhere, Pramod Joisha, Nagraj Shenoy, Alok Choudhary, and Prith Banerjee, A Library-based Compiler to Execute MATLAB Programs on a Heterogeneous Platform. Proc. Conf. Parallel and Distributed Computing Systems (August 2000).

  29. R. Clint Whaley and Jack J. Dongarra, Automatically Tuned Linear Algebra Software, Proc. SC: High Performance Networking and Computing Conf. (November 1998).

  30. http://www.hipersoft.rice.edu/grads/. GrADS: Grid Application Development Software Project.

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Chauhan, A., Kennedy, K. Reducing and Vectorizing Procedures for Telescoping Languages. International Journal of Parallel Programming 30, 291–315 (2002). https://doi.org/10.1023/A:1019804013080

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1023/A:1019804013080

Navigation