[mpich-commits] [mpich] MPICH primary repository branch, master, updated. v3.1.3-177-g316ac29

Service Account noreply at mpich.org
Wed Nov 12 14:27:10 CST 2014


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  316ac29bcb48562f7308f886bd4eaa8f6e4bcbb7 (commit)
       via  9d7d493ba888625c5eb8456ae3f788f938b690a3 (commit)
      from  b56f4f1da1e455220b90030772eeab7f0e72d5c9 (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/316ac29bcb48562f7308f886bd4eaa8f6e4bcbb7

commit 316ac29bcb48562f7308f886bd4eaa8f6e4bcbb7
Author: Antonio Pena Monferrer <apenya at mcs.anl.gov>
Date:   Sat Nov 8 12:27:17 2014 -0600

    Added large message cases to getfence1/putfence1
    
    These are meant to hit the >1GB message size and hence test the large
    message case in Portals4.
    
    Signed-off-by: Wesley Bland <wbland at anl.gov>

diff --git a/test/mpi/rma/getfence1.c b/test/mpi/rma/getfence1.c
index 869b143..80034df 100644
--- a/test/mpi/rma/getfence1.c
+++ b/test/mpi/rma/getfence1.c
@@ -6,20 +6,89 @@
  */
 #include "mpi.h"
 #include <stdio.h>
+#include <string.h>
+#include <limits.h>
 #include "mpitest.h"
 
+#define LARGE_CNT_CONTIG    550000000
+#define LARGE_CNT_NONCONTIG 150000000
+
 /*
 static char MTEST_Descrip[] = "Get with Fence";
 */
 
-int main( int argc, char *argv[] )
+static inline int test(MPI_Comm comm, int rank, int source, int dest,
+                MTestDatatype *sendtype, MTestDatatype *recvtype)
 {
     int errs = 0, err;
+    int disp_unit;
+    MPI_Aint      extent;
+    MPI_Win       win;
+
+    MTestPrintfMsg( 1,
+                    "Getting count = %ld of sendtype %s - count = %ld receive type %s\n",
+                    sendtype->count, MTestGetDatatypeName( sendtype ), recvtype->count,
+                    MTestGetDatatypeName( recvtype ) );
+    /* Make sure that everyone has a recv buffer */
+    recvtype->InitBuf( recvtype );
+    sendtype->InitBuf( sendtype );
+    /* By default, print information about errors */
+    recvtype->printErrors = 1;
+    sendtype->printErrors = 1;
+
+    MPI_Type_extent( sendtype->datatype, &extent );
+    disp_unit = extent < INT_MAX ? extent : 1;
+    MPI_Win_create( sendtype->buf, sendtype->count * extent,
+                    disp_unit, MPI_INFO_NULL, comm, &win );
+    MPI_Win_fence( 0, win );
+    if (rank == source) {
+        /* The source does not need to do anything besides the
+           fence */
+        MPI_Win_fence( 0, win );
+    }
+    else if (rank == dest) {
+        /* To improve reporting of problems about operations, we
+           change the error handler to errors return */
+        MPI_Win_set_errhandler( win, MPI_ERRORS_RETURN );
+
+        /* This should have the same effect, in terms of
+           transfering data, as a send/recv pair */
+        err = MPI_Get( recvtype->buf, recvtype->count,
+                       recvtype->datatype, source, 0,
+                       sendtype->count, sendtype->datatype, win );
+        if (err) {
+            errs++;
+            if (errs < 10) {
+                MTestPrintError( err );
+            }
+        }
+        err = MPI_Win_fence( 0, win );
+        if (err) {
+            errs++;
+            if (errs < 10) {
+                MTestPrintError( err );
+            }
+        }
+        err = MTestCheckRecv( 0, recvtype );
+        if (err) {
+            errs += err;
+        }
+    }
+    else {
+        MPI_Win_fence( 0, win );
+    }
+    MPI_Win_free( &win );
+
+    return errs;
+}
+
+
+int main( int argc, char *argv[] )
+{
+    int errs = 0;
     int rank, size, source, dest;
     int minsize = 2, count; 
     MPI_Comm      comm;
-    MPI_Win       win;
-    MPI_Aint      extent;
     MTestDatatype sendtype, recvtype;
 
     MTest_Init( &argc, &argv );
@@ -38,61 +107,34 @@ int main( int argc, char *argv[] )
 	
 	MTEST_DATATYPE_FOR_EACH_COUNT(count) {
 	    while (MTestGetDatatypes( &sendtype, &recvtype, count )) {
-		/* Make sure that everyone has a recv buffer */
-		recvtype.InitBuf( &recvtype );
-		sendtype.InitBuf( &sendtype );
-		/* By default, print information about errors */
-		recvtype.printErrors = 1;
-		sendtype.printErrors = 1;
-
-		MPI_Type_extent( sendtype.datatype, &extent );
-		MPI_Win_create( sendtype.buf, sendtype.count * extent, 
-				(int)extent, MPI_INFO_NULL, comm, &win );
-		MPI_Win_fence( 0, win );
-		if (rank == source) {
-		    /* The source does not need to do anything besides the
-		       fence */
-		    MPI_Win_fence( 0, win );
-		}
-		else if (rank == dest) {
-		    /* To improve reporting of problems about operations, we
-		       change the error handler to errors return */
-		    MPI_Win_set_errhandler( win, MPI_ERRORS_RETURN );
-
-		    /* This should have the same effect, in terms of
-		       transfering data, as a send/recv pair */
-		    err = MPI_Get( recvtype.buf, recvtype.count, 
-				   recvtype.datatype, source, 0, 
-				   sendtype.count, sendtype.datatype, win );
-		    if (err) {
-			errs++;
-			if (errs < 10) {
-			    MTestPrintError( err );
-			}
-		    }
-		    err = MPI_Win_fence( 0, win );
-		    if (err) {
-			errs++;
-			if (errs < 10) {
-			    MTestPrintError( err );
-			}
-		    }
-		    err = MTestCheckRecv( 0, &recvtype );
-		    if (err) {
-			errs += err;
-		    }
-		}
-		else {
-		    MPI_Win_fence( 0, win );
-		}
-		MPI_Win_free( &win );
-		MTestFreeDatatype( &recvtype );
-		MTestFreeDatatype( &sendtype );
+                errs += test(comm, rank, source, dest, &sendtype, &recvtype);
+                MTestFreeDatatype(&sendtype);
+                MTestFreeDatatype(&recvtype);
 	    }
 	}
         MTestFreeComm(&comm);
     }
 
+    /* Part #2: simple large size test - contiguous and noncontiguous */
+    if (sizeof(void *) > 4) {  /* Only if > 32-bit architecture */
+        MPI_Comm_rank( MPI_COMM_WORLD, &rank );
+        MPI_Comm_size( MPI_COMM_WORLD, &size );
+        source = 0;
+        dest   = size - 1;
+
+        MTestGetDatatypes(&sendtype, &recvtype, LARGE_CNT_CONTIG);
+        errs += test(MPI_COMM_WORLD, rank, source, dest, &sendtype, &recvtype);
+
+        do {
+            MTestFreeDatatype(&sendtype);
+            MTestFreeDatatype(&recvtype);
+            MTestGetDatatypes(&sendtype, &recvtype, LARGE_CNT_NONCONTIG);
+        } while (strstr(MTestGetDatatypeName(&sendtype), "vector") == NULL);
+        errs += test(MPI_COMM_WORLD, rank, source, dest, &sendtype, &recvtype);
+        MTestFreeDatatype(&sendtype);
+        MTestFreeDatatype(&recvtype);
+    }
+
     MTest_Finalize( errs );
     MPI_Finalize();
     return 0;
diff --git a/test/mpi/rma/putfence1.c b/test/mpi/rma/putfence1.c
index 5c6bee4..de13720 100644
--- a/test/mpi/rma/putfence1.c
+++ b/test/mpi/rma/putfence1.c
@@ -6,24 +6,94 @@
  */
 #include "mpi.h"
 #include <stdio.h>
+#include <string.h>
 #include "mpitest.h"
 
+/* These counts allow reasonable sizes for the large tests */
+#define LARGE_CNT_CONTIG    550000000
+#define LARGE_CNT_NONCONTIG 150000000
+
 /*
 static char MTEST_Descrip[] = "Put with Fence";
 */
 
-int main( int argc, char *argv[] )
+static inline int test(MPI_Comm comm, int rank, int source, int dest,
+                MTestDatatype *sendtype, MTestDatatype *recvtype)
 {
     int errs = 0, err;
+    MPI_Aint extent;
+    MPI_Win  win;
+
+    MTestPrintfMsg( 1,
+                    "Putting count = %ld of sendtype %s - count = %ld receive type %s\n",
+                    sendtype->count, MTestGetDatatypeName( sendtype ), recvtype->count,
+                    MTestGetDatatypeName( recvtype ) );
+
+    /* Make sure that everyone has a recv buffer */
+    recvtype->InitBuf( recvtype );
+    MPI_Type_extent( recvtype->datatype, &extent );
+    MPI_Win_create( recvtype->buf, recvtype->count * extent,
+                    extent, MPI_INFO_NULL, comm, &win );
+    MPI_Win_fence( 0, win );
+    if (rank == source) {
+        /* To improve reporting of problems about operations, we
+           change the error handler to errors return */
+        MPI_Win_set_errhandler( win, MPI_ERRORS_RETURN );
+
+        sendtype->InitBuf( sendtype );
+
+        err = MPI_Put( sendtype->buf, sendtype->count,
+                       sendtype->datatype, dest, 0,
+                       recvtype->count, recvtype->datatype, win );
+        if (err) {
+            errs++;
+            if (errs < 10) {
+                MTestPrintError( err );
+            }
+        }
+        err = MPI_Win_fence( 0, win );
+        if (err) {
+            errs++;
+            if (errs < 10) {
+                MTestPrintError( err );
+            }
+        }
+    }
+    else if (rank == dest) {
+        MPI_Win_fence( 0, win );
+        /* This should have the same effect, in terms of
+           transfering data, as a send/recv pair */
+        err = MTestCheckRecv( 0, recvtype );
+        if (err) {
+            if (errs < 10) {
+                printf( "Data in target buffer did not match for destination datatype %s (put with source datatype %s)\n",
+                        MTestGetDatatypeName( recvtype ),
+                        MTestGetDatatypeName( sendtype ) );
+                /* Redo the test, with the errors printed */
+                recvtype->printErrors = 1;
+                (void)MTestCheckRecv( 0, recvtype );
+            }
+            errs += err;
+        }
+    }
+    else {
+        MPI_Win_fence( 0, win );
+    }
+    MPI_Win_free( &win );
+
+    return errs;
+}
+
+
+int main( int argc, char *argv[] )
+{
+    int errs = 0;
     int rank, size, source, dest;
     int minsize = 2, count; 
     MPI_Comm      comm;
-    MPI_Win       win;
-    MPI_Aint      extent;
     MTestDatatype sendtype, recvtype;
 
     MTest_Init( &argc, &argv );
-
     /* The following illustrates the use of the routines to 
        run through a selection of communicators and datatypes.
        Use subsets of these for tests that do not involve combinations 
@@ -38,71 +108,34 @@ int main( int argc, char *argv[] )
 	
 	MTEST_DATATYPE_FOR_EACH_COUNT(count) {
 	    while (MTestGetDatatypes( &sendtype, &recvtype, count )) {
-
-		MTestPrintfMsg( 1, 
-		       "Putting count = %d of sendtype %s receive type %s\n", 
-				count, MTestGetDatatypeName( &sendtype ),
-				MTestGetDatatypeName( &recvtype ) );
-
-		/* Make sure that everyone has a recv buffer */
-		recvtype.InitBuf( &recvtype );
-
-		MPI_Type_extent( recvtype.datatype, &extent );
-		MPI_Win_create( recvtype.buf, recvtype.count * extent, 
-				extent, MPI_INFO_NULL, comm, &win );
-		MPI_Win_fence( 0, win );
-		if (rank == source) {
-		    /* To improve reporting of problems about operations, we
-		       change the error handler to errors return */
-		    MPI_Win_set_errhandler( win, MPI_ERRORS_RETURN );
-
-		    sendtype.InitBuf( &sendtype );
-		    
-		    err = MPI_Put( sendtype.buf, sendtype.count, 
-				   sendtype.datatype, dest, 0, 
-				   recvtype.count, recvtype.datatype, win );
-		    if (err) {
-			errs++;
-			if (errs < 10) {
-			    MTestPrintError( err );
-			}
-		    }
-		    err = MPI_Win_fence( 0, win );
-		    if (err) {
-			errs++;
-			if (errs < 10) {
-			    MTestPrintError( err );
-			}
-		    }
-		}
-		else if (rank == dest) {
-		    MPI_Win_fence( 0, win );
-		    /* This should have the same effect, in terms of
-		       transfering data, as a send/recv pair */
-		    err = MTestCheckRecv( 0, &recvtype );
-		    if (err) {
-			if (errs < 10) {
-			    printf( "Data in target buffer did not match for destination datatype %s (put with source datatype %s)\n", 
-				    MTestGetDatatypeName( &recvtype ),
-				    MTestGetDatatypeName( &sendtype ) );
-			    /* Redo the test, with the errors printed */
-			    recvtype.printErrors = 1;
-			    (void)MTestCheckRecv( 0, &recvtype );
-			}
-			errs += err;
-		    }
-		}
-		else {
-		    MPI_Win_fence( 0, win );
-		}
-		MPI_Win_free( &win );
-		MTestFreeDatatype( &sendtype );
-		MTestFreeDatatype( &recvtype );
+                errs += test(comm, rank, source, dest, &sendtype, &recvtype);
+                MTestFreeDatatype(&sendtype);
+                MTestFreeDatatype(&recvtype);
 	    }
 	}
         MTestFreeComm(&comm);
     }
 
