Open MPI logo

Open MPI User's Mailing List Archives

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

Subject: [OMPI users] Prototypes for Fortran MPI_ commands using 64-bit indexing
From: Jim Parker (jimparker96313_at_[hidden])
Date: 2013-10-30 16:35:16


Hello,
  I have recently built a cluster that uses the 64-bit indexing feature of
OpenMPI following the directions at
http://wiki.chem.vu.nl/dirac/index.php/How_to_build_MPI_libraries_for_64-bit_integers

My question is what are the new prototypes for the MPI calls ?
specifically
MPI_RECV
MPI_Allgathterv

I'm curious because some off my local variables get killed (set to null)
upon my first call to MPI_RECV. Typically, this is due (in Fortran) to
someone not setting the 'status' variable to an appropriate array size.

However, my declaration for status is
integer (kind=mpi_int_kind) :: status(MPI_STATUS_SIZE)

A typical call to MPI_Recv is
call MPI_RECV(num_array, length, MPI_INTEGER, 0,0,MPI_COMM_WORLD, status,
mpierr)

where the following definitions are used,
mpi_int_kind=8 (for gcc/gfortran compiler)

integer,parameter :: length = <some-value>
integer :: num_array(length)
integer :: mpierr

My review of mpif.h and mpi.h seem to indicate that the functions are
defined as C int types and therefore , I assume, the coercion during the
compile makes the library support 64-bit indexing. ie. int -> long int

The documentation on MPI_Recv just mentions the prototype for ints (32-bit)
, I can't find anything for 64-bit
http://www.open-mpi.org/doc/v1.6/

Any help would be appreciated.
The output from ompi_info --all is attached.

Cheers,
--Jim Parker

BTW, the code works fine when linked against a 32-bit MPI library.