Dear Open MPI developer, please take a look at the attached 'hello MPI world' file.We know that it contain an error (you should never put '1476395012' into MPI_Init_thread() call! It was a typo, initially...) BUT, see what happens if you compile&call it:
$ mpif90 -g mpihelloworld.f90 $ ./a.out 1476395012 3 *** The MPI_Init_thread() function was called before MPI_INIT was invoked. *** This is disallowed by the MPI standard. *** Your MPI job will now abort.[cluster-hpc.rz.RWTH-Aachen.DE:25739] Local abort before MPI_INIT completed successfully; not able to aggregate error messages, and not able to guarantee that all other processes were killed
For me, reading this: > MPI_Init_thread() function was called before MPI_INIT was invoked. > This is disallowed by the MPI standard...produced some cognitive dissonance, as the MPI's calls to MPI_Init_thread and MPI_Init are well-known to be *mutually exclusive*. Well maybe with 'MPI_Init_thread() function' something Open MPI- internal is meant instead of MPI's MPI_Init_thread, but the error message stays strongly unbelievable ( 2 + 2 = 6 !)
Maybe you can text a better error message? :o) Have a nice day, Paul Kapinos P.S. Tested versions: 1.10.6 and 2.0.1, with support for MPI_THREAD_MULTIPLE > MPI_Init_thread(3) Open MPI MPI_Init_thread(3) > NAME > MPI_Init_thread - Initializes the MPI execution environment > ...... > DESCRIPTION > This routine, or MPI_Init, must be called before any other MPI routine > (apart from MPI_Initialized) is called. MPI can be initialized at most > once; subsequent calls to MPI_Init or MPI_Init_thread are erroneous. > > MPI_Init_thread, as compared to MPI_Init, has a provision to request a > certain level of thread support in required: > MPI_Init(3) Open MPI MPI_Init(3) > NAME > MPI_Init - Initializes the MPI execution environment > ..... > DESCRIPTION > This routine, or MPI_Init_thread, must be called before any other MPI > routine (apart from MPI_Initialized) is called. MPI can be initialized > at most once; subsequent calls to MPI_Init or MPI_Init_thread are erro- > neous. -- Dipl.-Inform. Paul Kapinos - High Performance Computing, RWTH Aachen University, IT Center Seffenter Weg 23, D 52074 Aachen (Germany) Tel: +49 241/80-24915
! Paul Kapinos 22.09.2009 - ! RZ RWTH Aachen, www.rz.rwth-aachen.de ! ! MPI-Hello-World ! PROGRAM PK_MPI_Test USE MPI IMPLICIT NONE !include "mpif.h" ! INTEGER :: my_MPI_Rank, laenge, ierr INTEGER :: requ, provid, required ! INTEGER :: PROVIDED, REQUIRED CHARACTER*(MPI_MAX_PROCESSOR_NAME) my_Host ! !WRITE (*,*) "Jetz penn ich mal 30" !CALL Sleep(30) !WRITE (*,*) "Starten" !CALL MPI_INIT (ierr) required = MPI_THREAD_MULTIPLE requ = 1476395012 WRITE (*,*) requ, required CALL MPI_Init_thread (requ, provid, ierr) WRITE (*,*) "MPI_Init_thread (", requ, provid, ierr, ")" ! REQUIRED = MPI_THREAD_MULTIPLE !MPI_THREAD_SINGLE, MPI_THREAD_FUNNELED, MPI_THREAD_SERIALIZED, MPI_THREAD_MULTIPLE ist evil ! CALL MPI_INIT_THREAD(REQUIRED, PROVIDED, ierr) ! WRITE(*,*) "Threading levels: ", MPI_THREAD_SINGLE, MPI_THREAD_FUNNELED, MPI_THREAD_SERIALIZED, MPI_THREAD_MULTIPLE ! WRITE(*,*) "Fordere multithreading an:", MPI_THREAD_MULTIPLE, REQUIRED, PROVIDED ! !WRITE (*,*) "Nach MPI_INIT" !CALL Sleep(30) CALL MPI_COMM_RANK( MPI_COMM_WORLD, my_MPI_Rank, ierr ) !WRITE (*,*) "Nach MPI_COMM_RANK" CALL MPI_GET_PROCESSOR_NAME(my_Host, laenge, ierr) WRITE (*,*) "Prozessor ", my_MPI_Rank, "on Host: ", my_Host(1:laenge) ! sleeping or spinnig - the same behaviour !CALL Sleep(2) !DO WHILE (.TRUE.) !ENDDO CALL Sleep(1) !IF (my_MPI_Rank == 1) STOP CALL MPI_FINALIZE(ierr) ! !WRITE (*,*) "Daswars" ! END PROGRAM PK_MPI_Test
smime.p7s
Description: S/MIME Cryptographic Signature
_______________________________________________ devel mailing list devel@lists.open-mpi.org https://rfd.newmexicoconsortium.org/mailman/listinfo/devel