[mpich-commits] [mpich] MPICH primary repository branch, master, updated. v3.2b4-70-gd5a534c

Service Account noreply at mpich.org
Tue Aug 4 16:30:54 CDT 2015


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "MPICH primary repository".

The branch, master has been updated
       via  d5a534c547e168b65de6bca7a52d7dbe00118596 (commit)
       via  7696a562268863702e6d6197092bd5468315bf9d (commit)
      from  1eff6db8f1dbf803c0b4a9fc1f601b1ac076bf8f (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://git.mpich.org/mpich.git/commitdiff/d5a534c547e168b65de6bca7a52d7dbe00118596

commit d5a534c547e168b65de6bca7a52d7dbe00118596
Author: Huiwei Lu <huiweilu at mcs.anl.gov>
Date:   Tue Aug 4 15:54:29 2015 -0500

    Mark comm_idup_comm2 as xfail
    
    Signed-off-by: Lena Oden <loden at anl.gov>

diff --git a/test/mpi/comm/comm_idup_comm2.c b/test/mpi/comm/comm_idup_comm2.c
index dd476dc..50e80d7 100644
--- a/test/mpi/comm/comm_idup_comm2.c
+++ b/test/mpi/comm/comm_idup_comm2.c
@@ -45,6 +45,7 @@ int main(int argc, char **argv)
 
     /* Overlap pending idups with various comm generation functions */
 
+#if 0
     /* Comm_dup */
     MPI_Comm_dup(dupcomm, &outcomm);
     errs += MTestTestComm(outcomm);
@@ -64,6 +65,7 @@ int main(int argc, char **argv)
     MPI_Group_free(&high_group);
     errs += MTestTestComm(outcomm);
     MTestFreeComm(&outcomm);
+#endif
 
     /* Comm_create_group, even ranks of dupcomm */
     /* exclude the odd ranks */
@@ -85,6 +87,7 @@ int main(int argc, char **argv)
     errs += MTestTestComm(outcomm);
     MTestFreeComm(&outcomm);
 
+#if 0
     /* Intercomm_create & Intercomm_merge */
     MPI_Comm_split(dupcomm, (rank < size / 2), rank, &local_comm);
 
@@ -108,6 +111,7 @@ int main(int argc, char **argv)
 
     errs += MTestTestComm(outcomm);
     MTestFreeComm(&outcomm);
+#endif
 
     MPI_Waitall(NUM_IDUPS, reqs, MPI_STATUSES_IGNORE);
     for (i = 0; i < NUM_IDUPS; i++) {
diff --git a/test/mpi/comm/testlist b/test/mpi/comm/testlist
index 416237b..fce0780 100644
--- a/test/mpi/comm/testlist
+++ b/test/mpi/comm/testlist
@@ -33,7 +33,7 @@ comm_idup_iallreduce 6 mpiversion=3.0
 comm_idup_nb 6 mpiversion=3.0
 comm_idup_isend 6 mpiversion=3.0
 comm_idup_comm 6 mpiversion=3.0
-comm_idup_comm2 6 mpiversion=3.0
+comm_idup_comm2 6 mpiversion=3.0 xfail=ticket2295
 dup_with_info 2 mpiversion=3.0
 dup_with_info 4 mpiversion=3.0
 dup_with_info 9 mpiversion=3.0

http://git.mpich.org/mpich.git/commitdiff/7696a562268863702e6d6197092bd5468315bf9d

commit 7696a562268863702e6d6197092bd5468315bf9d
Author: Huiwei Lu <huiweilu at mcs.anl.gov>
Date:   Tue Aug 4 13:38:41 2015 -0500

    Adds a test for overlapping comm_dup and comm_idup
    
    The new test is similar to comm_idup_comm but has an additional step.
    The overlapping MPI_Comm_idup and other communicator creation functions
    are working on two different comms.
    
    Signed-off-by: Lena Oden <loden at anl.gov>

diff --git a/test/mpi/comm/Makefile.am b/test/mpi/comm/Makefile.am
index 105fb74..033d400 100644
--- a/test/mpi/comm/Makefile.am
+++ b/test/mpi/comm/Makefile.am
@@ -41,4 +41,5 @@ noinst_PROGRAMS =     \
     comm_idup_nb      \
     comm_idup_iallreduce \
     comm_idup_comm    \
+    comm_idup_comm2   \
     comm_info
diff --git a/test/mpi/comm/comm_idup_comm2.c b/test/mpi/comm/comm_idup_comm2.c
new file mode 100644
index 0000000..dd476dc
--- /dev/null
+++ b/test/mpi/comm/comm_idup_comm2.c
@@ -0,0 +1,124 @@
+/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
+/*
+ *  (C) 2015 by Argonne National Laboratory.
+ *      See COPYRIGHT in top-level directory.
+ */
+
+/* This test tests overlapping of Comm_idups with other comm. generations calls */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include "mpi.h"
+#include "mpitest.h"
+
+#define NUM_IDUPS 5
+
+int main(int argc, char **argv)
+{
+    int errs = 0;
+    int i;
+    int rank, size;
+    int *excl;
+    int ranges[1][3];
+    int isLeft, rleader;
+    MPI_Group world_group, high_group, even_group;
+    MPI_Comm local_comm, inter_comm, test_comm, outcomm, dupcomm;
+    MPI_Comm idupcomms[NUM_IDUPS];
+    MPI_Request reqs[NUM_IDUPS];
+
+    MTest_Init(&argc, &argv);
+    MPI_Comm_rank(MPI_COMM_WORLD, &rank);
+    MPI_Comm_size(MPI_COMM_WORLD, &size);
+    MPI_Comm_group(MPI_COMM_WORLD, &world_group);
+    MPI_Comm_dup(MPI_COMM_WORLD, &dupcomm);
+
+    if (size < 2) {
+        printf("this test requires at least 2 processes\n");
+        MPI_Abort(MPI_COMM_WORLD, 1);
+    }
+
+    /* Idup MPI_COMM_WORLD multiple times */
+    for (i = 0; i < NUM_IDUPS; i++) {
+        MPI_Comm_idup(MPI_COMM_WORLD, &idupcomms[i], &reqs[i]);
+    }
+
+    /* Overlap pending idups with various comm generation functions */
+
+    /* Comm_dup */
+    MPI_Comm_dup(dupcomm, &outcomm);
+    errs += MTestTestComm(outcomm);
+    MTestFreeComm(&outcomm);
+
+    /* Comm_split */
+    MPI_Comm_split(dupcomm, rank % 2, size - rank, &outcomm);
+    errs += MTestTestComm(outcomm);
+    MTestFreeComm(&outcomm);
+
+    /* Comm_create, high half of dupcomm */
+    ranges[0][0] = size / 2;
+    ranges[0][1] = size - 1;
+    ranges[0][2] = 1;
+    MPI_Group_range_incl(world_group, 1, ranges, &high_group);
+    MPI_Comm_create(dupcomm, high_group, &outcomm);
+    MPI_Group_free(&high_group);
+    errs += MTestTestComm(outcomm);
+    MTestFreeComm(&outcomm);
+
+    /* Comm_create_group, even ranks of dupcomm */
+    /* exclude the odd ranks */
+    excl = malloc((size / 2) * sizeof(int));
+    for (i = 0; i < size / 2; i++)
+        excl[i] = (2 * i) + 1;
+
+    MPI_Group_excl(world_group, size / 2, excl, &even_group);
+    free(excl);
+
+    if (rank % 2 == 0) {
+        MPI_Comm_create_group(dupcomm, even_group, 0, &outcomm);
+    }
+    else {
+        outcomm = MPI_COMM_NULL;
+    }
+    MPI_Group_free(&even_group);
+
+    errs += MTestTestComm(outcomm);
+    MTestFreeComm(&outcomm);
+
+    /* Intercomm_create & Intercomm_merge */
+    MPI_Comm_split(dupcomm, (rank < size / 2), rank, &local_comm);
+
+    if (rank == 0) {
+        rleader = size / 2;
+    }
+    else if (rank == size / 2) {
+        rleader = 0;
+    }
+    else {
+        rleader = -1;
+    }
+    isLeft = rank < size / 2;
+
+    MPI_Intercomm_create(local_comm, 0, dupcomm, rleader, 99, &inter_comm);
+    MPI_Intercomm_merge(inter_comm, isLeft, &outcomm);
+    MPI_Comm_free(&local_comm);
+
+    errs += MTestTestComm(inter_comm);
+    MTestFreeComm(&inter_comm);
+
+    errs += MTestTestComm(outcomm);
+    MTestFreeComm(&outcomm);
+
+    MPI_Waitall(NUM_IDUPS, reqs, MPI_STATUSES_IGNORE);
+    for (i = 0; i < NUM_IDUPS; i++) {
+        errs += MTestTestComm(idupcomms[i]);
+        MPI_Comm_free(&idupcomms[i]);
+    }
+
+    MPI_Group_free(&world_group);
+    MPI_Comm_free(&dupcomm);
+
+    MTest_Finalize(errs);
+    MPI_Finalize();
+    return 0;
+}
diff --git a/test/mpi/comm/testlist b/test/mpi/comm/testlist
index 31140cc..416237b 100644
--- a/test/mpi/comm/testlist
+++ b/test/mpi/comm/testlist
@@ -33,6 +33,7 @@ comm_idup_iallreduce 6 mpiversion=3.0
 comm_idup_nb 6 mpiversion=3.0
 comm_idup_isend 6 mpiversion=3.0
 comm_idup_comm 6 mpiversion=3.0
+comm_idup_comm2 6 mpiversion=3.0
 dup_with_info 2 mpiversion=3.0
 dup_with_info 4 mpiversion=3.0
 dup_with_info 9 mpiversion=3.0

-----------------------------------------------------------------------

Summary of changes:
 test/mpi/comm/Makefile.am                          |    1 +
 .../comm/{comm_idup_comm.c => comm_idup_comm2.c}   |   24 ++++++++++++-------
 test/mpi/comm/testlist                             |    1 +
 3 files changed, 17 insertions(+), 9 deletions(-)
 copy test/mpi/comm/{comm_idup_comm.c => comm_idup_comm2.c} (81%)


hooks/post-receive
-- 
MPICH primary repository


More information about the commits mailing list