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: Josh Hursey (jjhursey_at_[hidden])
Date: 2009-05-26 09:57:02


As a heads up, this RFC expires today. We discussed it last week
during the teleconf and there were no objections.

I updated the HG branch to the current trunk, and, if there are not
objections, I will commit it to the trunk this afternoon [target 1.5].

Cheers,
Josh

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