I'm trying to free a communicator created with this call:
int MPI_Comm_spawn(char *command, char *argv, int maxprocs,
MPI_Info info, int root, MPI_Comm comm, MPI_Comm *intercomm, int array_of_errcodes) <-- The comunicator created it's intercomm
As far as I know, according to the standard, MPI_Free is a collective operation, although they suggest to implement it locally, however on Intel MPI it's a collective operation (according to my own experience and to http://software.intel.com/sites/products/documentation/hpc/ics/itac/81/I... ).
However I have a problem here, father/spawners process/es will have a communicator which contains his sons, and the spawned processes/sons will have the communicator which contains the masters.
How I can free the communicator of the master with this layout? I know that I can create a new communicator with both sons and masters and free with that, but then that won't be the same communicator that I want to free.