Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Set read/write tracking flags when passing debug array to MPI.Buffer()
If a shared-memory array (or part of one) is passed to `MPI.Buffer()` it will be communicated. This probably implies it is read on at least one of the distributed-MPI processes, and read on others. To check for errors as conservatively as possible (I think, but not sure if this is really true), set the `is_read`, `is_written` and `is_initialized` and `accessed` flags of an `MPIDebugSharedArray` when it is passed to `MPI.Buffer()`, so that a shared-memory synchronization is required before the array is used. This should be a sensible thing to do because: distributed-MPI communication is done by the root process of each shared-memory block, so any array that is touched by distributed-memory communication requires a synchronization before processes in the shared-memory block (apart from the root process) are allowed to use it.
- Loading branch information