The message information in the vfd file should be extended by an integer containing the (local)stackID (global is not known at this point) in order to assign the messages to the appropriate MPI-call.
This is especially important for non-blocking communication where no connection between the MPI-call and messages could be made, otherwise.
This would require changes in the write-sync-message routines as they need to figure out the ID of the current stack, as well as the async routines which need to store the current stackID as part of the request list item.
Not sure at the moment how to handle persistent requests, but I guess it would be best to get the stack ID of the Start routine (not the Init).
The listed stackIDs in the vfd file are the global ones, which are not known at the point of messaging.
Therefore a translation table between the local and global stack IDs need to be appended to the vfdfile (this requires a header entry for the translation table offset in the vfd). The size of the translation table will be sizeof(unsigned int) * nlocalIDs which will be a few KiB.
The message information in the vfd file should be extended by an integer containing the (local)stackID (global is not known at this point) in order to assign the messages to the appropriate MPI-call. This is especially important for non-blocking communication where no connection between the MPI-call and messages could be made, otherwise.
This would require changes in the write-sync-message routines as they need to figure out the ID of the current stack, as well as the async routines which need to store the current stackID as part of the request list item.
Not sure at the moment how to handle persistent requests, but I guess it would be best to get the stack ID of the Start routine (not the Init).
The listed stackIDs in the vfd file are the global ones, which are not known at the point of messaging. Therefore a translation table between the local and global stack IDs need to be appended to the vfdfile (this requires a header entry for the translation table offset in the vfd). The size of the translation table will be
sizeof(unsigned int) * nlocalIDs
which will be a few KiB.