[RFC] Parallel Runtime Interface for Fortran (PRIF)

In the Flang call on Wednesday, December 20, (see associated Google Doc and call in information here), Brad Richardson (@everythingfunctional) is going to be giving a presentation on a design document for the Parallel Runtime Interface for Fortran (PRIF).

This design document proposes an interface to support the parallel features of Fortran, named the Parallel Runtime Interface for Fortran (PRIF). PRIF is a proposed solution in which the runtime library is responsible for coarray allocation, deallocation and accesses, image synchronization, atomic operations, events, and teams. In this interface, the compiler is responsible for transforming the invocation of Fortran-level parallel features into procedure calls to the necessary PRIF procedures. The interface is designed for portability across shared- and distributed-memory machines, different operating systems, and multiple architectures. Implementations of this interface are intended as an augmentation for the compiler’s own runtime library. With an implementation-agnostic interface, alternative parallel runtime libraries may be developed that support the same interface. One benefit of this approach is the ability to vary the communication substrate. A central aim of this document is to define a parallel runtime interface in standard Fortran syntax, which enables us to leverage Fortran to succinctly express various properties of the procedure interfaces, including argument attributes.

Feel free to peruse the design document ahead of the meeting:
PRIF_0.2.pdf (400.1 KB)

6 Likes

Slides from the presentation are attached for anyone interested.

PRIF_Design_Overview.pdf (783.9 KB)

In response to a question in today’s call, the following slides cite a few examples of the use of Fortran’s parallel features in applications: Parallel Fortran Applications.pdf (2.0 MB)

@everythingfunctional has created a PR to document this in the flang repository.

1 Like

To anyone interested (and if you’d be willing to review and provide comments we’d greatly appreciate it :wink:) we have produced a new revision of this document. You can find a PDF version here, and if you would like to provide feedback, please do so on the PR.

1 Like