Hi Jack
It may depend on "do some things".
Does it involve MPI communication?
Also, why not put MPI_Finalize();return 0 outside the ifs?
Gus Correa
On Oct 24, 2010, at 2:23 PM, Jack Bryan wrote:
> Hi
>
> I got a problem of open 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 strill 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.
> MPI_Finalize();
> return 0 ;
> }
> if (myRank == 0)
> {
> MPI_Finalize();
> return 0;
> }
>
> }
>
> 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
>
> _______________________________________________
> users mailing list
> [email protected]
> http://www.open-mpi.org/mailman/listinfo.cgi/users