Boost logo

Boost Users :

Subject: [Boost-users] boost MPI about finalize problem
From: Jack Bryan (dtustudy68_at_[hidden])
Date: 2010-10-25 10:24:03


Hi
I got a problem of MPI.
I donot know whether it can be resolved in boost MPI.
My program has 5 processes.
All of them can run MPI_Finalize() and return 0.
But, the whole program cannot be completed.
In the MPI cluster job queue, it is still in running status.
If I use 1 process to run it, no problem.
Why ?
My program:
int main (int argc, char **argv) {
        MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &myRank); MPI_Comm_size(MPI_COMM_WORLD, &mySize); MPI_Comm world; world = MPI_COMM_WORLD;
        if (myRank == 0) { do some things. }
        if (myRank != 0) { do some things. }
        cout << " I am rank " << rank << " I am before MPI_Finalize()" << endl;
        MPI_Finalize();
        cout << " I am rank " << rank << " I am after MPI_Finalize()" << endl; return 0; }
I can get the output " I am rank 0 (1, 2, ....) I am before MPI_Finalize() ".
and
" I am rank 0 I am after MPI_Finalize() "
But, other processes do not printed out "I am rank ... I am after MPI_Finalize()" .
It is weird. The process has reached the point just before MPI_Finalize(), why they are hanged there ?
Are there other better ways to check this ?
Any help is appreciated.

And, some output files get wrong codes, which can not be readible. In 1-process case, the program can print correct results to these output files .
Any help is appreciated.
thanks
Jack
Oct. 24 2010
                                               



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net