Nothing Special   »   [go: up one dir, main page]

skip to main content
research-article

A Modern Fortran Interface in OpenSHMEM Need for Interoperability with Parallel Fortran Using Coarrays

Published: 27 September 2020 Publication History

Abstract

Languages and libraries based on Partitioned Global Address Space (PGAS) programming models are convenient for exploiting scalable parallelism on large applications across different domains with irregular memory access patterns. OpenSHMEM is a PGAS-based library interface specification. As a result of using legacy non-standard Fortran features, support for Fortran language bindings is deprecated in OpenSHMEM specification version 1.4. In this work, we propose a new OpenSHMEM interface using the Fortran-C interoperability bind(C) feature introduced in Fortran 2003 language standard. This new interface is implemented over the existing C-language bindings in the OpenSHMEM specification. Through this work, we intend to showcase the expressiveness of the new proposed interface, along with its productivity and performance benefits that can be extracted in applications with irregular memory access patterns.

References

[1]
2018. GASNet-EX: A High-Performance, Portable Communication Library for Exascale. http://dx.doi.org/10.25344/S4QP4W.
[2]
Ferrol Aderholdt, Swaroop Pophale, Manjunath Gorentala Venkata, and Neena Imam. 2018. OpenSHMEM sets and groups: An approach to worksharing and memory management. In OpenSHMEM and Related Technologies. OpenSHMEM in the era of Extreme Heterogeneity: Fifth Workshop, OpenSHMEM 2018.
[3]
George Almasi. 2011. In Encyclopedia of Parallel Computing, David A. Padua (Ed.).
[4]
S. Amarasinghe, D. Campbell, W. Carlson, A. Chien, W. Dally, E. Elnohazy, M. Hall, R. Harrison, W. Harrod, and K. Hill. 2009. Exascale Software Study: Software Challenges in Extreme Scale Systems. Technical Report.
[5]
Dan Bonachea. 2002. GASNet Specification, V1.1. Technical Report. Berkeley, CA.
[6]
Aurelien Bouteiller, Swaroop Pophale, Swen Boehm, Matthew B. Baker, and Manjunath Gorentla Venkata. 2017. OpenSHMEM and Related Technologies. Big Compute and Big Data Convergence: 4th Workshop, OpenSHMEM 2017. Chapter Evaluating Contexts in OpenSHMEM-X Reference Implementation, 50--62.
[7]
William W. Carlson, Jesse M. Draper, and David E. Culler. 1996. S-246, 187 Introduction to UPC and Language Specification.
[8]
Barbara Chapman, Tony Curtis, Swaroop Pophale, Stephen Poole, Jeff Kuehn, Chuck Koelbel, and Lauren Smith. 2010. Introducing OpenSHMEM: SHMEM for the PGAS community. In Proceedings of the 4th Conference on Partitioned Global Address Space Programming Model (PGAS’10).
[9]
James Dinan and Mario Flajslik. 2014. Contexts: A mechanism for high throughput communication in OpenSHMEM. In Proceedings of the 8th International Conference on Partitioned Global Address Space Programming Models (PGAS’14). 10:1--10:9.
[10]
Alessandro Fanfarillo, Tobias Burnus, Valeria Cardellini, Salvatore Filippone, Dan Nagle, and Damian Rouson. 2014. OpenCoarrays: Open-source transport layers supporting Coarray Fortran compilers. In Proceedings of the 8th International Conference on Partitioned Global Address Space Programming Models (PGAS’14).
[11]
Shiyao Ge, Deepak Eachempati, Dounia Khaldi, and Barbara Chapman. 2015. An evaluation of anticipated extensions for Fortran Coarrays. In Proceedings of the 9th International Conference on Partitioned Global Address Space Programming Models (PGAS’15). IEEE, 47--58.
[12]
Al Geist, William Gropp, Steve Huss-Lederman, Andrew Lumsdaine, Ewing Lusk, William Saphir, Tony Skjellum, and Marc Snir. 1996. MPI-2: Extending the message-passing interface. In Euro-Par’96 Parallel Processing. 128--135.
[13]
P. Grun, S. Hefty, S. Sur, D. Goodell, R. D. Russell, H. Pritchard, and J. M. Squyres. 2015. A brief introduction to the OpenFabrics interfaces—A new network API for maximizing high performance application efficiency.
[14]
Jeff R. Hammond. 2014. Towards a matrix-oriented strided interface in OpenSHMEM. In Proceedings of the 8th International Conference on Partitioned Global Address Space Programming Models (PGAS’14). 17:1--17:3.
[15]
Torsten Hoefler, James Dinan, Rajeev Thakur, Brian Barrett, Pavan Balaji, William Gropp, and Keith Underwood. 2015. Remote memory access programming in MPI-3. ACM Trans. Parallel Comput. 2, 2 (June 2015), 9:1--9:26. http://doi.acm.org/10.1145/2780584
[16]
Torsten Hoefler and Steven Gottlieb. 2010. Parallel zero-copy algorithms for fast fourier transform and conjugate gradient using MPI datatypes. In Proceedings of the 17th European MPI Users’ Group Meeting Conference on Recent Advances in the Message Passing Interface (EuroMPI’10).
[17]
Brian W. Kernighan. 1988. The C Programming Language (2nd ed.).
[18]
P. MacArthur, Q. Liu, R. D. Russell, F. Mizero, M. Veeraraghavan, and J. M. Dennis. 2017. An integrated tutorial on InfiniBand, verbs, and MPI. IEEE Communications Surveys Tutorials 19, 4 (2017), 2894--2926.
[19]
Jeanne Martin. 1992. Fortran 90 pointers vs. “Cray” pointers. SIGPLAN Fortran Forum (1992).
[20]
Naveen Namashivayam, Bob Cernohous, Dan Pou, and Mark Pagel. 2018. Introducing Cray OpenSHMEMX - A modular multi-communication layer OpenSHMEM implementation. In OpenSHMEM 2018: 5th Workshop on OpenSHMEM and Related Technologies.
[21]
Naveen Namashivayam, Deepak Eachempati, Dounia Khaldi, and Barbara Chapman. 2015. OpenSHMEM as a portable communication layer for PGAS models: A case study with coarray fortran. In Proceedings of the 2015 IEEE International Conference on Cluster Computing (CLUSTER’15).
[22]
Naveen Namashivayam, David Knaak, Bob Cernohous, Nick Radcliffe, and Mark Pagel. 2016. An evaluation of thread-safe and contexts-domains features in Cray SHMEM. In OpenSHMEM 2016: Third Workshop on OpenSHMEM and Related Technologies.
[23]
R.J. Harrison, J. Nieplocha, and R.J. Littlefield. 1994. Global Arrays: A portable shared memory model for distributed memory computers.
[24]
Robert W. Numrich and John Reid. 1998. Co-array Fortran for parallel programming. SIGPLAN Fortran Forum 17, 2 (Aug. 1998).
[25]
John Reid. 2007. The new features of Fortran 2003. SIGPLAN Fortran Forum (2007).
[26]
John Reid. 2014. The new features of Fortran 2008. SIGPLAN Fortran Forum (2014).
[27]
Marc Snir, Steve Otto, Steven Huss-Lederman, David Walker, and Jack Dongarra. 1998. MPI-The Complete Reference, Volume 1: The MPI Core (2nd (revised) ed.). MIT Press, Cambridge, MA.
[28]
Monika ten Bruggencate and Duncan Roweth. 2010. DMAPP: An API for One-Sided Programming Model on Baker Systems. Technical Report. Cray Users Group (CUG).
[29]
Aaron Welch, Swaroop Pophale, Pavel Shamis, Oscar Hernandez, Stephen Poole, and Barbara Chapman. 2014. Extending the OpenSHMEM memory model to support user-defined spaces. In Proceedings of the 8th International Conference on Partitioned Global Address Space Programming Models (PGAS’14).

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Transactions on Parallel Computing
ACM Transactions on Parallel Computing  Volume 7, Issue 4
Special Issue on Innovations in Systems for Irregular Applications, Part 2
December 2020
179 pages
ISSN:2329-4949
EISSN:2329-4957
DOI:10.1145/3426879
Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 27 September 2020
Accepted: 01 June 2020
Revised: 01 July 2019
Received: 01 November 2018
Published in TOPC Volume 7, Issue 4

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. CAF
  2. Coarray Fortran
  3. Fortran
  4. MPI
  5. OpenSHMEM
  6. PGAS
  7. RMA libraries
  8. parallel Fortran using Coarrays

Qualifiers

  • Research-article
  • Research
  • Refereed

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 75
    Total Downloads
  • Downloads (Last 12 months)10
  • Downloads (Last 6 weeks)0
Reflects downloads up to 14 Nov 2024

Other Metrics

Citations

View Options

Get Access

Login options

Full Access

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

HTML Format

View this article in HTML Format.

HTML Format

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media