@@ -21,22 +21,25 @@ parallelism beginning with Fortran 2008. In Fortran, SPMD programming
2121involves the creation of a fixed number of images (instances) of a
2222program that execute asynchronously in shared or distributed memory, except
2323where a program uses specific synchronization mechanisms. Fortran's
24- " coarray" distributed data structures offer a subscripted,
24+ coarray feature provides distributed data structures that offer a subscripted,
2525multidimensional array notation defining a partitioned global address space
26- (PGAS). One image can use this notation for one-sided access to another
27- image's slice of a coarray .
26+ (PGAS). One image can use the cosubscript notation to perform one-sided access
27+ of coarray data associated with another image .
2828
2929Fortran 2018 greatly expanded this feature set to include such concepts as
3030teams (groupings) of images, events (counting semaphores), collective
3131subroutines and failed-image detection (fault tolerance). Fortran 2023 provided
3232additional, minor multi-image extensions, including notified remote data access.
3333
34- Several popular Fortran compilers, including LLVM ` flang ` and LFortran, currently
35- lack support for multi-image parallel execution. These features are a mandatory
34+ Several popular Fortran compilers, including LLVM Flang and LFortran, currently
35+ lack complete support for multi-image parallel execution. These features are a mandatory
3636part of Fortran, and thus are an important part of reaching full compliance with
37- the 2008, 2018, or 2023 versions of the Fortran standard.
37+ the 2008, 2018, or 2023 versions of the Fortran standard. Thanks to PRIF and Caffeine,
38+ the forthcoming LLVM Flang 22 release is expected to support a meaningful subset of
39+ multi-image Fortran features. For more details, see
40+ [ LLVM-HPC2025 paper] ( #Additional-Publications ) below.
3841
39- Caffeine aims to provide a portable, high-performance and open-source parallel
42+ Caffeine provides a portable, high-performance and open-source parallel
4043runtime library that such compilers can target in code generation as part of
4144their solution to support Fortran's multi-image parallel features.
4245
@@ -45,9 +48,9 @@ Prerequisites & Dependencies
4548### Build prerequisites
4649The ` install.sh ` script uses the following packages:
4750* Fortran and C compilers
48- * We regularly test with: gfortran v13, v14 and LLVM Flang 19, 20
49- * On macOS the Homebrew-installed llvm and flang packages may require some
50- additional settings, see issue #228 for the latest information.
51+ * We regularly test with: GNU Fortran versions 13, 14 and LLVM Flang versions 19, 20, 21
52+ * On macOS the Homebrew-installed ` llvm ` and ` flang ` packages may require some
53+ additional settings, see [ issue #228 ] ( https://github.com/BerkeleyLab/caffeine/issues/228 ) for the latest information.
5154* [ Fortran package manager] ` fpm `
5255* [ pkg-config]
5356* [ realpath]
@@ -102,7 +105,7 @@ but C++ is required for some network backends.
102105
103106The ` install.sh ` recognizes a number of command-line options and environment variables to
104107customize behavior for your system. See the output of ` ./install.sh --help ` for full documentation,
105- including options for how to build for a distributed memory platform.
108+ including options for how to build for a distributed- memory platform.
106109
107110
108111Example Usage
@@ -184,6 +187,13 @@ PRIF Committee.
184187Lawrence Berkeley National Laboratory Technical Report (LBNL-2001698), Sept 2025.
185188< https://doi.org/10.25344/S4M01X >
186189
190+ ### Additional Publications:
191+
192+ Dan Bonachea, Katherine Rasmussen, Damian Rouson, Jean-Didier Pailleux, Etienne Renault, Brad Richardson.
193+ "[ ** Lowering and Runtime Support for Fortran’s Multi-Image Parallel Features using LLVM Flang, PRIF, and Caffeine** ] ( https://doi.org/10.25344/S4G883 ) ",
194+ Proceedings of the [ Eleventh Annual Workshop on the LLVM Compiler Infrastructure in HPC (LLVM-HPC2025)] ( https://llvm-in-hpc-workshop.github.io/LLVM-HPC-2025-Workshop.github.io/ ) , November 2025.
195+ Paper: < https://doi.org/10.25344/S4G883 >
196+
187197Funding
188198-------
189199The Computer Languages and Systems Software ([ CLaSS] ) Group at [ Berkeley Lab] has developed Caffeine
0 commit comments