• Wesley Bland's avatar
    Add MPIX_Comm_shrink functionality · 5be10ce9
    Wesley Bland authored
    This adds a new function MPIX_COMM_SHRINK. This is a communicator creation
    function that creates a new communicator based on a previous communicator, but
    excluding any failed processes.
    As part of the operation, the shrink call needs to perform an agreement to
    determine the group of failed processes. This is done using the algorithm
    published by Hursey et al. in his EuroMPI '12 paper.
    The list of failed processes is collected using a bit array. This happens via
    a few new functions in the CH3 layer to create and send a bitarry to the
    master process and receive an updated bitarray. Obviously, this is not a very
    scalable implementation yet, but something better can easily be plugged in
    here to replace the naïve implementation. This is also a use case for an
    MPI_Recv_reduce for future reference.
    Signed-off-by: default avatarJunchao Zhang <jczhang@mcs.anl.gov>