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.
Preview
Unable to display preview. Download preview PDF.
References
Aho, A., Sethi, R., and Ullman, J. Compilers: Principles, Techniques and Tools. Addison-Wesley Publishing Company, 1985.
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.
Applied Parallel Research. FORGE 90 Baseline System User's Guide. Placerville, California. Version 8.9.
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.
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.
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.
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.
Budd, T. An APL Compiler. Springer-Verlag, 1988.
Carr, S., and Kennedy, K. Compiler Blockability of Numerical Algorithms. In Proceedings, Supercomputing '92 (November 1992), pp. 114–124.
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.
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.
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.
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.
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.
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.
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.
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.
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).
High Performance Fortran Forum. High Performance Fortran Language Specification, May 1993. Version 1.0.
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.
Kuck and Associates, Inc.KAP User's Guide, 4th ed. Savoy, IL 61874, 1987.
The Math Works, Inc.MATLAB, High-Performance Numeric Computation and Visualization Software. User's Guide, 1992.
Mathews, J. H. Numerical Methods for Mathematics, Science and Engineering, 2nd ed. Prentice Hall, 1992.
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.
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.
Padua, D., and Wolfe, M. Advanced Compiler Optimizations for Supercomputers. Communications of the ACM 29, 12 (December 1986), 1184–1201.
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.
Schwartz, J. T. Automatic Data Structure Choice in a Language of a Very High Level. Communications of the ACM 18 (1975), 722–728.
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.
Author information
Authors and Affiliations
Editor information
Rights 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