Oh my god, it's not implemented, right?
boost::mpi::group(const MPI_Group& in_group, bool adopt);
I will have to use OpenMPI C++ terrible bindings. :-(
Júlio.
---------- Forwarded message ----------
From: Júlio Hoffimann
Date: 2011/2/7
Subject: Boost.MPI --- boost::mpi::group class
To: boost-users@lists.boost.org
Hi,
It's my first time using Boost and is amazing. I'm trying to understand why
this simple example bellow don't works as expected:
#include <iostream>
#include
using namespace std;
namespace mpi = boost::mpi;
int main ( int argc, char *argv[] )
{
mpi::environment env( argc, argv );
mpi::communicator world;
mpi::group subgroup( MPI_Group( world.group() ), true );
cout << "I'm process " << world.rank() <<
endl;
cout << "But in subgroup i'm process " << subgroup.rank() << endl;
cout << "And the subgroup size is... " << subgroup.size() << endl;
return 0;
} // ---------- end of function main ----------
*1. Why every process has rank 1 in subgroup? I trying to figure out what
happens, but without success.*
The mpi::boost::group class has no copy constructor explicitly defined. That
is true for many other classes in Boost.MPI...
*2. It's safe to use the copy constructor generated by the compiler as
follows?*
*
*
mpi::group subgroup = world.group().exclude( discardedRanks.begin(),
discardedRanks.end() );
Thanks in advance for any help.
Regards,
Júlio.