Open MPI logo

Open MPI User's Mailing List Archives

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

Subject: Re: [OMPI users] Trouble with MPI-IO
From: Tom Rosmond (rosmond_at_[hidden])
Date: 2011-05-19 23:24:25

Thanks for looking at my problem. Sounds like you did reproduce my
problem. I have added some comments below

On Thu, 2011-05-19 at 22:30 -0400, Jeff Squyres wrote:
> Props for that testio script. I think you win the award for "most easy to reproduce test case." :-)
> I notice that some of the lines went over 72 columns, so I renamed the file x.f90 and changed all the comments from "c" to "!" and joined the two &-split lines. The error about implicit type for lenr went away, but then when I enabled better type checking by using "use mpi" instead of "include 'mpif.h'", I got the following:

What fortran compiler did you use?

In the original script my Intel compile used the -132 option,
allowing up to that many columns per line. I still think in
F77 fortran much of the time, and use 'c' for comments out
of habit. The change to '!' doesn't make any difference.

> x.f90:99.77:
> call mpi_type_indexed(lenij,ijlena,ijdisp,mpi_real,ij_vector_type,ierr)
> 1
> Error: There is no specific subroutine for the generic 'mpi_type_indexed' at (1)

Hmmm, very strange, since I am looking right at the MPI standard
documents with that routine documented. I too get this compile failure
when I switch to 'use mpi'. Could that be a problem with the Open MPI
fortran libraries???
> I looked at our mpi F90 module and see the following:
> interface MPI_Type_indexed
> subroutine MPI_Type_indexed(count, array_of_blocklengths, array_of_displacements, oldtype, newtype, ierr)
> integer, intent(in) :: count
> integer, dimension(*), intent(in) :: array_of_blocklengths
> integer, dimension(*), intent(in) :: array_of_displacements
> integer, intent(in) :: oldtype
> integer, intent(out) :: newtype
> integer, intent(out) :: ierr
> end subroutine MPI_Type_indexed
> end interface
> I don't quite grok the syntax of the "allocatable" type ijdisp, so that might be the problem here...?

Just a standard F90 'allocatable' statement. I've written thousands
just like it.
> Regardless, I'm not entirely sure if the problem is the >72 character lines, but then when that is gone, I'm not sure how the allocatable stuff fits in... (I'm not enough of a Fortran programmer to know)
Anyone else out that who can comment????

T. Rosmond

> On May 10, 2011, at 7:14 PM, Tom Rosmond wrote:
> > I would appreciate someone with experience with MPI-IO look at the
> > simple fortran program gzipped and attached to this note. It is
> > imbedded in a script so that all that is necessary to run it is do:
> > 'testio' from the command line. The program generates a small 2-D input
> > array, sets up an MPI-IO environment, and write a 2-D output array
> > twice, with the only difference being the displacement arrays used to
> > construct the indexed datatype. For the first write, simple
> > monotonically increasing displacements are used, for the second the
> > displacements are 'shuffled' in one dimension. They are printed during
> > the run.
> >
> > For the first case the file is written properly, but for the second the
> > program hangs on MPI_FILE_WRITE_AT_ALL and must be aborted manually.
> > Although the program is compiled as an mpi program, I am running on a
> > single processor, which makes the problem more puzzling.
> >
> > The program should be relatively self-explanatory, but if more
> > information is needed, please ask. I am on an 8 core Xeon based Dell
> > workstation running Scientific Linux 5.5, Intel fortran 12.0.3, and
> > OpenMPI 1.5.3. I have also attached output from 'ompi_info'.
> >
> > T. Rosmond
> >
> >
> > <testio.gz><info_ompi.gz>_______________________________________________
> > users mailing list
> > users_at_[hidden]
> >