I have been talking with a couple application groups that are interested in using comm_spawn for dynamic resource management scenarios. MPI_UNIVERSE_SIZE (MPI 10.5.1) is a good starting place for them to portably find a soft limit on the number of processes that can be started within their allocation. However, they would also really like to know how many machines/nodes are in their allocation in an equally portable way (So they can try to create N procs per node, for example). Currently they do some preprocessing on the runtime environment variables to determine how many nodes are in the allocation. Since this is something the MPI implementation is already doing, I suggested that it might be possible to expose this in a portable way to the application through the MPI interface. So I am proposing a MPI_UNIVERSE_NUM_NODES attribute to MPI_COMM_WORLD with similar wording as MPI_UNIVERSE_SIZE. This will let the application access the number of nodes in their allocation in a portable manner. As for on-node topologies (i.e., sockets, cores, etc.), there are other tools to help make that more portable (e.g. hwloc). I am interested in what others think of the idea of introducing a MPI_UNIVERSE_NUM_NODES attribute to the standard. Cheers, Josh
participants (1)
-
Josh Hursey