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
> us...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/users


Reply via email to