Skip to main content

FALCON: A MATLAB interactive restructuring compiler

  • Conference paper
  • First Online:
Languages and Compilers for Parallel Computing (LCPC 1995)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1033))

Abstract

The development of efficient numerical programs and library routines for high-performance parallel computers is a complex task requiring not only an understanding of the algorithms to be implemented, but also detailed knowledge of the target machine and the software environment. In this paper, we describe a programming environment that can utilize such knowledge for the development of high-performance numerical programs and libraries. This environment uses an existing high-level array language (MATLAB) as source language and performs static, dynamic, and interactive analysis to generate Fortran 90 programs with directives for parallelism. It includes capabilities for interactive and automatic transformations at both the operation-level and the functional- or algorithm-level. Preliminary experiments, comparing interpreted MATLAB programs with their compiled versions, show that compiled programs can perform up to 48 times faster on a serial machine, and up to 140 times faster on a vector machine.

Supported by the CSRD Affiliates under grant from the U.S. National Security Agency.

Supported by the National Science Foundation under Grant No. US NSF CCR-9120105 and by ARPA under a subcontract from the University of Minnesota of Grant No. ARPA/NIST 60NANB2D1272.

Supported by the National Science Foundation under Grant No. US NSF CCR- 9120105.

Supported in part by Army contract DABT63-92-C-0033. This work is not necessarily representative of the positions or policies of the Army or the Government.

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

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Aho, A., Sethi, R., and Ullman, J. Compilers: Principles, Techniques and Tools. Addison-Wesley Publishing Company, 1985.

    Google Scholar 

  2. Amarasinghe, S. P., Anderson, J. M., Lam, M. S., and Lim, A. W. An Overview of a Compiler for Scalable Parallel Machines. In Languages and Compilers for Parallel Computing (August 1993), U. Banerjee, D. Gelernter, A. Nicolau, and D. Padua, Eds., Springer-Verlag, pp. 253–272. 6th International Workshop, Portland, Oregon.

    Google Scholar 

  3. Applied Parallel Research. FORGE 90 Baseline System User's Guide. Placerville, California. Version 8.9.

    Google Scholar 

  4. Backus, J. Can Programming Be Liberated from the Von Newmann Style? A Functional Style and Its Algebra of Programs. Communications of the ACM 21, 8 (August 1978), 613–641.

    Article  Google Scholar 

  5. Barrett, R., Berry, M., Chan, T., Demmel, J., Donato, J., Dongarra, J., Eijkhout, V., Pozo, R., Romine, C., and van der Vorst, H. Templates for the Solution of Linear Systems: Building Blocks for Iterative Methods. SIAM, 1993.

    Google Scholar 

  6. Blume, W., and Eigenmann, R. The Range Test: A Dependence Test for Symbolic, Non-linear Expressions. In Proceedings of Supercomputing '94 (November 1994), pp. 528–537.

    Google Scholar 

  7. Bodin, F., Beckman, P., Gannon, D., Narayana, S., and Yang, S. Distributed pC++: Basic Ideas for an Object Parallel Language. In OON-SKI'93 Proceedings of the First Annual Object-Oriented Numerics Conference (April 1993), pp. 1–24.

    Google Scholar 

  8. Budd, T. An APL Compiler. Springer-Verlag, 1988.

    Google Scholar 

  9. Carr, S., and Kennedy, K. Compiler Blockability of Numerical Algorithms. In Proceedings, Supercomputing '92 (November 1992), pp. 114–124.

    Google Scholar 

  10. Char, B. W., Geddes, K. O., Gonnet, G. H., Leong, B. L., Monagan, M. B., and Watt, S. M.Maple V Language Reference Manual. Springer-Verlag, New York, 1991.

    Google Scholar 

  11. Ching, W.-M. Program Analysis and Code Generation in an APL/370 Compiler. IBM Journal of Research and Development 30:6 (November 1986), 594–602.

    Google Scholar 

  12. Cook Jr., G. O. ALPAL A Tool for the Development of Large-Scale Simulation Codes. Tech. rep., Lawrence Livermore National Laboratory, August 1988. Technical Report UCID-21482.

    Google Scholar 

  13. Cousot, P., and Halbwachs, N. Automatic Discovery of Linear Restraints Among Variables of a Program. In Proceedings of the 5th Anual ACM Symposium on Principles of Programming Languages (1978), pp. 84–97.

    Google Scholar 

  14. Cytron, R., Ferrante, J., Rosen, B. K., Wegman, M. N., and Zadeck, F. K. Efficiently Computing Static Single Assignment Form and the Control Dependence Graph. ACM Transactions on Programming Language and Systems 13, 4 (October 1991), 451–490.

    Article  Google Scholar 

  15. Dai, D. L., Gupta, S. K. S., Kaushik, S. D., Lu, J. H., Singh, R. V., Huang, C.-H., Sadayappan, P., and Johnson, R. W. EXTENT: A Portable Programming Environment for Designing and Implementing High-Performance Block-Recursive Algorithms. In Proceedings of Supercomputing '94 (November 1994), pp. 49–58.

    Google Scholar 

  16. DeRose, L., Gallivan, K., Gallopoulos, E., Marsolf, B., and Padua, D. An Environment for the Rapid Prototyping and Development of Numerical Programs and Libraries for Scientific Computation. In Proc. of the DAGS'94 Symposium: Parallel Computation and Problem Solving Environments (Dartmouth College, July 1994), F. Makedon, Ed., pp. 11–25.

    Google Scholar 

  17. Gallivan, K., and Marsolf, B. Practical Issues Related to Developing Object-Oriented Numerical Libraries. In OON-SKI'94 Proceedings of the Second Annual Object-Oriented Numerics Conference (April 1994), pp. 93–106.

    Google Scholar 

  18. Gerlek, M. P., Stoltz, E., and Wolfe, M. Beyond Induction Variables: Detecting and Classifying Sequences Using a Demand-driven SSA Form. ACM TOPLAS (to appear).

    Google Scholar 

  19. High Performance Fortran Forum. High Performance Fortran Language Specification, May 1993. Version 1.0.

    Google Scholar 

  20. Houstis, E. N., Rice, J. R., Chrisochoides, N. P., Karathanasis, H. C., Papachiou, P. N., Samartizs, M. K., Vavalis, E. A., Wang, K. Y., and Weerawarana, S. //ELLPACK: A Numerical Simulation Programming Environment for Parallel MIMD Machines. In Proceedings 1990 International Conference on Supercomputing (1990), pp. 96–107.

    Google Scholar 

  21. Kuck and Associates, Inc.KAP User's Guide, 4th ed. Savoy, IL 61874, 1987.

    Google Scholar 

  22. The Math Works, Inc.MATLAB, High-Performance Numeric Computation and Visualization Software. User's Guide, 1992.

    Google Scholar 

  23. Mathews, J. H. Numerical Methods for Mathematics, Science and Engineering, 2nd ed. Prentice Hall, 1992.

    Google Scholar 

  24. Muraoka, Y., and Kuck, D. J. On the Time Required for a Sequence of Matrix Products. Communications of the ACM 16, 1 (January 1973), 22–26.

    Article  Google Scholar 

  25. Padua, D., Eigenmann, R., Hoeflinger, J., Petersen, P., Tu, P., Weatherford, S., and Faigin, K. Polaris: A New-Generation Parallelizing Compiler for MPP's. Tech. rep., Univ. of Illinois at Urbana-Champaign, Center for Supercomputing Research and Development, June 1993. CSRD Report No. 1306.

    Google Scholar 

  26. Padua, D., and Wolfe, M. Advanced Compiler Optimizations for Supercomputers. Communications of the ACM 29, 12 (December 1986), 1184–1201.

    Article  Google Scholar 

  27. Polychronopoulos, C., Girkar, M., Haghighat, M. R., Lee, C.-L., Leung, B., and Schouten, D. Parafrase-2: A New Generation Parallelizing Compiler. In Proceedings of 1989 Int'l. Conference on Parallel Processing, St. Charles, IL (August 1989), vol. II, pp. 39–48.

    Google Scholar 

  28. Schwartz, J. T. Automatic Data Structure Choice in a Language of a Very High Level. Communications of the ACM 18 (1975), 722–728.

    Article  Google Scholar 

  29. Tu, P., and Padua, D. Automatic Array Privatization. In Languages and Compilers for Parallel Computing (August 1993), U. Banerjee, D. Gelernter, A. Nicolau, and D. Padua, Eds., Springer-Verlag, pp. 500–521. 6th International Workshop, Portland, Oregon.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Chua-Huang Huang Ponnuswamy Sadayappan Utpal Banerjee David Gelernter Alex Nicolau David Padua

Rights and permissions

Reprints and permissions

Copyright information

© 1996 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

De Rose, L., Gallivan, K., Gallopoulos, E., Marsolf, B., Padua, D. (1996). FALCON: A MATLAB interactive restructuring compiler. In: Huang, CH., Sadayappan, P., Banerjee, U., Gelernter, D., Nicolau, A., Padua, D. (eds) Languages and Compilers for Parallel Computing. LCPC 1995. Lecture Notes in Computer Science, vol 1033. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0014205

Download citation

  • DOI: https://doi.org/10.1007/BFb0014205

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-60765-6

  • Online ISBN: 978-3-540-49446-1

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics