I think the issue is that under the hood, MS-MPI calls MPID_Win_create_[non]contig, which in turn calls CreateFileMappingW, whose documented behavior is:
Further complicating things when investigating this, there is also a bug in the error message above: All the parameters are being printed in the wrong fields. size is displaying the value of baseptr, and all the other parameters are off by one (disp_size is displaying size==0, info is displaying disp_size==1...) I did find the code issue causing this display issue; baseptr should be moved to second-to-last in the parameter list here:
Hello! I found a bug using MS-MPI 10.1.
MPI_Win_allocate_shared
fails wheneversize==0
. This is explicitly supported according to the documentation:I think the issue is that under the hood, MS-MPI calls
MPID_Win_create_[non]contig
, which in turn callsCreateFileMappingW
, whose documented behavior is:Further complicating things when investigating this, there is also a bug in the error message above: All the parameters are being printed in the wrong fields.
size
is displaying the value ofbaseptr
, and all the other parameters are off by one (disp_size
is displayingsize==0
,info
is displayingdisp_size==1
...) I did find the code issue causing this display issue;baseptr
should be moved to second-to-last in the parameter list here:https://github.com/microsoft/Microsoft-MPI/blob/7ff6bdcdb1d5dc7b791e47457ee2686cd6b3d355/src/mpi/msmpi/api/mpi_win.cpp#L494
Thank you!
--Dan Weiner, HPC Research Engineer, Convergent Science (convergecfd.com)