<div dir="ltr">Hello,<div><br></div><div>Using MPICH 3.1.4, I'm getting internal assertions of this kind</div><div>of when using MPI_Dist_graph_create :</div><div><br></div><div>Assertion failed in file src/mpi/topo/dist_gr_create.c at line 223: s_rank >= 0<br></div><div>Assertion failed in file src/mpi/topo/dist_gr_create.c at line 195: sources[i] < comm_size<br></div><div><br></div><div>I've checked that ranks passed in are in the proper range,</div><div>rather I think the issue is caused by requesting an edge</div><div>from rank 0 to itself.</div><div>(Another hint is that its non-deterministic which assertion</div><div>I get; it depends on the order in which the ranks get scheduled</div><div>by the OS, so there is a bit of a bug in the implementation,</div><div>or at least no check for self-edges).</div><div><br></div><div>Does the MPI standard allow for self-edges in these graphs ?</div><div><br></div><div>Thank you,</div><div><br></div><div>P.S. - I'll throw in a bigger question while I'm at it: are</div><div>MPI_Dist_graph_create and MPI_Neighbor_alltoallv</div><div>implemented with optimally scalable algorithms ?</div><div>I'm betting my scalability on them being roughly</div><div>O(log(P)) where P is communicator size, assuming</div><div>neighborhood sizes and message sizes are constant.</div></div>