Hi Sarthak,
You are correct, Open MPI does not implement the SHRINK operation on inter-communicators. While there is no fundamental issue that a would prevent implementing it, we just have never encountered a case where it was useful so far, as most people use the inter-communicator only as an intermediate step after COMM_SPAWN, and immediately flatten it back to an intra-comm.
One way you can work around the missing feature is to shrink both sides of the intercomm, then create a new intercomm from the 2 local comms, and validate that it all went as expected (using MPI_COMM_SHRINK(local_comm, &shrink_comm); MPI_INTERCOMM_CREATE(shrink_comm, &shrink_icomm); MPI_COMM_AGREE(shrink_comm) )
There is a bit more to it that just this quick sketch though: I’ll refer you to a tutorial we made a couple of years ago with a full bodied example code:
https://fault-tolerance.org/2014/07/10/uniform-intercomm-creation/
I do not know what is the support status in MPICH for Intercomm Shrink. I am not aware of any portable ULFM implementation that would be cross-compatible between MPI Implementations, and in my opinion that would be very difficult to achieve: some operations (e.g., agree) could be written in MPI neutral portable code, but the core of error reporting is deeply integrated with the communication engine.
Best,
Aurelien
> --
> You received this message because you are subscribed to the Google Groups "User Level Fault Mitigation" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to
ulfm+uns...@googlegroups.com.
> To view this discussion on the web visit
https://groups.google.com/d/msgid/ulfm/c6b62f99-6b05-4a03-a0f8-75b6ceeccd9an%40googlegroups.com.