skip to main content
article
Free access

Unified compilation of Fortran 77D and 90D

Published: 01 March 1993 Publication History

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.
[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.
[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.
[4]
ALLEN, J. R., AND KENNEDY, K. 1992. Vector register allocation. IEEE Trans. Comput. 41, 10 (Oct.), 1290-1317.
[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.
[6]
ANSI X3J3 / $8.115. 1990. Fortran 90, June. ANSI, New York.
[7]
APPLIED PARALLEL RESEARCH. 1992. Forge 90 Distributed Memory Parallelizer: User's Guide, version 8.0 ed. Placerville, CA.
[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.
[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.).
[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.
[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.).
[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.).
[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.
[14]
CALLAHAN, D., AND KENNEDY, K. 1988. Compiling programs for distributed-memory multiprocessors. J. Supercomput. 2 (Oct.), 151-169.
[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.
[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.
[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.
[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.
[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.
[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.)~
[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.
[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.
[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.
[24]
HIRANANDANI, S., KENNEDY, K., AND TSENG, C. 1992a. Compiling Fortran D for MIMD distributed-memory machines. Commun. ACM 35, 8 (Aug.), 66-80.
[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.
[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.).
[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.
[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.
[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.
[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.
[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.
[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.
[33]
LUNDSTROM, S., AND BARNES, G. 1980. Controllable MIMD architectures. In Proceedings of the 1980 International Conference on Parallel Processing (St. Charles, IL, Aug.).
[34]
MCKINLEY, K.S. 1992. Automatic and interactive parallelization. Ph.D. thesis, Dept. of Computer Science, Rice Univ., Apr.
[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.).
[36]
PARASOFT CORP. 1989. Express User's Manual.
[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.
[38]
ROSING, M., SCHNABEL, R., AND WEAVER, R. 1991. The DINO parallel programming language. J. Parall. Distrib. Comput. 13, 1 (Sept.), 30-42.
[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.
[40]
TSENG, C. 1993. An optimizing Fortran D compiler for MIMD distributed-memory machines. Ph.D. thesis, Dept. of Computer Science, Rice Univ., Jan.
[41]
WOLFE, M.J. 1989. Optimizing Supercompilers for Supercomputers. The MIT Press, Cambridge, MA.
[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.).
[43]
ZIMA, H., BAST, H.-J., AND GERNDT, M. 1988. SUPERB: A tool for semi-automatic MIMD/SIMD parallelization. Parallel Comput. 6, 1-18.

Cited By

View all
  • (2011)Distributed and Cloud ComputingundefinedOnline publication date: 31-Oct-2011
  • (2005)Optimizing Fortran 90 shift operations on distributed-memory multicomputersLanguages and Compilers for Parallel Computing10.1007/BFb0014198(161-175)Online publication date: 9-Jun-2005
  • (2002)Compile Time Barrier Synchronization MinimizationIEEE Transactions on Parallel and Distributed Systems10.1109/TPDS.2002.101139413:6(529-543)Online publication date: 1-Jun-2002
  • Show More Cited By

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

Information & Contributors

Information

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

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 March 1993
Published in LOPLAS Volume 2, Issue 1-4

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Fortran D
  2. parallel languages
  3. parallel programming

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)31
  • Downloads (Last 6 weeks)3
Reflects downloads up to 23 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2011)Distributed and Cloud ComputingundefinedOnline publication date: 31-Oct-2011
  • (2005)Optimizing Fortran 90 shift operations on distributed-memory multicomputersLanguages and Compilers for Parallel Computing10.1007/BFb0014198(161-175)Online publication date: 9-Jun-2005
  • (2002)Compile Time Barrier Synchronization MinimizationIEEE Transactions on Parallel and Distributed Systems10.1109/TPDS.2002.101139413:6(529-543)Online publication date: 1-Jun-2002
  • (2002)MARS: A Distributed Memory Approach to Shared Memory CompilationLanguages, Compilers, and Run-Time Systems for Scalable Computers10.1007/3-540-49530-4_19(259-274)Online publication date: 24-Sep-2002
  • (2001)High performance Fortran 2.0Compiler optimizations for scalable parallel systems10.5555/380466.380467(3-43)Online publication date: 1-Jun-2001
  • (2001)High Performance Fortran 2.0Compiler Optimizations for Scalable Parallel Systems10.1007/3-540-45403-9_1(3-43)Online publication date: 18-May-2001
  • (1999)Nonsingular Data TransformationsInternational Journal of Parallel Programming10.1023/A:101874441170027:3(131-159)Online publication date: 1-Jun-1999
  • (1997)Non-singular data transformationsProceedings of the 11th international conference on Supercomputing10.1145/263580.263655(309-316)Online publication date: 11-Jul-1997
  • (1997)A graph based approach to barrier synchronisation minimisationProceedings of the 11th international conference on Supercomputing10.1145/263580.263624(156-163)Online publication date: 11-Jul-1997

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Get Access

Login options

Full Access

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media