Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

Subject: Re: [OMPI devel] RFC: MPI Interface Extensions Infrastructure
From: Jeff Squyres (jsquyres_at_[hidden])
Date: 2009-05-12 08:10:05


I'm [obviously] in favor of this RFC. :-)

On May 11, 2009, at 2:37 PM, Josh Hursey wrote:

>
> What: Infrastructure for MPI Interface Extensions
>
> Why: Allow for experimentation with new interfaces without changing
> mpi.h
>
> Where: Temporary Mercurial branch (link below)
> http://cgi.cs.indiana.edu/~jjhursey/public-tmp/hg/hgwebdir.cgi/mpi-ext/
>
> When: Apply on trunk before branching for v1.5
>
> Timeout: 2 weeks - May 26, 2009 after the teleconf.
>
> ---------------------------------------------------------------------
> Description:
>
> At times developers want to expose non-standard, optional interfaces
> to users. These interfaces may represent MPI interfaces to be
> presented to the MPI Forum for standardization. In order to add such
> an interface to Open MPI you must add it directly to the ompi/mpi/
> directory and mpi.h. The combination of standard and non-standard
> interfaces inside mpi.h becomes troublesome to many developers and
> users.
>
> This branch allows developers to create a directory under ompi/mpiext/
> for their extension (see ompi/mpiext/example in the HG branch for an
> example). By default, all extensions are disabled. They can be enabled
> through a configure option '--enable-ext='. This option takes a list
> of extensions that should be built as part of Open MPI. The user can
> include all of the extensions by referencing the appropriate header
> file (e.g., #include <mpi-ext.h> ), and compiling with the normal
> wrapper compilers (e.g., mpicc).
>
> This infrastructure was designed and discussed on July 2, 2008 at an
> Open MPI developers meeting directly following an MPI Forum meeting. I
> have been developing this branch over the past few months under the
> advisement of Jeff and Brian. The C interface is functional and
> stable. The C++, F77, and F90 interfaces have not been completed.
> There are comments in the appropriate build system files (particularly
> config/ompi_ext.m4) that indicate where a developer would need to
> focus to finish support for these language bindings if needed. I have
> not completed them since I do not feel comfortable enough at this time
> with these languages to provide such functionality.
>
> I would like to bring this into the trunk before v1.5 branch. Having
> the infrastructure in the trunk will make it easier to maintain off-
> trunk experimental interface development.
>
> As part of this RFC, I will also update the 'MPI Extensions' wiki page
> to describe how a developer can get started using this infrastructure:
> https://svn.open-mpi.org/trac/ompi/wiki/MPIExtensions
>
> ---------------------------------------------------------------------
> How to use the branch:
>
> Configure with this additional option:
> --enable-ext=example
>
> Compile the following sample MPI program with 'mpicc' per usual.
> /*---------------------------------*/
> #include <stdio.h>
> #include <mpi.h>
> #include <mpi-ext.h>
>
> int main(int argc, char *argv[])
> {
> int rank, size;
>
> MPI_Init(&argc, &argv);
>
> MPI_Comm_rank(MPI_COMM_WORLD, &rank);
> MPI_Comm_size(MPI_COMM_WORLD, &size);
>
> OMPI_Progress("Go OMPI! Go!");
>
> MPI_Finalize();
>
> return 0;
> }
> /*---------------------------------*/
>
> _______________________________________________
> devel mailing list
> devel_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/devel

-- 
Jeff Squyres
Cisco Systems