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.
Similar content being viewed by others
REFERENCES
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).
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).
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).
Mike S. Paterson and Mark N. Wegman, Linear Unification, J. Comput. Syst. Sci., 16(2): 158–167 (1978).
Keith D. Cooper, Mary W. Hall, and Ken Kennedy, Procedure Cloning, Proc. IEEE Int'l Conf. Computer Lang. (April 1992).
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).
Randy Allen and Ken Kennedy, Advanced Compilation for Vector and Parallel Computers, Morgan Kaufmann Publishers, San Mateo, California (2001).
Preston Briggs and Keith D. Cooper, Effective Partial Redundancy Elimination, Proc. ACM SIGPLAN Conf. Progr. Lang. Design and Implementation, pp. 159–170 (June 1994).
Philips S. Abrams, An APL Machine, Ph.D. thesis, Stanford Linear Accelerator Center, Stanford University (1970).
Vijay Menon and Keshav Pingali, A Case for Source Level Transformations in Matlab, Proc. ACM SIGPLAN/USENIX Conf. Domain Specific Lang. (1999).
Mary Hall, Ken Kennedy, and Kathryn McKinley, Interprocedural Transformations for Parallel Code Generation, Proc. Supercomputing, pp. 424–434 (November 1991).
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).
David Callahan and Ken Kennedy, Analysis of Interprocedural Side-effects in Parallel Programming Environment, J. Parallel Distribut. Comput., 5:517–550 (1988).
Paul Havlak and Ken Kennedy, An Implementation of Interprocedural Bounded Regular Section Analysis, IEEE Trans. Parallel Distribut. Syst., 2(3):350–360 (July 1991).
http://www.mathworks.com/. Mathworks, Inc.
Luiz Antônio DeRose, Compiler Techniques for Matlab Programs, Ph.D. thesis, University of Illinois at Urbana-Champaign (1996).
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).
http://polaris.cs.uiuc.edu/majic/. MAJIC Project.
Vijay Menon and Keshav Pingali, High-level Semantic Optimization of Numerical Code, Proc. ACM-SIGARCH Int'l Conf. Supercomputing (1999).
Haskell B. Curry and Robert Fayes, Combinatory Logic, Vol. 65, Studies in Logic and the Foundation of Mathematics, North-Holland Pub. Co., Amsterdam (1958).
ACM SIGPLAN Workshop on Partial Evaluation and Semantics Based Program Manipulation.
Andreas Griewank, Evaluating Derivatives: Principles and Techniques of Algorithmic Differentiation, SIAM, Philadelphia, Pennsylvania (2000).
http://www.cs.rice.edu/' adifor/. ADIFOR Project: Automatic Differentiation of Fortran.
Samuel Z. Guyer and Calvin Lin, An Annotation Language for Optimizing Software Libraries, Proc. ACM SIGPLAN/USENIX Conf. Domain Specific Languages (1999).
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).
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).
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).
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).
R. Clint Whaley and Jack J. Dongarra, Automatically Tuned Linear Algebra Software, Proc. SC: High Performance Networking and Computing Conf. (November 1998).
http://www.hipersoft.rice.edu/grads/. GrADS: Grid Application Development Software Project.
Author information
Authors and Affiliations
Rights 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
Issue Date:
DOI: https://doi.org/10.1023/A:1019804013080