Advertisement

MaJIC: A Matlab Just-In-Time Compiler

  • George Almasi
  • David A. Padua
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2017)

Abstract

This paper describes our experience with MaJIC, a just-intime compiler for MATLAB. In the recent past, several compiler projects claimed large performance improvements when processing MATLAB code. Most of these projects are static compilers suited for batch processing; MaJIC is a just-in-time compiler. The compilation process is transparent to the user. This impacts the modus operandi of the compiler, resulting in a few interesting analysis techniques. Our experiments with MaJIC indicate large speedups when compared to the interpreter, and reasonable performance when compared to static compilers.

Keywords

Program Language Design Symbol Table Common Subexpression Elimination Function Inlining International Parallel Processing Symposium 
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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [1]
    P. Banerjee, N. Shenoy, A. Choudhary, S. Hauck, C. Bachmann, M. Chang, M. Haldar, P. Joisha, A. Jones, A. Kanhare, A. Nayak, S. Periyacheri, and M. Walkden. Match: A matlab compiler for configurable computing systems. Technical Report CPDC-TR-9908-013, Center for Parallel and Distributed Computing, Northwestern University, Aug. 1999.Google Scholar
  2. [2]
    W. Blume and R. Eigenmann. Symbolic range propagation. In Proceedings of the 9th International Parallel Processing Symposium, April 1995.Google Scholar
  3. [3]
    F. Bodin. MENHIR: High performance code generation for MATLAB. http://www.irisa.fr/caps/PEOPLE/Francois/.
  4. [4]
    P. Bonzini. The GNU Smalltalk Homepage.Google Scholar
  5. [5]
    L. DeRose and D. Padua. Techniques for the translation of mat lab programs into fortran 90. ACM Transactions on Programming Languages and Systems (TOPLAS), 21(2):285–322, March 1999.CrossRefGoogle Scholar
  6. [6]
    L. A. DeRose. Compiler Techniques for MATLAB Programs. Technical Report UIUCDCS-R-96-1996, Department of Computer Science, University of Illinois, 1996.Google Scholar
  7. [7]
    L. P. Deutsch and A. Schiffman. Efficient Implementation of the Smalltalk-80 System. In Proceedings of the 11th Symposium on the Principles of Programming Languages, Salt Lake City, UT, 1984.Google Scholar
  8. [8]
    J. W. Eaton. Octave homepage. http://bevo.che.wisc.edu/octave/.
  9. [9]
    D. R. Engler. VCODE: a portable, very fast dynamic code generation system. In Proceedings of the ACM SIGPLAN Conference on Programming Languages Design and Implementation (PLDI’ 96), Philadelphia PA, May 1996.Google Scholar
  10. [10]
    R. Gupta. Optimizing array bounds checks using flow analysis. ACM Letters on Programming Languages and Systems, 2(1-4):135–150, 1993.Google Scholar
  11. [11]
    F. G. Gustavson. Recursion leads to automatic variable blocking for dense linear algebra algorithms. IBM Journal of Research and Development, 41(6):737–753, November 1997.CrossRefGoogle Scholar
  12. [12]
    G.-H. Hwang and J. K. Lee. An array operation synthesis scheme to optimize fortran 90 programs. In PPOPP’ 95, pages 112–122, Santa Clara, USA, 1995.Google Scholar
  13. [13]
    Mathtools inc homepage. http://www.mathtools.com.
  14. [14]
    Mathworks Inc. homepage. http://www.mathworks.com.
  15. [15]
  16. [16]
    V. Menon and K. Pingali. High-level semantic optimization of numerical codes. In 1999 ACM Conference on Supercomputing. ACMS IGARCH, June 1999.Google Scholar
  17. [17]
    V. Menon and A. E. Trefethen. MultiMATLAB: Integrating MATLAB with high performance parallel computing. In Proceedings of Supercomputing’ 97, 1997.Google Scholar
  18. [18]
    S. S. M uchnick and N. D. Jones. Program Flow Analysis: Theory and Application. Prentice Hall, 1981.Google Scholar
  19. [19]
    M. Poletto, D. R. E ngler, and M. F. Kaashoek. tcc: A system for fast, flexible, and high-level dynamic code generation. In ACM SIGPLAN’ 97 Conference on Programming Language Design and Implementation (PLDI), pages 109–121, Las Vegas, Nevada, May 1997.Google Scholar
  20. [20]
    R. C. W haley and J. J. Dongarra. Automatically tuned linear algebra software. In Supercomputing’ 98, 1998.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2001

Authors and Affiliations

  • George Almasi
    • 1
  • David A. Padua
    • 1
  1. 1.Department of Computer ScienceUniversity of Illinois

Personalised recommendations