+    /* Part #2: simple large size test - contiguous and noncontiguous */
+    if (sizeof(void *) > 4) {  /* Only if > 32-bit architecture */
+        MPI_Comm_rank( MPI_COMM_WORLD, &rank );
+        MPI_Comm_size( MPI_COMM_WORLD, &size );
+        source = 0;
+        dest   = size - 1;
+
+        MTestGetDatatypes(&sendtype, &recvtype, LARGE_CNT_CONTIG);
+        errs += test(MPI_COMM_WORLD, rank, source, dest, &sendtype, &recvtype);
+
+        do {
+            MTestFreeDatatype(&sendtype);
+            MTestFreeDatatype(&recvtype);
+            MTestGetDatatypes(&sendtype, &recvtype, LARGE_CNT_NONCONTIG);
+        } while (strstr(MTestGetDatatypeName(&sendtype), "vector") == NULL);
+        errs += test(MPI_COMM_WORLD, rank, source, dest, &sendtype, &recvtype);
+        MTestFreeDatatype(&sendtype);
+        MTestFreeDatatype(&recvtype);
+    }
+
     MTest_Finalize( errs );
     MPI_Finalize();
     return 0;
diff --git a/test/mpi/rma/testlist.in b/test/mpi/rma/testlist.in
index 9a6a7d5..f9bc0f2 100644
--- a/test/mpi/rma/testlist.in
+++ b/test/mpi/rma/testlist.in
@@ -2,7 +2,7 @@ winname 2
 allocmem 2
 putfence1 4
 putfidx 4
