MPI_CALL(XBT_PUBLIC(int), MPI_Comm_create,
(MPI_Comm comm, MPI_Group group, MPI_Comm * newcomm));
MPI_CALL(XBT_PUBLIC(int), MPI_Comm_free, (MPI_Comm * comm));
+MPI_CALL(XBT_PUBLIC(int), MPI_Comm_disconnect, (MPI_Comm * comm));
MPI_CALL(XBT_PUBLIC(int), MPI_Comm_split, (MPI_Comm comm, int color, int key, MPI_Comm* comm_out));
MPI_CALL(XBT_PUBLIC(int), MPI_Send_init,
return PMPI_Comm_free(comm);
}
+int MPI_Comm_disconnect(MPI_Comm * comm)
+{
+ return PMPI_Comm_disconnect(comm);
+}
+
int MPI_Comm_split(MPI_Comm comm, int color, int key, MPI_Comm* comm_out)
{
return PMPI_Comm_split(comm, color, key, comm_out);
return retval;
}
+int PMPI_Comm_disconnect(MPI_Comm * comm)
+{
+ /* TODO: wait until all communication in comm are done */
+ int retval;
+
+ smpi_bench_end();
+ if (comm == NULL) {
+ retval = MPI_ERR_ARG;
+ } else if (*comm == MPI_COMM_NULL) {
+ retval = MPI_ERR_COMM;
+ } else {
+ smpi_comm_destroy(*comm);
+ *comm = MPI_COMM_NULL;
+ retval = MPI_SUCCESS;
+ }
+ smpi_bench_begin();
+ return retval;
+}
+
int PMPI_Comm_split(MPI_Comm comm, int color, int key, MPI_Comm* comm_out)
{
int retval;