
ok I tried your code and MPI_Init-like version still works and boost::mpi::environment version doesn't (i.e. Blacs returns the wrong nprocs) In fact the Blacs_pinfo returns just the same as if I don't define anything so effectivelly the boost::mpi::environment is doing nothing. I even checked that boost::mpi::environment::initialized() is false before constructing boost::mpi::environment and true after, but still Blacs_pinfo reports as if MPI is not initialized. On Sep 15, 11:55 am, Matthias Troyer <tro...@phys.ethz.ch> wrote:
On Sep 15, 2009, at 8:12 PM, alfC wrote:
I am using MPI in combination with BLACS and apparently it works with MPI_Init but not with boost.MPI
when I use
#include "blacs.h" int main(int argc, char* argv[]) { MPI_Init(&argc,&argv); int nprocs=0; int mype=0; Cblacs_pinfo( &mype, &nprocs ); // overwrites the pointee, that is how Cblacs_pinfo works std::cout<<mype<<" "<<nprocs<<std::endl;
the program output (correctly): "0 1"
But when I use
boost::mpi::environment env(argc, argv); //instead of MPI_Init(argc, argv);
the programs outputs (incorrectly): "0 -1".
The point being that apparently boost::mpi::environment is not equivalent to MPI_Init/MPI_Finalize.
Any idea of what is difference between MPI_Init and boost::mpi::environment?
The constructor is equivalent to the following:
int flag; MPI_Initialized(&flag); if (!(flag!=0)) MPI_Init(&argc, &argv); MPI_Errhandler_set(MPI_COMM_WORLD, MPI_ERRORS_RETURN);
Matthias Troyer
_______________________________________________ Boost-users mailing list Boost-us...@lists.boost.orghttp://lists.boost.org/mailman/listinfo.cgi/boost-users- Hide quoted text -
- Show quoted text -