vapaa
vapaa copied to clipboard
A standalone implementation of the MPI Fortran 2018 module
implement RMA and test with PRK
detect sentinels in Fortran layer rather than C so we don't need to capture sentinel addresses and therefore don't need to initialize MPI in Fortran to setup this state.
I think I can use the LLNL wrap generator for Fortran, with some hacking.
> Use the ASYNCHRONOUS attribute to protect the buffers of nonblocking operations, and set the LOGICAL compile-time constant MPI_ASYNC_PROTECTS_NONBLOCKING to .TRUE. if the underlying Fortran compiler supports the ASYNCHRONOUS attribute...
I think I can do this by calling `MPI_Reduce_local` one element at a time. The performance will be trash but nobody should use this anyways.
This is low priority, but `MPI_Init` needs to set the C pointers that store the address of the Fortran buffer sentinels for ignoring status so that tools can intercept the...
Assuming we are done with https://github.com/jeffhammond/vapaa/issues/23 before all the PGI-based Fortran compilers (e.g. the [original LLVM Flang](https://github.com/flang-compiler/flang)) support F18 CFI, we should support noncontig subarrays using the non-standard PGI array...
We need to implement non-contiguous support in CFI. https://github.com/jeffhammond/vapaa/blob/main/tests/test_vector_noncontig.F90#L34 tests this.
see MPI 4.0 19.1.2