The following call to MPI_Allreduce causes IPM to crash:
call MPI_Allgather(MPI_IN_PLACE, 0, MPI_DATATYPE_NULL, hostnames(1), host_len, MPI_BYTE, MPI_COMM_WORLD, mpierr)
with this error message:
Rank 1 [Mon Nov 9 14:39:00 2020] [c5-0c0s15n1] Fatal error in PMPI_Type_size: Invalid datatype, error stack:PMPI_Type_size(119): MPI_Type_size(MPI_DATATYPE_NULL) failed
This is valid MPI; the sendtype argument (MPI_DATATYPE_NULL in the preceding example ) should be ignored when MPI_IN_PLACE is used.
I suppose the "right" solution is for IPM to ignore the sendtype, too.
A second "fix" that might be useful in other senarios is to make IPM recognize MPI_DATATYPE_NULL.
The following call to MPI_Allreduce causes IPM to crash:
call MPI_Allgather(MPI_IN_PLACE, 0, MPI_DATATYPE_NULL, hostnames(1), host_len, MPI_BYTE, MPI_COMM_WORLD, mpierr)
with this error message:
Rank 1 [Mon Nov 9 14:39:00 2020] [c5-0c0s15n1] Fatal error in PMPI_Type_size: Invalid datatype, error stack:
PMPI_Type_size(119): MPI_Type_size(MPI_DATATYPE_NULL) failed
This is valid MPI; the sendtype argument (MPI_DATATYPE_NULL in the preceding example ) should be ignored when MPI_IN_PLACE is used. I suppose the "right" solution is for IPM to ignore the sendtype, too. A second "fix" that might be useful in other senarios is to make IPM recognize MPI_DATATYPE_NULL.