Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |  

This web mail archive is frozen.

This page is part of a frozen web archive of this mailing list.

You can still navigate around this archive, but know that no new mails have been added to it since July of 2016.

Click here to be taken to the new web archives of this list; it includes all the mails that are in this frozen archive plus all new mails that have been sent to the list since it was migrated to the new archives.

Subject: Re: [OMPI devel] RFC: MPI Interface Extensions Infrastructure
From: Terry Dontje (Terry.Dontje_at_[hidden])
Date: 2009-05-12 08:49:55


I like this, however wouldn't it possibly be nice to have a the
mpi-ext.h pulled in by mpi.h when the -enable-ext configure option is
used? That way one would be able to compile and run current tests for
regressions without having to change the code.

--td

Jeff Squyres wrote:
> 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
>
>