[mpich-commits] [mpich] MPICH primary repository branch, master, updated. v3.1-63-gf4a63c1
Service Account
noreply at mpich.org
Mon Mar 24 09:53:11 CDT 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 f4a63c1bb1f90b122264cf37af08e13e3271dcde (commit)
via 17821d558694e4f4e27882b9f21cdd0da0cf95e0 (commit)
via 7d8aba5d2a3ea392fe1b6b05e86f266ed9627709 (commit)
from 055abbd3fe7d0239611dd7f70c508a4a546c63aa (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/f4a63c1bb1f90b122264cf37af08e13e3271dcde
commit f4a63c1bb1f90b122264cf37af08e13e3271dcde
Author: Ken Raffenetti <raffenet at mcs.anl.gov>
Date: Wed Mar 12 10:37:15 2014 -0500
add test for Op::Reduce_local
Test the use of Reduce_local in C++. Use multiple built-in datatypes,
as well as a derived vector.
diff --git a/test/mpi/cxx/coll/Makefile.am b/test/mpi/cxx/coll/Makefile.am
index 3a6f7cb..75a0fd8 100644
--- a/test/mpi/cxx/coll/Makefile.am
+++ b/test/mpi/cxx/coll/Makefile.am
@@ -14,6 +14,7 @@ noinst_PROGRAMS = \
uallredx \
uallreduce \
ureduce \
+ ureducelocal \
uscan \
uexscan \
icbcastx \
@@ -35,6 +36,7 @@ arcomplex_SOURCES = arcomplex.cxx
uallredx_SOURCES = uallredx.cxx
uallreduce_SOURCES = uallreduce.cxx
ureduce_SOURCES = ureduce.cxx
+ureducelocal_SOURCES = ureducelocal.cxx
uscan_SOURCES = uscan.cxx
uexscan_SOURCES = uexscan.cxx
icbcastx_SOURCES = icbcastx.cxx
diff --git a/test/mpi/cxx/coll/testlist b/test/mpi/cxx/coll/testlist
index 2c0b9e1..b4a1eaa 100644
--- a/test/mpi/cxx/coll/testlist
+++ b/test/mpi/cxx/coll/testlist
@@ -2,6 +2,7 @@ arcomplex 4
uallredx 5
uallreduce 5
ureduce 5
+ureducelocal 5
uscan 5
uexscan 5
alltoallw2x 10
diff --git a/test/mpi/cxx/coll/ureducelocal.cxx b/test/mpi/cxx/coll/ureducelocal.cxx
new file mode 100644
index 0000000..97aaae8
--- /dev/null
+++ b/test/mpi/cxx/coll/ureducelocal.cxx
@@ -0,0 +1,128 @@
+/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil ; -*- */
+/*
+ *
+ * (C) 2003 by Argonne National Laboratory.
+ * See COPYRIGHT in top-level directory.
+ */
+#include "mpi.h"
+#include "mpitestconf.h"
+#ifdef HAVE_IOSTREAM
+// Not all C++ compilers have iostream instead of iostream.h
+#include <iostream>
+#ifdef HAVE_NAMESPACE_STD
+// Those that do often need the std namespace; otherwise, a bare "cout"
+// is likely to fail to compile
+using namespace std;
+#endif
+#else
+#include <iostream.h>
+#endif
+#include "mpitestcxx.h"
+
+static MPI::Datatype my_datatype;
+static int real_count;
+
+void uop(const void *invec, void *inoutvec, int count, const MPI::Datatype & datatype)
+{
+ int i;
+
+ if (datatype == my_datatype)
+ count = real_count;
+
+ for (i = 0; i < count; i++) {
+ if (datatype == MPI::INT)
+ ((int *)inoutvec)[i] = ((int *)invec)[i] + ((int *)inoutvec)[i];
+ else if (datatype == MPI::DOUBLE || datatype == my_datatype)
+ ((double *)inoutvec)[i] = ((double *)invec)[i] + ((double *)inoutvec)[i];
+ else
+ return;
+ }
+}
+
+int main(int argc, char **argv)
+{
+ MPI::Op sumop;
+ MPI::Intracomm comm = MPI::COMM_WORLD;
+ int errs = 0;
+ int size, i, count, root, rank;
+ int *vin, *vout;
+ double *dvin, *dvout;
+
+ MTest_Init();
+
+ sumop.Init(uop, true);
+ size = comm.Get_size();
+ rank = comm.Get_rank();
+
+ for (count = 1; count < 66000; count = count * 2) {
+ /* MPI::INT */
+ vin = new int[count];
+ vout = new int[count];
+
+ for (root = 0; root < size; root++) {
+ for (i = 0; i < count; i++) {
+ vin[i] = i;
+ vout[i] = -1;
+ }
+ sumop.Reduce_local(vin, vout, count, MPI::INT);
+ for (i = 0; i < count; i++) {
+ if (vout[i] != i - 1) {
+ errs++;
+ if (errs < 10)
+ cerr << "vout[" << i << "] = " << vout[i] << endl;
+ }
+ }
+ }
+ delete[]vin;
+ delete[]vout;
+
+ /* MPI::DOUBLE */
+ dvin = new double[count];
+ dvout = new double[count];
+ for (root = 0; root < size; root++) {
+ for (i = 0; i < count; i++) {
+ dvin[i] = i;
+ dvout[i] = -1;
+ }
+ sumop.Reduce_local(dvin, dvout, count, MPI::DOUBLE);
+ for (i = 0; i < count; i++) {
+ if (dvout[i] != i - 1) {
+ errs++;
+ if (errs < 10)
+ cerr << "dvout[" << i << "] = " << dvout[i] << endl;
+ }
+ }
+ }
+ delete[]dvin;
+ delete[]dvout;
+
+ /* A vector of MPI::DOUBLEs */
+ dvin = new double[count];
+ dvout = new double[count];
+ my_datatype = MPI::DOUBLE.Create_vector(count/2, 1, 2);
+ my_datatype.Commit();
+ real_count = count;
+ for (root = 0; root < size; root++) {
+ for (i = 0; i < count; i++) {
+ dvin[i] = i;
+ dvout[i] = -1;
+ }
+ sumop.Reduce_local(dvin, dvout, 1, my_datatype);
+ for (i = 0; i < count; i += 2) {
+ if (dvout[i] != i - 1) {
+ errs++;
+ if (errs < 10)
+ cerr << "dvout[" << i << "] = " << dvout[i] << endl;
+ }
+ }
+ }
+ delete[]dvin;
+ delete[]dvout;
+ my_datatype.Free();
+ }
+
+ sumop.Free();
+ MTest_Finalize(errs);
+ MPI::Finalize();
+ return 0;
+}
http://git.mpich.org/mpich.git/commitdiff/17821d558694e4f4e27882b9f21cdd0da0cf95e0
commit 17821d558694e4f4e27882b9f21cdd0da0cf95e0
Author: Ken Raffenetti <raffenet at mcs.anl.gov>
Date: Fri Mar 21 08:52:29 2014 -0500
add missing consts to MPI::Op methods
diff --git a/src/binding/cxx/cxxdecl3.dat b/src/binding/cxx/cxxdecl3.dat
index 9a41931..4244bd7 100644
--- a/src/binding/cxx/cxxdecl3.dat
+++ b/src/binding/cxx/cxxdecl3.dat
@@ -248,7 +248,8 @@ dtype-Pack_size int (, ,in:constref:Comm ,return) const
# op-Init requires special handling
#op-Init void (,User_function* function ,in:bool )
op-Free void ()
-op-Reduce_local void (in:const, , ,in:constref:Datatype, ,)
+op-Is_commutative () const
+op-Reduce_local void (in:const, , ,in:constref:Datatype, ,) const
#intra-Allreduce void (in:const , , ,in:constref:Datatype ,in:constref:Op ) const
#intra-Reduce_scatter void (in:const , , ,in:constref:Datatype ,in:constref:Op ) const
intra-Scan void (in:const , , ,in:constref:Datatype ,in:constref:Op ) const
http://git.mpich.org/mpich.git/commitdiff/7d8aba5d2a3ea392fe1b6b05e86f266ed9627709
commit 7d8aba5d2a3ea392fe1b6b05e86f266ed9627709
Author: Junchao Zhang <jczhang at mcs.anl.gov>
Date: Tue Mar 4 10:22:08 2014 -0600
Add const& to Datatype of MPI::Op::Reduce_local
Fixes #2014
Signed-off-by: Ken Raffenetti <raffenet at mcs.anl.gov>
diff --git a/src/binding/cxx/buildiface b/src/binding/cxx/buildiface
index 7c1ff1b..53589da 100755
--- a/src/binding/cxx/buildiface
+++ b/src/binding/cxx/buildiface
@@ -521,7 +521,7 @@ $specialReturnType{"intra-Dup"} = "Intracomm";
);
%class_mpi2op = (
'Is_commutative' => '2;bool',
- 'Reduce_local' => '0',
+ 'Reduce_local' => '0:4',
);
%class_mpi2preq = ();
%class_mpi2req = ();
diff --git a/src/binding/cxx/cxxdecl3.dat b/src/binding/cxx/cxxdecl3.dat
index 9cbf2f9..9a41931 100644
--- a/src/binding/cxx/cxxdecl3.dat
+++ b/src/binding/cxx/cxxdecl3.dat
@@ -248,6 +248,7 @@ dtype-Pack_size int (, ,in:constref:Comm ,return) const
# op-Init requires special handling
#op-Init void (,User_function* function ,in:bool )
op-Free void ()
+op-Reduce_local void (in:const, , ,in:constref:Datatype, ,)
#intra-Allreduce void (in:const , , ,in:constref:Datatype ,in:constref:Op ) const
#intra-Reduce_scatter void (in:const , , ,in:constref:Datatype ,in:constref:Op ) const
intra-Scan void (in:const , , ,in:constref:Datatype ,in:constref:Op ) const
-----------------------------------------------------------------------
Summary of changes:
src/binding/cxx/buildiface | 2 +-
src/binding/cxx/cxxdecl3.dat | 2 +
test/mpi/cxx/coll/Makefile.am | 2 +
test/mpi/cxx/coll/testlist | 1 +
test/mpi/cxx/coll/ureducelocal.cxx | 128 ++++++++++++++++++++++++++++++++++++
5 files changed, 134 insertions(+), 1 deletions(-)
create mode 100644 test/mpi/cxx/coll/ureducelocal.cxx
hooks/post-receive
--
MPICH primary repository
More information about the commits
mailing list