Hi Chris As you said, pending prior communication, is a candidate. Another that I saw is MPI_Finalize inside a conditional, where the condition may or may not be met by all ranks: if (condition) { MPI_Finalize(); }
Regardless of the cause, to check the ranks that reach MPI_Finalize, did you try the old-fashioned printf commands right before MPI_Finalize? Something like this: printf("Rank %d before MPI_Finalize\n",myrank); fflush(stdout); MPI_Finalize(); or Fortran: print *, 'Rank ', myrank, ' before MPI_Finalize' call flush(6) call MPI_Finalize(ierror) My two cents, Gus Correa On 08/13/2013 02:51 PM, Hazelrig, Chris CTR (US) wrote:
Greetings, I am using OpenMPI 1.4.3-1.1.el6 on RedHawk Linux 6.0.1 (Glacier) / RedHat Enterprise Linux Workstation Release 6.1 (Santiago). I am currently working through some issues that I encountered after upgrading from RedHawk 5.2 / RHEL 5.2 and OpenMPI 1.4.3-1 (openmpi-gcc_1.4.3-1). It seems that since the upgrades my software does not return from the call to the Finalize() routine. All threads enter the Finalize() routine and never return. I wrote a simple test program to try to simplify troubleshooting and Finalize() works as expected, i.e., all threads return from the Finalize() call. This suggests the problem is in my code. I have searched the man pages and user forums to no avail. Has anyone else encountered this problem? What could cause such behavior? I wondered if maybe there is still some prior communication that was left unfinished, but I believe I have verified that is not the case, plus my understanding of how Finalize() works is that it would error/exception out in such a situation rather than just sit there, but I could be wrong. Not sure what additional information may be needed by the community to aid in troubleshooting, but will be happy to provide whatever else is needed. Kind regards, Chris Hazelrig SimTech _______________________________________________ users mailing list us...@open-mpi.org http://www.open-mpi.org/mailman/listinfo.cgi/users