20.1.19. Permanent Data Movement
Up: Support for Fortran
Next: Comparison with C
Previous: Temporary Data Movement and Temporary Memory Modification
A Fortran compiler may implement permanent data movement during the
execution of a Fortran program. This would require that pointers
to such data are appropriately updated.
An implementation with automatic garbage collection is one use case.
Such permanent data movement is in conflict with MPI in several areas:
- MPI datatype handles with absolute addresses in combination
with MPI_BOTTOM.
- All nonblocking MPI operations
if the internally used
pointers to the buffers are not updated by the Fortran
runtime, or if within an MPI process,
the data movement is executed in parallel with the MPI operation.
This problem can be also solved by using the ASYNCHRONOUS
attribute for such buffers.
This MPI standard requires that the problems with permanent data movement
do not occur by imposing suitable restrictions on
the MPI library together with the compiler used;
see Section Requirements on Fortran Compilers.
Example
Using separated variables for overlapping communication and computation to allow
the protection of nonblocking communication with the ASYNCHRONOUS attribute.
Up: Support for Fortran
Next: Comparison with C
Previous: Temporary Data Movement and Temporary Memory Modification
Return to MPI-4.1 Standard Index
Return to MPI Forum Home Page
(Unofficial) MPI-4.1 of November 2, 2023
HTML Generated on November 19, 2023