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 16:50:36


This was committed in r21272

Let me know if you have any problems with this commit.

Cheers,
Josh

On May 26, 2009, at 10:00 AM, Jeff Squyres wrote:

> Exxxcellent. :-)
>
> On May 26, 2009, at 9:57 AM, Josh Hursey wrote:
>
>> 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
>>
>> _______________________________________________
>> devel mailing list
>> devel_at_[hidden]
>> http://www.open-mpi.org/mailman/listinfo.cgi/devel
>>
>
>
> --
> Jeff Squyres
> Cisco Systems
>
> _______________________________________________
> devel mailing list
> devel_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/devel