CoArray Fortran Framework of Efficient Interfaces to Network Environments
Caffeine is a parallel runtime library that aims to support Fortran compilers with a programming-model-agnostic application binary interface (ABI) to various communication libraries. Current work is on supporting the ABI with the GASNet-EX exascale-ready networking middleware. Future plans include support for an alternative Message Passing Interface (MPI) back end.
Caffeine leverages the following non-parallel features of Fortran to simplify the writing of a portable, compact runtime-library that supports Fortran's parallel features:
|Assumed-type dummy arguments:
|Assumed-rank dummy arguments:
 This requirement simplifies development but might be removed in a future release.
 This feature is used to support only
co_reduce and might become optional in a future release.
Download, build, and run an example
git clone https://github.com/BerkeleyLab/caffeine.git cd caffeine ./install.sh export GASNET_PSHM_NODES=8 ./build/run-fpm.sh run --example hello
Citing Caffeine? Please use the following publication:
Damian Rouson, Dan Bonachea.
"Caffeine: CoArray Fortran Framework of Efficient Interfaces to Network Environments",
Proceedings of the Eighth Annual Workshop on the LLVM Compiler Infrastructure in HPC (LLVM-HPC2022), November 2022.
One of our continous integration (CI) scripts generates up-to-date Caffeine documentation using ford. The CI script also deploys the generated documentation to the our GitHub Pages site. Alternatively, generate HTML documentation locally using ford as follows:
doc/html/index.html in a web browser.
See LICENSE.txt for usage terms and conditions.