Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article

Co-arrays in the next Fortran Standard

Published: 01 August 2005 Publication History

Abstract

The WG5 committee, at its meeting in Delft, May 2005, decided to include co-arrays in the next Fortran Standard. A special issue of Fortran Forum in August 1998 explained the feature, but since many of the details of the version adopted by WG5 differ from the 1998 version, it seems appropriate to describe it afresh in a self-contained article.A Fortran program containing co-arrays is interpreted as if it were replicated a fixed number of times and all copies were executed asynchronously. Each copy has its own set of data objects and is called an image. The array syntax of Fortran is extended with additional trailing subscripts in square brackets to give a clear and straightforward representation of access to data on other images.References without square brackets are to local data, so code that can run independently is uncluttered. Only where there are square brackets, or where there is a procedure call and the procedure contains square brackets, is communication between images involved.The additional syntax requires support in the compiler, but it has been designed to be easy to implement and to give the compiler scope both to apply its optimizations within each image and to optimize the communication between images.The extension includes intrinsic procedures to synchronize images, to return the number of images, to return the index of the current image, and to perform collective actions.

References

[1]
Coarfa, C., Dotsenko, Y., and Mellor-Crummey, J. (2004). Experiences with Sweep3D implementations in Co-Array Fortran. In Proceedings of the Los Alamos Computer Science Institute 5th Annual Symposium (LACSI, 2004), Santa Fe, USA.]]
[2]
Dotsenko, Y., Coarfa, C., and Mellor-Crummey, J. (2004). A multi-platform Co-Array Fortran compiler. In Proceedings of the 13th International Conference on Parallel Architecture and Compilation Techniques (PACT 2004), Antibes Juan-les-Pins, France.]]
[3]
Dotsenko, Y., Coarfa, C., Mellor-Crummey, J., and Chavarri a-Miranda, D. (2004). Experiences with Co-Array Fortran on hardware shared memory platforms. In Proceedings of the 17th International Workshop on Languages and Compilers for Parallel Computing (LCPC 2004), West Lafayette, Indiana, USA.]]
[4]
Nieplocha, J. and Carpenter, B. (1999). ARMCI: A portable remote memory copy library for distributed array libraries and compiler run-time systems, Vol. 1586 of Lecture Notes in Computer Science, pp. 533--546, Springer-Verlag.]]
[5]
Numrich, R. W. (1997). F-- : A parallel extension to Cray Fortran. Scientific Programming 6, 275--284.]]
[6]
Numrich, R. W. (2005). Parallel numerical algorithms based on tensor notation and Co-Array Fortran syntax.]]
[7]
14.Parallel Computing, in press.]]
[8]
Numrich, R. W. and Reid, J. K. (1998). Co-Array Fortran for parallel programming. ACM Fortran Forum (1998), 17, 2 (Special Report) and Rutherford Appleton Laboratory report RAL-TR-1998-060 available as ftp://ftp.numerical.rl.ac.uk/pub/reports/nrRAL98060.pdf]]
[9]
Numrich, R. W., Reid, J. K., and Kim, K. (1998). Writing a multigrid solver using Co-array Fortran. To appear in the Proceeding of the fourth International Workshop on Applied Parallel Computing (PARA98), Umea University, Umea Sweden, June, 1998.]]
[10]
Numrich, R. W. and Steidel, J. L. (1997). F-- : A simple parallel extension to Fortran 90. SIAM News, 30, 7, 1--8.]]
[11]
Reid, J. K. (2005). Co-array Fortran for parallel programming. ISO/IEC/JTC1/SC22/WG5-N1626, requirement UK-001, see ftp://ftp.nag.co.uk/sc22wg5/N1601-N1650/N1626.txt]]
[12]
WG5 (2005). Revision of Requirement UK-001. ISO/IEC/JTC1/SC22/WG5-N1639, see ftp://ftp.nag.co.uk/sc22wg5/N1601-N1650/N1639.txt]]

Cited By

View all
  • (2024)RMASanitizer: Generalized Runtime Detection of Data Races in Remote Memory Access ApplicationsProceedings of the 53rd International Conference on Parallel Processing10.1145/3673038.3673109(833-844)Online publication date: 12-Aug-2024
  • (2024)On the Performance of Malleable APGAS Programs and Batch Job SchedulersSN Computer Science10.1007/s42979-024-02641-75:4Online publication date: 27-Mar-2024
  • (2022)Improving Fortran Performance PortabilityLanguages and Compilers for Parallel Computing10.1007/978-3-030-95953-1_6(74-83)Online publication date: 16-Feb-2022
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM SIGPLAN Fortran Forum
ACM SIGPLAN Fortran Forum  Volume 24, Issue 2
August 2005
26 pages
ISSN:1061-7264
EISSN:1931-1311
DOI:10.1145/1080399
Issue’s Table of Contents

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 August 2005
Published in SIGPLAN-FORTRAN Volume 24, Issue 2

Check for updates

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)2
  • Downloads (Last 6 weeks)0
Reflects downloads up to 13 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2024)RMASanitizer: Generalized Runtime Detection of Data Races in Remote Memory Access ApplicationsProceedings of the 53rd International Conference on Parallel Processing10.1145/3673038.3673109(833-844)Online publication date: 12-Aug-2024
  • (2024)On the Performance of Malleable APGAS Programs and Batch Job SchedulersSN Computer Science10.1007/s42979-024-02641-75:4Online publication date: 27-Mar-2024
  • (2022)Improving Fortran Performance PortabilityLanguages and Compilers for Parallel Computing10.1007/978-3-030-95953-1_6(74-83)Online publication date: 16-Feb-2022
  • (2021)RMACXX: An Efficient High-Level C++ Interface over MPI-3 RMA2021 IEEE/ACM 21st International Symposium on Cluster, Cloud and Internet Computing (CCGrid)10.1109/CCGrid51090.2021.00024(143-155)Online publication date: May-2021
  • (2021)Pure Functions in C: A Small Keyword for Automatic ParallelizationInternational Journal of Parallel Programming10.1007/s10766-020-00660-449:1(1-24)Online publication date: 1-Feb-2021
  • (2020)History of coarrays and SPMD parallelism in FortranProceedings of the ACM on Programming Languages10.1145/33863224:HOPL(1-30)Online publication date: 12-Jun-2020
  • (2020)Novel Computer Architectures and Quantum ChemistryThe Journal of Physical Chemistry A10.1021/acs.jpca.0c02249124:23(4557-4582)Online publication date: 7-May-2020
  • (2020)Design and evaluation of efficient global data movement in partitioned global address spaceParallel Computing10.1016/j.parco.2020.10262496(102624)Online publication date: Aug-2020
  • (2019)Advert: An Asynchronous Runtime for Fine-Grained Network Systems2019 IEEE/ACM Third Annual Workshop on Emerging Parallel and Distributed Runtime Systems and Middleware (IPDRM)10.1109/IPDRM49579.2019.00006(9-17)Online publication date: Nov-2019
  • (2019)Resilient computational applications using Coarray FortranParallel Computing10.1016/j.parco.2018.12.00281(58-67)Online publication date: Jan-2019
  • Show More Cited By

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media