Teuchos Package Browser (Single Doxygen Collection) Version of the Day
Loading...
Searching...
No Matches
subcommTestTeuchosComm.cpp
Go to the documentation of this file.
1// Test to exercise fix to Teuchos::Comm's createSubcommunicator, which
2// had leaked memory.
3// The fix added MPI_Comm_free to the opaqueWrappers.
4// 8/2018 This test hangs of platform waterman.
5
6#include <stdio.h>
7#include <mpi.h>
10#include "Teuchos_RCP.hpp"
11#include "Teuchos_ArrayView.hpp"
12
13
14int main(int narg, char **arg)
15{
16 Teuchos::GlobalMPISession mpiSession(&narg,&arg);
17
20 int me = comm->getRank();
21 int np = comm->getSize();
22
23 int niter = 4;
24 int *ids = new int[np/2+1];
25 for (int i = 0; i < np/2+1; i++) ids[i] = i;
26 Teuchos::ArrayView<const int> list(ids, np/2+1);
27
28 for (int i = 0; i < niter; i++) {
30 = comm->createSubcommunicator(list);
31 printf("iteration %d -- weak: %d strong: %d total: %d\n",
32 i, a.weak_count(), a.strong_count(), a.total_count());
33 }
34 delete [] ids;
35 if (me == 0)
36 printf("\nPASS\n");
37
38 return 0;
39}
Reference-counted pointer class and non-member templated function implementations.
static Teuchos::RCP< const Comm< OrdinalType > > getComm()
Return the default global communicator.
Initialize, finalize, and query the global MPI session.
Concrete serial communicator subclass.
virtual RCP< Comm< Ordinal > > createSubcommunicator(const ArrayView< const int > &ranks) const
int main()
Definition evilMain.cpp:75