-getfence1 4
+getfence1 4 timeLimit=400
 accfence1 4
 adlb_mimic1 3
 accfence2 4

http://git.mpich.org/mpich.git/commitdiff/9d7d493ba888625c5eb8456ae3f788f938b690a3

commit 9d7d493ba888625c5eb8456ae3f788f938b690a3
Author: Antonio Pena Monferrer <apenya at mcs.anl.gov>
Date:   Sat Nov 8 12:26:03 2014 -0600

    Added support for large-count datatype tests
    
    Signed-off-by: Wesley Bland <wbland at anl.gov>

diff --git a/test/mpi/include/mpitest.h b/test/mpi/include/mpitest.h
index 0b46ef7..f20eb76 100644
--- a/test/mpi/include/mpitest.h
+++ b/test/mpi/include/mpitest.h
@@ -38,7 +38,7 @@ void MTestGetDbgInfo(int *dbgflag, int *verbose);
 typedef struct _MTestDatatype {
     MPI_Datatype datatype;
     void *buf;              /* buffer to use in communication */
-    int  count;             /* count to use for this datatype */
+    MPI_Aint  count;        /* count to use for this datatype */
     int  isBasic;           /* true if the type is predefined */
     int  printErrors;       /* true if errors should be printed
 			       (used by the CheckBuf routines) */
@@ -72,7 +72,7 @@ void MTestInitFullDatatypes();
 void MTestInitMinDatatypes();
 
 int MTestCheckRecv( MPI_Status *, MTestDatatype * );
-int MTestGetDatatypes( MTestDatatype *, MTestDatatype *, int );
+int MTestGetDatatypes( MTestDatatype *, MTestDatatype *, MPI_Aint );
 void MTestResetDatatypes( void );
 void MTestFreeDatatype( MTestDatatype * );
 const char *MTestGetDatatypeName( MTestDatatype * );
diff --git a/test/mpi/util/mtest_datatype.c b/test/mpi/util/mtest_datatype.c
index 39a5f1e..39e3ceb 100644
--- a/test/mpi/util/mtest_datatype.c
+++ b/test/mpi/util/mtest_datatype.c
@@ -82,7 +82,7 @@ static void *MTestTypeContigInit(MTestDatatype * mtype)
 
     if (mtype->count > 0) {
         unsigned char *p;
-        int i, totsize;
+        MPI_Aint i, totsize;
         merr = MPI_Type_extent(mtype->datatype, &size);
         if (merr)
             MTestPrintError(merr);
@@ -116,8 +116,8 @@ static int MTestTypeContigCheckbuf(MTestDatatype * mtype)
 {
     unsigned char *p;
     unsigned char expected;
-    int i, totsize, err = 0, merr;
-    MPI_Aint size;
+    int err = 0, merr;
+    MPI_Aint i, totsize, size;
 
     p = (unsigned char *) mtype->buf;
     if (p) {
@@ -130,7 +130,7 @@ static int MTestTypeContigCheckbuf(MTestDatatype * mtype)
             if (p[i] != expected) {
                 err++;
                 if (mtype->printErrors && err < 10) {
-                    printf("Data expected = %x but got p[%d] = %x\n", expected, i, p[i]);
+                    printf("Data expected = %x but got p[%ld] = %x\n", expected, i, p[i]);
                     fflush(stdout);
                 }
             }
@@ -154,7 +154,8 @@ static void *MTestTypeVectorInit(MTestDatatype * mtype)
 
     if (mtype->count > 0) {
         unsigned char *p;
-        int i, j, k, nc;
+        int j, k, nc;
+        MPI_Aint i;
 
         merr = MPI_Type_extent(mtype->datatype, &size);
         if (merr)
@@ -257,7 +258,8 @@ static void *MTestTypeIndexedInit(MTestDatatype * mtype)
 
     if (mtype->count > 0) {
         unsigned char *p;
-        int i, j, k, b, nc;
+        int j, k, b, nc;
+        MPI_Aint i;
 
         /* Allocate buffer */
         merr = MPI_Type_extent(mtype->datatype, &size);
@@ -371,7 +373,8 @@ static void *MTestTypeIndexedBlockInit(MTestDatatype * mtype)
 
     if (mtype->count > 0) {
         unsigned char *p;
-        int i, k, j, nc;
+        int k, j, nc;
+        MPI_Aint i;
 
         /* Allocate the send/recv buffer */
         merr = MPI_Type_extent(mtype->datatype, &size);
@@ -477,7 +480,8 @@ static void *MTestTypeSubarrayInit(MTestDatatype * mtype)
 
     if (mtype->count > 0) {
         unsigned char *p;
-        int i, k, j, b, nc;
+        int k, j, b, nc;
+        MPI_Aint i;
 
         /* Allocate the send/recv buffer */
         merr = MPI_Type_extent(mtype->datatype, &size);
@@ -1240,7 +1244,7 @@ void *MTestTypeInitRecv(MTestDatatype * mtype)
 
     if (mtype->count > 0) {
         signed char *p;
-        int i, totsize;
+        MPI_Aint i, totsize;
         merr = MPI_Type_extent(mtype->datatype, &size);
         if (merr)
             MTestPrintError(merr);
diff --git a/test/mpi/util/mtest_datatype_gen.c b/test/mpi/util/mtest_datatype_gen.c
index 2cd1d2c..66279af 100644
--- a/test/mpi/util/mtest_datatype_gen.c
+++ b/test/mpi/util/mtest_datatype_gen.c
@@ -178,12 +178,12 @@ void MTestInitMinDatatypes()
 /* Routine to define various sets of blocklen/count/stride for derived datatypes. */
 /* ------------------------------------------------------------------------------ */
 
-static inline int MTestDdtStructDefine(int ddt_index, int tot_count, int *count,
-                                       int *blen, int *stride, int *align_tot_count)
+static inline int MTestDdtStructDefine(int ddt_index, MPI_Aint tot_count, MPI_Aint *count,
+                                       MPI_Aint *blen, MPI_Aint *stride, MPI_Aint *align_tot_count)
 {
     int merr = 0;
     int ddt_c_st;
-    int _short = 0, _align_tot_count = 0, _count = 0, _blen = 0, _stride = 0;
+    MPI_Aint _short = 0, _align_tot_count = 0, _count = 0, _blen = 0, _stride = 0;
     ddt_c_st = ddt_index % MTEST_DDT_NUM_SUBTESTS;
 
     /* Get short value according to user specified tot_count.
@@ -244,7 +244,7 @@ static inline int MTestDdtStructDefine(int ddt_index, int tot_count, int *count,
 /* ------------------------------------------------------------------------ */
 
 static inline int MTestGetBasicDatatypes(MTestDatatype * sendtype,
-                                         MTestDatatype * recvtype, int tot_count)
+                                         MTestDatatype * recvtype, MPI_Aint tot_count)
 {
     int merr = 0;
     int bdt_index = datatype_index - MTEST_BDT_START_IDX;
@@ -303,11 +303,12 @@ static inline int MTestGetBasicDatatypes(MTestDatatype * sendtype,
 /* ------------------------------------------------------------------------ */
 
 static inline int MTestGetSendDerivedDatatypes(MTestDatatype * sendtype,
-                                               MTestDatatype * recvtype, int tot_count)
+                                               MTestDatatype * recvtype, MPI_Aint tot_count)
 {
     int merr = 0;
     int ddt_datatype_index, ddt_c_dt;
-    int blen, stride, count, align_tot_count, tsize = 1;
+    MPI_Count tsize = 1;
+    MPI_Aint blen, stride, count, align_tot_count;;
     MPI_Datatype old_type = MPI_DOUBLE;
 
     /* Check index */
@@ -336,7 +337,7 @@ static inline int MTestGetSendDerivedDatatypes(MTestDatatype * sendtype,
         return merr;
 
     sendtype->count = 1;
-    merr = MPI_Type_size(sendtype->datatype, &tsize);
+    merr = MPI_Type_size_x(sendtype->datatype, &tsize);
     if (merr)
         MTestPrintError(merr);
 
@@ -351,11 +352,12 @@ static inline int MTestGetSendDerivedDatatypes(MTestDatatype * sendtype,
 }
 
 static inline int MTestGetRecvDerivedDatatypes(MTestDatatype * sendtype,
-                                               MTestDatatype * recvtype, int tot_count)
+                                               MTestDatatype * recvtype, MPI_Aint tot_count)
 {
     int merr = 0;
     int ddt_datatype_index, ddt_c_dt;
-    int blen, stride, count, align_tot_count, tsize;
+    MPI_Count tsize;
+    MPI_Aint blen, stride, count, align_tot_count;
     MPI_Datatype old_type = MPI_DOUBLE;
 
     /* Check index */
@@ -383,7 +385,7 @@ static inline int MTestGetRecvDerivedDatatypes(MTestDatatype * sendtype,
         return merr;
 
     recvtype->count = 1;
-    merr = MPI_Type_size(recvtype->datatype, &tsize);
+    merr = MPI_Type_size_x(recvtype->datatype, &tsize);
     if (merr)
         MTestPrintError(merr);
 
@@ -400,7 +402,7 @@ static inline int MTestGetRecvDerivedDatatypes(MTestDatatype * sendtype,
 /* ------------------------------------------------------------------------ */
 /* Exposed routine to external tests                                         */
 /* ------------------------------------------------------------------------ */
-int MTestGetDatatypes(MTestDatatype * sendtype, MTestDatatype * recvtype, int tot_count)
+int MTestGetDatatypes(MTestDatatype * sendtype, MTestDatatype * recvtype, MPI_Aint tot_count)
 {
     int merr = 0;
 
@@ -448,11 +450,11 @@ int MTestGetDatatypes(MTestDatatype * sendtype, MTestDatatype * recvtype, int to
     datatype_index++;
 
     if (verbose >= 2 && datatype_index > 0) {
-        int ssize, rsize;
+        MPI_Count ssize, rsize;
         const char *sendtype_nm = MTestGetDatatypeName(sendtype);
         const char *recvtype_nm = MTestGetDatatypeName(recvtype);
-        MPI_Type_size(sendtype->datatype, &ssize);
-        MPI_Type_size(recvtype->datatype, &rsize);
+        MPI_Type_size_x(sendtype->datatype, &ssize);
+        MPI_Type_size_x(recvtype->datatype, &rsize);
 
         MTestPrintfMsg(2, "Get datatypes: send = %s(size %d count %d basesize %d), "
                        "recv = %s(size %d count %d basesize %d), tot_count=%d\n",

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

Summary of changes:
 test/mpi/include/mpitest.h         |    4 +-
 test/mpi/rma/getfence1.c           |  148 +++++++++++++++++++++------------
 test/mpi/rma/putfence1.c           |  161 ++++++++++++++++++++++--------------
 test/mpi/rma/testlist.in           |    2 +-
 test/mpi/util/mtest_datatype.c     |   22 +++--
 test/mpi/util/mtest_datatype_gen.c |   30 ++++---
 6 files changed, 224 insertions(+), 143 deletions(-)


hooks/post-receive
-- 
MPICH primary repository


More information about the commits mailing list