Re: workaround for communicator id

William Gropp (gropp@mcs.anl.gov)
Fri, 11 Aug 1995 09:00:27 -0500

If there was a user function called on ANY communicator creation (not just
MPI_COMM_DUP), and this function could be collective over the new
communicator, then by creating an appropriate copy_attributes function, a
library could generate the appropriate unique ids (which would need to be
tuples, not just single ints) by having, for example, a current
"private_comm_id" and performing an ALLREDUCE( MPI_MAX ) over it.
The profilining initialization would attach this copy function to
MPI_COMM_WORLD; then any subsequent communicator would generate an internal id
even if the implementation did not keep one (and could take steps to reduce
the number of times ALLREDUCE is actually called).

This would put the burden on the profiling or debugging library, not on the
MPI implementation. Similar code could be used in the presence of dynamic
groups.

Bill