Open MPI logo

Open MPI User's Mailing List Archives

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

From: Jeff Squyres (jsquyres_at_[hidden])
Date: 2006-03-04 09:29:10


Michael --

Sorry for the delay in replying.

Many thanks for your report! You are exactly right -- our types are
wrong and will not match in the F90 bindings. I have committed a fix
to the trunk for this (it involved changing some types in mpif.h and
adding another interface function for MPI_COMM_SPAWN_MULTIPLE so that
MPI_ARGVS_NULL could be unambiguously matched).

It was also just pointed out to us on this list the other day that we
are missing all the places where MPI choice buffers could be of type
CHARACTER (e.g., MPI_SEND). We're working on fixing that -- it's
just a bunch of menial labor to fix.

I'm hesitant to put these fixes in the 1.0.x series simply because
we're trying to finish that series and advance towards 1.1. Would
you be amenable to using a 1.1.x snapshot? My commit should show up
in any 1.1 snapshot >= r9198.

On Mar 1, 2006, at 12:30 PM, Michael Kluskens wrote:

>
> On Mar 1, 2006, at 9:56 AM, George Bosilca wrote:
>
>> Now I look into this problem more and your right it's a missing
>> interface. Somehow, it didn't get compiled.
>
> From "openmpi-1.0.1/ompi/mpi/f90/mpi-f90-interfaces.h" the interface
> says:
>
> subroutine MPI_Comm_spawn(command, argv, maxprocs, info, root, &
> comm, intercomm, array_of_errcodes, ierr)
> use mpi_kinds
> character(len=*), intent(in) :: command
> character(len=*), dimension(*), intent(in) :: argv
> integer, intent(in) :: maxprocs
> integer, intent(in) :: info
> integer, intent(in) :: root
> integer, intent(in) :: comm
> integer, intent(out) :: intercomm
> integer, dimension(*), intent(out) :: array_of_errcodes
> integer, intent(out) :: ierr
> end subroutine MPI_Comm_spawn
>
> My call is (mostly from the Using MPI-2 book):
> call MPI_Comm_spawn('subprocess', MPI_ARGV_NULL, universe_size-1,
> MPI_INFO_NULL, 0, &
> MPI_COMM_WORLD, slavecomm, MPI_ERRCODES_IGNORE, ierr )
>
> looking at "mpif.h" included by mpi_kinds.f90:
>
> double complex MPI_ARGV_NULL
> integer MPI_INFO_NULL
> integer MPI_COMM_WORLD
> double complex MPI_ERRCODES_IGNORE
>
> What I don't understand how the "double complex" MPI_ARGV_NULL could
> work with the "character(len=*), dimension(*), intent(in) :: argv"
> interface or how the "double complex" MPI_ERRCODES_IGNORE could work
> with the "integer, dimension(*), intent(out) :: array_of_errcodes"
> interface.
>
> I have the following for my variables:
>
> integer :: ierr,slavecomm
> integer (kind=MPI_ADDRESS_KIND) :: universe_size
>
> My usage of MPI_ADDRESS_KIND and MPI_Comm_spawn is based on pages
> 236 and 244 of "Using MPI-2"
>
> I'd to resolve the specific error involving the f90 interfaces so I
> can continue to "USE MPI" in order to check my interface errors
> quickly as I move forward on my project.
>
> Michael
>
>
> _______________________________________________
> users mailing list
> users_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/users

-- 
{+} Jeff Squyres
{+} The Open MPI Project
{+} http://www.open-mpi.org/