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 b3049e5a2b300c105bb1970699b74a3826c48e2a (commit) from 602605b67eab52c0d4eaf6b2a3b2580a7f1da0d6 (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/b3049e5a2b300c105bb1970699b74a3826... commit b3049e5a2b300c105bb1970699b74a3826c48e2a Author: William Gropp <[email protected]> Date: Thu Aug 1 08:31:40 2013 -0500 Added Fortran tests for a few PMPI routines Added test to help check #1815, as weak symbol support is used to implement the PMPI and MPI routines in a single object file, and there are few tests for correct operation of the PMPI routines in the test suite (a more comprehensive test of PMPI could use CPP macros to convert all existing tests to try PMPI, but typically either the PMPI routines are all available, or there is a problem. diff --git a/test/mpi/.gitignore b/test/mpi/.gitignore index 0bdcd15..e5f8917 100644 --- a/test/mpi/.gitignore +++ b/test/mpi/.gitignore @@ -21,6 +21,7 @@ /f90/pt2pt/ /f90/spawn/ /f90/topo/ +/f90/profile /coll/gdb.script /coll/redscat2 /coll/reduce_local diff --git a/test/mpi/configure.ac b/test/mpi/configure.ac index 565842a..574411d 100644 --- a/test/mpi/configure.ac +++ b/test/mpi/configure.ac @@ -1416,6 +1416,7 @@ AC_OUTPUT(maint/testmerge \ f77/io/iooffset.h \ f77/io/iodisp.h \ f77/io/ioaint.h \ + f77/profile/Makefile \ f90/Makefile \ f90/attr/Makefile \ f90/datatype/Makefile \ @@ -1435,6 +1436,7 @@ AC_OUTPUT(maint/testmerge \ f90/ext/testlist \ f90/io/Makefile \ f90/misc/Makefile \ + f90/profile/Makefile \ cxx/Makefile \ cxx/util/Makefile \ cxx/attr/Makefile \ diff --git a/test/mpi/f77/Makefile.am b/test/mpi/f77/Makefile.am index 01d8fba..8261d44 100644 --- a/test/mpi/f77/Makefile.am +++ b/test/mpi/f77/Makefile.am @@ -9,6 +9,6 @@ include $(top_srcdir)/Makefile_f77.mtest EXTRA_DIST = testlist.in -static_subdirs = util attr datatype coll pt2pt info init comm topo ext +static_subdirs = util attr datatype coll pt2pt info init comm topo ext profile SUBDIRS = $(static_subdirs) $(spawndir) $(iodir) $(rmadir) DIST_SUBDIRS = $(static_subdirs) spawn io rma diff --git a/test/mpi/f77/profile/Makefile.am b/test/mpi/f77/profile/Makefile.am new file mode 100644 index 0000000..e55eaad --- /dev/null +++ b/test/mpi/f77/profile/Makefile.am @@ -0,0 +1,21 @@ +# -*- Mode: Makefile; -*- +# vim: set ft=automake : +# +# (C) 2011 by Argonne National Laboratory. +# See COPYRIGHT in top-level directory. +# + +include $(top_srcdir)/Makefile_f77.mtest + +EXTRA_DIST = testlist + +# avoid having to write many "foo_SOURCES = foo.f" lines +AM_DEFAULT_SOURCE_EXT = .f + +noinst_PROGRAMS = profile1f + +## attr1aints.h will be distributed because it's listed in AC_CONFIG_FILES/AC_OUTPUT + +# ensure that dependent tests will be rebuilt when typeaints.h is updated +greqf.$(OBJEXT): attr1aints.h + diff --git a/test/mpi/f77/profile/profile1f.f b/test/mpi/f77/profile/profile1f.f new file mode 100644 index 0000000..f3e4af8 --- /dev/null +++ b/test/mpi/f77/profile/profile1f.f @@ -0,0 +1,101 @@ + program main + include "mpif.h" + integer ierr + integer smsg(3), rmsg(3), toterrs, wsize, wrank + common /myinfo/ calls, amount, rcalls, ramount + integer calls, amount, rcalls, ramount + + toterrs = 0 + call mpi_init( ierr ) + call init_counts() + call mpi_comm_rank( MPI_COMM_WORLD, wrank, ierr ) + call mpi_comm_size( MPI_COMM_WORLD, wsize, ierr ) + + if (wrank .eq. 0) then + smsg(1) = 3 + call mpi_send( smsg, 1, MPI_INT, 1, 0, MPI_COMM_WORLD, ierr ) + else if (wrank .eq. 1) then + call mpi_recv( rmsg, 1, MPI_INT, 0, 0, MPI_COMM_WORLD, + $ MPI_STATUS_IGNORE, ierr ) + if (rmsg(1) .ne. 3) then + toterrs = toterrs + 1 + print *, "Unexpected received value ", rmsg(1) + endif + endif +C +C check that we used the profiling versions of the routines + toterrs = 0 + if (wrank .eq. 0) then + if (calls.ne.1) then + toterrs = toterrs + 1 + print *, "Sender calls is ", calls + endif + if (amount.ne.1) then + toterrs = toterrs + 1 + print *, "Sender amount is ", amount + endif + else if (wrank .eq. 1) then + if (rcalls.ne.1) then + toterrs = toterrs + 1 + print *, "Receiver calls is ", rcalls + endif + if (ramount.ne.1) then + toterrs = toterrs + 1 + print *, "Receiver amount is ", ramount + endif + endif + + call mpi_allreduce( MPI_IN_PLACE, toterrs, 1, MPI_INT, MPI_SUM, + $ MPI_COMM_WORLD, ierr ) + if (wrank .eq. 0) then + if (toterrs .eq. 0) then + print *, " No Errors" + else + print *, " Found ", toterrs, " errors" + endif + endif +C + call mpi_finalize( ierr ) + end +C + subroutine mpi_send( smsg, count, dtype, dest, tag, comm, ierr ) + include "mpif.h" + integer count, dtype, dest, tag, comm, ierr + integer smsg(count) + common /myinfo/ calls, amount, rcalls, ramount + integer calls, amount, rcalls, ramount +c + calls = calls + 1 + amount = amount + count + call pmpi_send( smsg, count, dtype, dest, tag, comm, ierr ) + return + end +C + subroutine mpi_recv( rmsg, count, dtype, src, tag, comm, status, + $ ierr ) + include "mpif.h" + integer count, dtype, src, tag, comm, status(MPI_STATUS_SIZE), + $ ierr + integer rmsg(count) + common /myinfo/ calls, amount, rcalls, ramount + integer calls, amount, rcalls, ramount + rcalls = rcalls + 1 + ramount = ramount + 1 + call pmpi_recv( rmsg, count, dtype, src, tag, comm, status, ierr + $ ) + return + end +C + subroutine init_counts() + common /myinfo/ calls, amount, rcalls, ramount + integer calls, amount, rcalls, ramount + calls = 0 + amount = 0 + rcalls = 0 + ramount = 0 + end +C + subroutine mpi_pcontrol( ierr ) + integer ierr + return + end diff --git a/test/mpi/f77/profile/testlist b/test/mpi/f77/profile/testlist new file mode 100644 index 0000000..27ce085 --- /dev/null +++ b/test/mpi/f77/profile/testlist @@ -0,0 +1 @@ +profile1f 2 diff --git a/test/mpi/f77/testlist.in b/test/mpi/f77/testlist.in index 7ea2b1c..3316809 100644 --- a/test/mpi/f77/testlist.in +++ b/test/mpi/f77/testlist.in @@ -10,3 +10,4 @@ init comm ext topo +profile diff --git a/test/mpi/f90/testlist.in b/test/mpi/f90/testlist.in index e8b64ef..edf311c 100644 --- a/test/mpi/f90/testlist.in +++ b/test/mpi/f90/testlist.in @@ -13,3 +13,4 @@ f90types @spawndir@ timer topo +profile ----------------------------------------------------------------------- Summary of changes: test/mpi/.gitignore | 1 + test/mpi/configure.ac | 2 + test/mpi/f77/Makefile.am | 2 +- test/mpi/f77/{pt2pt => profile}/Makefile.am | 4 +- test/mpi/f77/profile/profile1f.f | 101 +++++++++++++++++++++++++++ test/mpi/f77/profile/testlist | 1 + test/mpi/f77/testlist.in | 1 + test/mpi/f90/testlist.in | 1 + 8 files changed, 109 insertions(+), 4 deletions(-) copy test/mpi/f77/{pt2pt => profile}/Makefile.am (85%) create mode 100644 test/mpi/f77/profile/profile1f.f create mode 100644 test/mpi/f77/profile/testlist hooks/post-receive -- MPICH primary repository