Open MPI logo

Open MPI User's Mailing List Archives

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

From: Jeff Squyres \(jsquyres\) (jsquyres_at_[hidden])
Date: 2006-04-25 13:16:38

> -----Original Message-----
> From: users-bounces_at_[hidden]
> [mailto:users-bounces_at_[hidden]] On Behalf Of Michael Kluskens
> Sent: Tuesday, April 25, 2006 11:15 AM
> To: Open MPI Users
> Subject: Re: [OMPI users] f90 module files compile a lot faster
> Could I/we have a translation of what "trivial, small,
> medium, large"
> means to the end user?

How's this (from the new README):

- The Fortran 90 MPI bindings can now be built in one of four sizes.
  These sizes reflect the number of MPI functions included in the
  "mpi" Fortran 90 module and therefore which functions will be
  subject to strict type checking. All functions not included in the
  Fortran 90 module can still be invoked from F90 applications, but
  will fall back to Fortran-77 style checking (i.e., little/none).

  - trivial: Only includes F90-specific functions from MPI-2. This
    means overloaded versions of MPI_SIZEOF for all the MPI-supported
    F90 intrinsic types.

  - small (default): All the functions in "trivial" plus all MPI
    functions that take no choice buffers (meaning buffers that are
    specified by the user and are of type (void*) in the C bindings --
    generally buffers specified for message passing). Hence,
    functions like MPI_COMM_RANK are included, but functions like
    MPI_SEND are not.

  - medium: All the functions in "small" plus all MPI functions that
    take one choice buffer (e.g., MPI_SEND, MPI_RECV, ...). All
    one-choice-buffer functions have overloaded variants for each of
    the MPI-supported Fortran intrinsic types up to the number of
    dimensions specified by --with-f90-max-array-dim (default value is

  - large: All MPI functions (i.e., all the functions in "medium" plus
    all MPI functions that take two choice buffers, such as
    MPI_SCATTER, MPI_GATHER, etc.). All the two-choice-buffer
    functions will have variants for each of the MPI-supported Fortran
    intrinsic types up to the number of dimensions specified by
    --with-f90-max-array-dim, but both buffers will be of the same

  Increasing the size of the F90 module (in order from trivial, small,
  medium, and large) will generally increase the length of time
  required to compile user MPI applications. Specifically, "trivial"-
  and "small"-sized F90 modules generally allow user MPI applications
  to be compiled fairly quickly but lose type safety for all MPI
  functions with choice buffers. "medium"- and "large"-sized F90
  modules generally take longer to compile user applications but
  provide greater type safety for MPI functions.

> I for one don't read the docs every week with new 1.1 alpha tests.

Er... Well, good! Then I can claim that the docs were there the whole
time. ;-)

Jeff Squyres
Server Virtualization Business Unit
Cisco Systems