-
Notifications
You must be signed in to change notification settings - Fork 0
Description
This is something I have been thinking about for some time and have intended to introduce for MPI-5.
Right now (MPI-4) the topology of a communicator is effectively ignored on window creation. There is no mechanism with RMA (or point-to-point for that matter) for the user to indicate that they will only communicate on the topology of the communicator. If this information was available to the MPI implementation it could make better optimization choices for the resulting MPI object.
Proposal:
Add a new info key for MPI window or communicator creation: mpi_assert_restrict_to_topology
This could be restricted to MPI windows but it might be worth elevating to the entire communicator and applying to point-to-point. If this info key is set then the resulting communicator will only allow communication to and synchronization with neighboring processes. The target rank would be the rank in the communicator. We could change that to be the neighbor index in the topology (which is fairly well defined) with another info key.
Benefits:
The information stored in the local MPI_Win object could be limited to just what is necessary to communicate with the immediate neighbors. This could improve performance, reduce memory overhead, reduce resource utilization, or all of the above. In the prototype implementation (which I completed several years ago) it had all of these impacts.
I will add more as I remember all the details.
Thoughts?