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 [email protected] https://rfd.newmexicoconsortium.org/mailman/listinfo/devel
