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