[mvapich-discuss] Fatal error in MPI_Allreduce

Christian Guggenberger christian.guggenberger at rzg.mpg.de
Thu Nov 29 10:36:20 EST 2007


Hi,

attach is a small piece of Fortran code, which crashes with

Fatal error in MPI_Allreduce: Invalid MPI_Op, error stack:
MPI_Allreduce(707)..........: MPI_Allreduce(sbuf=0x610be0,
rbuf=0x610c40, count=5, MPI_2DOUBLE_PRECISION, MPI_MINLOC,
MPI_COMM_WORLD) failed
MPIR_MINLOC_check_dtype(215): MPI_Op MPI_MINLOC operation not defined
for this datatype 

as soon as it is compiled/linked with a MPI library (both mpich2 and mvapich2),
which was compiled with Intel C/C++ 10.0.026 and/or 10.1.008 on Linux
x86_64 machines. 

Intel 9.1, GNU or mixtures of GNU C/C++ and Lahey/Fujitsu Fortran work
well.

My question - is anyone aware of miscompilation(s) of mpich2/mvapich2 caused by Intel C/C++
10.0 and 10.1 ?

thanks a lot,

 - Christian
-------------- next part --------------
   program ringtopo
   include 'mpif.h'

   integer :: numtasks, rank, ierr
   integer, parameter :: n = 5
   integer :: i
   real*8 :: dtL(2,n), dtG(2,n)

   call MPI_INIT(ierr)
   call MPI_COMM_RANK(MPI_COMM_WORLD, rank, ierr)
   call MPI_COMM_SIZE(MPI_COMM_WORLD, numtasks, ierr)

   do i=1,n
      dtL(1,i) = sin(13.*rank+i)
      dtL(2,i) = rank
   end do

   write(*,*)"----------------",rank
   do i=1,n
      write(*,'(a,i3,a,i3,a,2g12.5)')"- PE",rank,"/",numtasks," : ",dtL(1:2,i)
   end do

   call MPI_AllReduce (dtL(1,1), dtG(1,1), n, MPI_2Double_Precision, MPI_MinLoc, MPI_Comm_World, ierr)

   write(*,*)"################",rank
   do i=1,n
      write(*,'(a,i3,a,i3,a,2g12.5)')"+ PE",rank,"/",numtasks," : ",dtG(1:2,i)
   end do

   call MPI_FINALIZE(ierr)

   end


More information about the mvapich-discuss mailing list