Incorporate PRIF Revision 0.6 Changes & Implement Atomic Operations
Caffeine release 0.6.0:
- Implemented all of the PRIF Atomic Operations:
prif_atomic_add
,prif_atomic_add_indirect
prif_atomic_and
,prif_atomic_and_indirect
prif_atomic_or
,prif_atomic_or_indirect
prif_atomic_xor
,prif_atomic_xor_indirect
prif_atomic_cas_int
,prif_atomic_cas_int_indirect
prif_atomic_cas_logical
,prif_atomic_cas_logical_indirect
prif_atomic_fetch_add
,prif_atomic_fetch_add_indirect
prif_atomic_fetch_and
,prif_atomic_fetch_and_indirect
prif_atomic_fetch_or
,prif_atomic_fetch_or_indirect
prif_atomic_fetch_xor
,prif_atomic_fetch_xor_indirect
prif_atomic_define_int
,prif_atomic_define_int_indirect
prif_atomic_define_logical
,prif_atomic_define_logical_indirect
prif_atomic_ref_int
,prif_atomic_ref_int_indirect
prif_atomic_ref_logical
,prif_atomic_ref_logical_indirect
- Implement all the interface changes introduced in PRIF 0.6:
- Add
prif_initial_team_index
- Add
prif_initial_team_index_with_team
- Add
prif_initial_team_index_with_team_number
- Add
data_pointer_offset
argument toprif_alias_create
- Add
- Fixed a number of critical defects:
- Improved CI testing:
- Added CI-driven end-to-end testing of native multi-image support with flang-latest and Caffeine. This includes most SYNC statements, most Collectives subroutines, and some image queries.
- Expanded set of LLVM Flang versions used in CI
- Added more robust exit testing
Currently Supported Features & Limitations
Please see the Implementation Status doc
Supported Platforms
Compilers
We currently build Caffeine and its dependencies with LLVM compilers (flang-new
and clang
) and GNU compilers (gfortran
and gcc
).
Operating systems and architectures
We regularly test on
- Linux: x86_64
- macOS: x86_64 and Apple Silicon
Full Changelog: 0.5.2...0.6.0