skip to main content
article
Free Access

Unified compilation of Fortran 77D and 90D

Published:01 March 1993Publication History
Skip Abstract Section

Abstract

We present a unified approach to compiling Fortran 77D and Fortran 90D programs for efficient execution of MIMD distributed-memory machines. The integrated Fortran D compiler relies on two key observations. First, array constructs may be scalarized into FORALL loops without loss of information. Second, loop fusion, partitioning, and sectioning optimizations are essential for both Fortran D dialects.

References

  1. AHMAD, I., CHOUDHARY, A., FOX, G., PARASURAM, K., PONNUSAMY, R., RANKA, S., AND THAKUR, R. 1992. Implementation and scalability of Fortran 90D intrinsic functions on distributed memory machines. Technical Report SCCS-256, NPAC, Syracuse Univ., Mar.Google ScholarGoogle Scholar
  2. ALBERT, E., KNOBE, K., LUKAS, J., AND STEELE, JR., G. 1988. Compiling Fortran 8x array features for the Connection Machine computer system. In Proceedings of the ACM SIGPLAN Symposium on Parallel programming: Expertence with Applications, Languages, and Systems (PPEALS) (New Haven, CT, July). ACM, New York. Google ScholarGoogle Scholar
  3. ALBERT, E., LUKAS, J., AND STEELE, JR., G. 1991. Data parallel computers and the FORALL statement. J. Parallel Distrtb. Comput. 13, 2 (Oct.), 185-192. Google ScholarGoogle Scholar
  4. ALLEN, J. R., AND KENNEDY, K. 1992. Vector register allocation. IEEE Trans. Comput. 41, 10 (Oct.), 1290-1317. Google ScholarGoogle Scholar
  5. ALLEN, J. a., AND KENNEDY, K. 1987. Automatic translation of Fortran programs to vector form. ACM Trans. Prog. Lang. Syst. 9, 4 (Oct.), 491-542. Google ScholarGoogle Scholar
  6. ANSI X3J3 / $8.115. 1990. Fortran 90, June. ANSI, New York.Google ScholarGoogle Scholar
  7. APPLIED PARALLEL RESEARCH. 1992. Forge 90 Distributed Memory Parallelizer: User's Guide, version 8.0 ed. Placerville, CA.Google ScholarGoogle Scholar
  8. BALASUNDARAM, V., Fox, G., KENNEDY, K., AND KREMER, U. 1991. A static performance estimator to guide data partitioning decisions. In Proceedings of the 3rd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programmtng (Williamsburg, VA, Apr.). ACM, New York. Google ScholarGoogle Scholar
  9. BALASUNDARAM, V., FOX, G., KENNEDY, K., AND KREMER, V. 1990. An interactive environment for data partitioning and distribution. In Proceedings of the 5th Distributed Memory Computing Conference (Charleston, SC, Apr.).Google ScholarGoogle Scholar
  10. BELTRAMETTI, M., BOBEY, K., AND ZORBAS, J. 1988. The control mechanism for the Myrias parallel computer system. Comput. Arch. News 16, 4 (Sept.), 21-30. Google ScholarGoogle Scholar
  11. BENKNER, S., CHAPMAN, B., AND ZIMA, H. 1992. Vienna Fortran 90. In Proceedings of the 1992 Scalable High Performance Computing Conference (Williamsburg, VA, Apr.).Google ScholarGoogle Scholar
  12. BRANDES, T. 1993. Automatic translation of data parallel programs to message passing programs. In Proceedings of AP'93 International Workshop on Automatic Distributed Memory Parallelization, Automatic Data Distributmn and Automatic Parallel Performance Prediction (Saarbriicken, Germany, Mar.).Google ScholarGoogle Scholar
  13. BROMLEY, M., HELLER, S., MCNERNEY, T., AND STEELE, JR., G. 1991. Fortran at ten gigaflops: The Connection Machine convolution compiler. In Proceedings of the SIGPLAN '91 Conference on Program Language Design and Implementation (Toronto, Canada, June). ACM, New York. Google ScholarGoogle Scholar
  14. CALLAHAN, D., AND KENNEDY, K. 1988. Compiling programs for distributed-memory multiprocessors. J. Supercomput. 2 (Oct.), 151-169.Google ScholarGoogle Scholar
  15. CARR, S., KENNEDY, K., MCKINLEY, K. S., AND TSENG, C. 1992. Compiler optimizations for improving data locality. Tech. Rep. TR92-195, Dept. of Computer Science, Rice Univ., Nov.Google ScholarGoogle Scholar
  16. CHATTERJEE, S., GILBERT, J., SCHREIBER, R., AND TENG, S. 1993. Automatic array alignment in data-parallel programs. In Proceedings of the 20th Annual ACM Symposium on the Principles of Programming Languages (Charleston, SC, Jan.). ACM, New York. Google ScholarGoogle Scholar
  17. CHEN, M., AND COWIE, J. 1992. Prototyping Fortran-90 compilers for massively parallel machines. In Proceedings of the SIGPLAN '92 Conference on Program Language Design and Implementation (San Francisco, CA, June). ACM, New York. Google ScholarGoogle Scholar
  18. COOPER, K., HALL, M. W., HOOD, R. T., KENNEDY, K., MCKINLEY, K. S., MELLOR-CRUMMEY, J. M., TORCZON, L., AND WARREN, S.K. 1993. The ParaScope parallel programming environment. Prec. IEEE 81, 2 (Feb.), 244-263.Google ScholarGoogle Scholar
  19. Fox, G., HIRANANDANI, S., KENNEDY, K., KOELBEL, C., KREMER, U., TSENG, C., AND WU, M. 1990. Fortran D language specification. Tech. Rep. TR90-141, Dept. of Computer Science, Rice Univ., Dec.Google ScholarGoogle Scholar
  20. HALL, M. W., HIRANANDANI, S., KENNEDY, K., AND TSENG, C. 1992. Interprocedural compilation of Fortran D for MIMD distributed-memory machines. In Proceedings of Supercomputing '92 (Minneapolis, MN, Nov.)~ Google ScholarGoogle Scholar
  21. HATCHER, P., QUINN, M., LAPADULA, A., SEEVERS, B., ANDERSON, R., AND JONES, R. 1991. Data-parallel programming on MIMD computers. IEEE Trans. Parallel Distrib. Syst. 2, 3 (July), 377-383. Google ScholarGoogle Scholar
  22. HIGH PERFORMANCE FORTRAN FORUM. 1993. High Performance Fortran language specification, version 1.0. Tech. Rep. CRPC-TR92225, Center for Research on Parallel Computation, Rice Univ., Houston, TX, Jan.Google ScholarGoogle Scholar
  23. HIRANANDANI, S., KENNEDY, K., KOELBEL, C., KREMER, U., AND TSENG, C. 1991. An overview of the Fortran D programming system. In Languages and Compilers for Parallel Computing, 4th International Workshop (Santa Clara, CA, Aug.), U. Banerjee, D. Gelernter, A. Nicolau, and D. Padua, Eds. Springer-Verlag, New York. Google ScholarGoogle Scholar
  24. HIRANANDANI, S., KENNEDY, K., AND TSENG, C. 1992a. Compiling Fortran D for MIMD distributed-memory machines. Commun. ACM 35, 8 (Aug.), 66-80. Google ScholarGoogle Scholar
  25. HIRANANDANI, S., KENNEDY, K., AND TSENG, C. 1992b. Evaluation of compiler optimizations for Fortran D on MIMD distributed-memory machines. In Proceedings of the 1992 ACM International Conference on Supercomputing (Washington, DC, July). ACM, New York. Google ScholarGoogle Scholar
  26. IKUDOME, K., FOX, G., KOLAWA, A., AND FLOWER, J. 1990. An automatic and symbolic parallelization system for distributed memory parallel computers. In Proceedings of the 5th Distributed Memory Computing Conference (Charleston, SC, Apr.).Google ScholarGoogle Scholar
  27. KENNEDY, K., AND KREMER, U. 1991. Automatic data alignment and distribution for loosely synchronous problems in an interactive programming environment. Tech. Rep. TR91-155, Dept. of Computer Science, Rice Univ., Apr.Google ScholarGoogle Scholar
  28. KENNEDY, K., AND MCKINLEY, K.S. 1992. Optimizing for parallelism and data locality. In Proceedings of the 1992 ACM international Conference on Supercomputing (Washington, DC, July). ACM, New York. Google ScholarGoogle Scholar
  29. KNOBE, K., LUKAS, J., AND STEELE, JR., G. 1990. Data optimization: Allocation of arrays to reduce communication on SIMD machines. J. Parallel Distrib. Comput. 8, 2 (Feb.), 102-118. Google ScholarGoogle Scholar
  30. KOELBEL, C., AND MEHROTRA, P. 1991. Compiling global name-space parallel loops for distributed execution. IEEE Trans. Parall. Distrib. Syst. 2, 4 (Oct.), 440-451. Google ScholarGoogle Scholar
  31. KUCK, D., KUHN, R., PADUA, D., LEASURE, B., AND WOLFE, M.J. 1981. Dependence graphs and compiler optimizations. In Conference Record of the 8th Annual ACM Symposium on the Principles of Programming Languages (Williamsburg, VA, Jan.). ACM, New York. Google ScholarGoogle Scholar
  32. LI, J~, AND CHEN, M. 1991. Compiling communication-efficient programs for massively parallel machines. IEEE Trans. Parall. Distrib. Syst. 2, 3 (July), 361-376. Google ScholarGoogle Scholar
  33. LUNDSTROM, S., AND BARNES, G. 1980. Controllable MIMD architectures. In Proceedings of the 1980 International Conference on Parallel Processing (St. Charles, IL, Aug.).Google ScholarGoogle Scholar
  34. MCKINLEY, K.S. 1992. Automatic and interactive parallelization. Ph.D. thesis, Dept. of Computer Science, Rice Univ., Apr. Google ScholarGoogle Scholar
  35. MISrtLIN, J. 1~9191. ADAFTing ForCran-90 array programs for distributed memory architectures. In First international Conference of the Austrian Center for Parallel Computation (Salzburg, Austria, Sept.).Google ScholarGoogle Scholar
  36. PARASOFT CORP. 1989. Express User's Manual.Google ScholarGoogle Scholar
  37. ROGERS, A., AND PINGALI, K. 1989. Process decomposition through locality of reference. In Proceedings of the SIGPLAN '89 Conference on Program Language Design and implementation (Portland, OR, June). ACM, New York. Google ScholarGoogle Scholar
  38. ROSING, M., SCHNABEL, R., AND WEAVER, R. 1991. The DINO parallel programming language. J. Parall. Distrib. Comput. 13, 1 (Sept.), 30-42. Google ScholarGoogle Scholar
  39. SARKAR, V., AND GAO, G. 1991. Optimization of array accesses by collective loop transformations. In Proceedings of the 1991 ACM International Conference on Supercomputmg (Cologne, Germany, June). ACM, New York. Google ScholarGoogle Scholar
  40. TSENG, C. 1993. An optimizing Fortran D compiler for MIMD distributed-memory machines. Ph.D. thesis, Dept. of Computer Science, Rice Univ., Jan. Google ScholarGoogle Scholar
  41. WOLFE, M.J. 1989. Optimizing Supercompilers for Supercomputers. The MIT Press, Cambridge, MA. Google ScholarGoogle Scholar
  42. Wu, M., AND FOX, G. 1992. A test suite approach for Fortran 90D compilers on MIMD distributed memory parallel computers. In Proceedings of the 1992 Scalable Hzgh Performance Computing Conference (Williamsburg, VA, Apr.).Google ScholarGoogle Scholar
  43. ZIMA, H., BAST, H.-J., AND GERNDT, M. 1988. SUPERB: A tool for semi-automatic MIMD/SIMD parallelization. Parallel Comput. 6, 1-18.Google ScholarGoogle Scholar

