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