Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

Subject: Re: [OMPI users] MPI_Allreduce on local machine
From: Hugo Gagnon (sourceforge.openmpi_at_[hidden])
Date: 2010-07-28 09:33:44


And how do I know how big my data buffer is? I ran MPI_TYPE_EXTENT of
And how do I know how big my data buffer is? I ran MPI_TYPE_EXTENT of
MPI_DOUBLE_PRECISION and the result was 8. So I changed my program to:

  1 program test
  2
  3 use mpi
  4
  5 implicit none
  6
  7 integer :: ierr, nproc, myrank
  8 !integer, parameter :: dp = kind(1.d0)
  9 real(kind=8) :: inside(5), outside(5)
 10
 11 call mpi_init(ierr)
 12 call mpi_comm_size(mpi_comm_world, nproc, ierr)
 13 call mpi_comm_rank(mpi_comm_world, myrank, ierr)
 14
 15 inside = (/ 1., 2., 3., 4., 5. /)
 16 call mpi_allreduce(inside, outside, 5, mpi_real, mpi_sum,
 mpi_comm_world, ierr)
 17
 18 if (myrank == 0) then
 19 print*, outside
 20 end if
 21
 22 call mpi_finalize(ierr)
 23
 24 end program test

but I still get a SIGSEGV fault:

forrtl: severe (174): SIGSEGV, segmentation fault occurred
Image PC Routine Line
Source
libmpi.0.dylib 00000001001BB4B7 Unknown Unknown
Unknown
libmpi_f77.0.dyli 00000001000AF046 Unknown Unknown
Unknown
a.out 0000000100000D87 _MAIN__ 16
test.f90
a.out 0000000100000C9C Unknown Unknown
Unknown
a.out 0000000100000C34 Unknown Unknown
Unknown
forrtl: severe (174): SIGSEGV, segmentation fault occurred
Image PC Routine Line
Source
libmpi.0.dylib 00000001001BB4B7 Unknown Unknown
Unknown
libmpi_f77.0.dyli 00000001000AF046 Unknown Unknown
Unknown
a.out 0000000100000D87 _MAIN__ 16
test.f90
a.out 0000000100000C9C Unknown Unknown
Unknown
a.out 0000000100000C34 Unknown Unknown
Unknown

What is wrong now?

-- 
  Hugo Gagnon
On Wed, 28 Jul 2010 07:56 -0400, "Jeff Squyres" <jsquyres_at_[hidden]>
wrote:
> On Jul 27, 2010, at 4:19 PM, Gus Correa wrote:
> 
> > Is there a simple way to check the number of bytes associated to each
> > MPI basic type of OpenMPI on a specific machine (or machine+compiler)?
> > 
> > Something that would come out easily, say, from ompi_info?
> 
> Not via ompi_info, but the MPI function MPI_GET_EXTENT will tell you the
> datatype's size.
> 
> -----
> [4:54] svbu-mpi:~/mpi % cat extent.f90
>       program main
>       use mpi
>       implicit none
>       integer ierr, ext
>       
>       call MPI_INIT(ierr)
>       call MPI_TYPE_EXTENT(MPI_DOUBLE_PRECISION, ext, ierr)
>       print *, 'Type extent of DOUBLE_PREC is', ext
>       call MPI_FINALIZE(ierr)
>       
>       end
> [4:54] svbu-mpi:~/mpi % mpif90 extent.f90 -o extent -g
> [4:54] svbu-mpi:~/mpi % ./extent
>  Type extent of DOUBLE_PREC is           8
> [4:54] svbu-mpi:~/mpi % 
> -----
> 
> -- 
> Jeff Squyres
> jsquyres_at_[hidden]
> For corporate legal information go to:
> http://www.cisco.com/web/about/doing_business/legal/cri/
> 
> 
> _______________________________________________
> users mailing list
> users_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/users
> 
-- 
  Hugo Gagnon