Index Terms

  1. Unified compilation of Fortran 77D and 90D

            Recommendations

            Reviews

            William M. Waite

            FORTRAN D is an extension of FORTRAN for the specification of parallel algorithms. It is applicable to either FORTRAN 77 or FORTRAN 90. This paper gives a high-level overview of a compilation process that can be used to translate programs in both dialects for a variety of machines. The general strategy is to use a modification of the extension to FORTRAN 77 as an intermediate language. Two straight f orward frontend processors, one for FORTRAN 77D and the other for FORTRAN 90D, produce this intermediate code. A single backend processor then translates the intermediate representation into FORTRAN 77, which is compiled by the target machine's compiler. Thus FORTRAN 77 plays the role of a universal assembler in this system. Communication among processors and certain common matrix operations are implemented by a standard runtime library. Measurements and examples show the importance of a number of optimizations performed by the backend processor. Their purpose and general properties are stated, but references to the original literature are provided in lieu of details. Compiler experts will find little in this paper beyond the references. The particular frontend/backend partitioning of tasks is interesting, but the lack of detail is frustrating. Suppression of detail was the correct decision, however, given the venue. The paper is readable, gives a good overview, and places the literature in perspective. It can serve as a top-level map for a nonexpert who wishes to learn more about this area of compiler construction.

            Access critical reviews of Computing literature here

            Become a reviewer for Computing Reviews.

            Comments

            Login options

            Check if you have access through your login credentials or your institution to get full access on this article.

            Sign in

            Full Access

            • Published in

              cover image ACM Letters on Programming Languages and Systems
              ACM Letters on Programming Languages and Systems  Volume 2, Issue 1-4
              March–Dec. 1993
              241 pages
              ISSN:1057-4514
              EISSN:1557-7384
              DOI:10.1145/176454
              Issue’s Table of Contents

              Copyright © 1993 ACM

              Publisher

              Association for Computing Machinery

              New York, NY, United States

              Publication History

              • Published: 1 March 1993
              Published in loplas Volume 2, Issue 1-4

              Permissions

              Request permissions about this article.

              Request Permissions

              Check for updates

              Qualifiers

              • article

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader