1
1
Граф коммитов

28 Коммитов

Автор SHA1 Сообщение Дата
Terry Dontje
0178b6c45f Added padding to predefined handle structures to maintain library version to
version compatibility.

This commit was SVN r20627.
2009-02-24 17:17:33 +00:00
Jeff Squyres
4d8a187450 Two major things in this commit:
* New "op" MPI layer framework
 * Addition of the MPI_REDUCE_LOCAL proposed function (for MPI-2.2)

= Op framework =

Add new "op" framework in the ompi layer.  This framework replaces the
hard-coded MPI_Op back-end functions for (MPI_Op, MPI_Datatype) tuples
for pre-defined MPI_Ops, allowing components and modules to provide
the back-end functions.  The intent is that components can be written
to take advantage of hardware acceleration (GPU, FPGA, specialized CPU
instructions, etc.).  Similar to other frameworks, components are
intended to be able to discover at run-time if they can be used, and
if so, elect themselves to be selected (or disqualify themselves from
selection if they cannot run).  If specialized hardware is not
available, there is a default set of functions that will automatically
be used.

This framework is ''not'' used for user-defined MPI_Ops.

The new op framework is similar to the existing coll framework, in
that the final set of function pointers that are used on any given
intrinsic MPI_Op can be a mixed bag of function pointers, potentially
coming from multiple different op modules.  This allows for hardware
that only supports some of the operations, not all of them (e.g., a
GPU that only supports single-precision operations).

All the hard-coded back-end MPI_Op functions for (MPI_Op,
MPI_Datatype) tuples still exist, but unlike coll, they're in the
framework base (vs. being in a separate "basic" component) and are
automatically used if no component is found at runtime that provides a
module with the necessary function pointers.

There is an "example" op component that will hopefully be useful to
those writing meaningful op components.  It is currently
.ompi_ignore'd so that it doesn't impinge on other developers (it's
somewhat chatty in terms of opal_output() so that you can tell when
its functions have been invoked).  See the README file in the example
op component directory.  Developers of new op components are
encouraged to look at the following wiki pages:

  https://svn.open-mpi.org/trac/ompi/wiki/devel/Autogen
  https://svn.open-mpi.org/trac/ompi/wiki/devel/CreateComponent
  https://svn.open-mpi.org/trac/ompi/wiki/devel/CreateFramework

= MPI_REDUCE_LOCAL =

Part of the MPI-2.2 proposal listed here:

    https://svn.mpi-forum.org/trac/mpi-forum-web/ticket/24

is to add a new function named MPI_REDUCE_LOCAL.  It is very easy to
implement, so I added it (also because it makes testing the op
framework pretty easy -- you can do it in serial rather than via
parallel reductions).  There's even a man page!

This commit was SVN r20280.
2009-01-14 23:44:31 +00:00
Jeff Squyres
8de0663ae0 Increase the size of MPI_MAX_PORT_NAME from 256 to 1024.
Rationale:

 1. This value has already changed since v1.2 (v1.2 MPI_MAX_PORT_NAME
    == 36).  Hence, this commit simply increases the value from a
    previous change.
 1. The changes does increase OMPI's memory footprint slightly, but
    only when using MPI-2 dynamics.  So it is expected that the change
    will have minimal impact on the overall footprint.
 1. The change is helpful for nodes that have 4 or more IP networks
    (e.g., regular ethernet and multiple IP-over-<pick your favorite
    high-speed network> networks).  Without this change, invoking
    MPI_COMM_SPAWN on hosts with 4 or more IP networks will fail
    because we'll exceed 256 bytes for the port name.  Some OMPI
    developer test clusters already have this kind of configuration
    (e.g., Cisco); it is expected that this is not too common in the
    real world yet, but with "manycore" coming, having multiple
    IP-based networks in a single server will likely become more
    common.

This commit was SVN r19638.
2008-09-25 16:47:17 +00:00
Rolf vandeVaart
1ad9d0459e Add a check for LOCK_SHARED in the sys/synch.h file. If it exists then smash it to avoid problems with preprocessor and C++.
This fixes trac:1477.

Help provided by Jeff and Terry.

This commit was SVN r19533.

The following Trac tickets were found above:
  Ticket 1477 --> https://svn.open-mpi.org/trac/ompi/ticket/1477
2008-09-10 12:58:30 +00:00
Jeff Squyres
008fa8c5cc Fixes trac:1236, #1237.
* Various changes to enable 0-dimensional cartesian communicators:
   * Set various mtc_* members to NULL when there are 0 dimensions (and
     don't bother trying to memcpy these arrays when duplicating the
     communicator -- because they're NULL)
   * adjust topo_base_cart_sub to correctly handle 0 dimensions
     (simplified it a bit)
   * adjust a few error codes to return ERR_OUT_OF_RESOURCE
   * adjust error checking of CART_CREATE, CART_RANK
 * Allow MPI_GRAPH_CREATE to accept 0 == nnodes.
 * Bump reported MPI version in mpi.h to 2.1

This commit was SVN r19461.

The following Trac tickets were found above:
  Ticket 1236 --> https://svn.open-mpi.org/trac/ompi/ticket/1236
2008-08-31 19:31:10 +00:00
Ralph Castain
d70e2e8c2b Merge the ORTE devel branch into the main trunk. Details of what this means will be circulated separately.
Remains to be tested to ensure everything came over cleanly, so please continue to withhold commits a little longer

This commit was SVN r17632.
2008-02-28 01:57:57 +00:00
Jeff Squyres
7d03300a76 Based on a patch from Brian about how to remove "naked" AC defined
macros in mpi.h. (e.g., HAVE_LONG_LONG); instead, prefix _all_ macros
with "OMPI_".

This commit was SVN r17591.
2008-02-26 01:45:32 +00:00
George Bosilca
058e8d5f11 These have to be defined when we don't include ompi_config.h
This commit was SVN r17475.
2008-02-16 18:05:07 +00:00
George Bosilca
512b24affb Add support for all optional Fortran logical types (MPI_LOGICAL1,
MPI_LOGICAL2, MPI_LOGICAL4 and MPI_LOGICAL8). This commit close
the ticket #331.

This commit was SVN r17473.
2008-02-15 22:54:20 +00:00
Jeff Squyres
26d8fe70c3 Fixes trac:1029: add in support for MPI_CONVERSION_FN_NULL.
This commit brings over all the work from the /tmp-public/datarep
branch.  See commits r16855, r16859, r16860 for the highlights of what
was done.

This commit was SVN r16891.

The following SVN revisions from the original message are invalid or
inconsistent and therefore were not cross-referenced:
  r16855
  r16859
  r16860

The following Trac tickets were found above:
  Ticket 1029 --> https://svn.open-mpi.org/trac/ompi/ticket/1029
2007-12-07 13:09:07 +00:00
Shiqing Fan
b1ea3e0054 - add more lines for static import declaration on windows.
This commit was SVN r16101.
2007-09-12 15:32:54 +00:00
Brian Barrett
2b8af283de Add ability to completely turn off MPI one-sided support, so that users
can experiment with using ROMIO directly.

This commit was SVN r15922.
2007-08-18 21:35:51 +00:00
Rainer Keller
d3372729bb - Support for opt. MPI_REAL2 (who has that?)
to make checks for MPI-implementations fail in the right way ,-]
 - check in configure.ac
 - BINARY INCOMPATIBLE change to mpif-common.h
   (if implemented the *right* way)
   Actually OMPI_F90_CHECK takes two arguments, not three.
 - Only have corresponding C-Type, if the opt. Fortran
   type is really supported,
   Otherwise pass ompi_mpi_unavailable to DECLARE_MPI_SYNONYM_DDT;
 - Reviewed by George and Jeff

This commit was SVN r15133.
2007-06-19 05:03:11 +00:00
Brian Barrett
e1764bbdf9 The rest of r14853. I changed mpi.h instead of mpi.h.in and then it
obviously didn't get committed...

This commit was SVN r14866.

The following SVN revision numbers were found above:
  r14853 --> open-mpi/ompi@beb6dd1924
2007-06-05 13:44:03 +00:00
Sven Stork
32564d73da - the define is always defined independent, therefore we need to check if
it's 1 or not

This commit was SVN r14594.
2007-05-07 13:18:09 +00:00
Sven Stork
a04c8eb39a - Bring over the visibility feature, for a finer symbol export control
via the visibility feature that is provided by some compilers.

  Per default this feature is disabled, to enable it you need to
  configure with --enable-visibility and obviously you need a compiler
  with visibility support. Please refer to the wiki for more information.
  https://svn.open-mpi.org/trac/ompi/wiki/Visibility

This commit was SVN r14582.
2007-05-04 09:03:37 +00:00
Jeff Squyres
6ed6864fc4 Include the major, minor, release numbers in mpi.h.
This commit was SVN r13529.
2007-02-07 03:19:44 +00:00
Jeff Squyres
321af727c0 Add external support for MPI_2COMPLEX and MPI_2DOUBLE_COMPLEX. The
machinery was already there; we were just missing the INTEGER's for
them in mpi.f and the #define's for them in mpi.h.

This commit was SVN r13432.
2007-02-01 19:37:38 +00:00
Brian Barrett
2951586b43 Fix type casting issue with MPI_ERRCODES_IGNORE that would cause
errors when using a C++ compiler.  

This commit was SVN r12946.
2006-12-31 02:51:13 +00:00
Brian Barrett
4dad3ef3ef Follow on to r12146. For platforms that dont' have a ptrdiff_t definition,
provide one for the internals of Open MPI.  For mpi.h, typedef MPI_Aint
either to ptrdiff_t or whatever we used as ptrdiff_t if that type doesn't
actually exist.

This commit was SVN r12212.

The following SVN revision numbers were found above:
  r12146 --> open-mpi/ompi@8852c00c36
2006-10-20 03:24:59 +00:00
George Bosilca
8852c00c36 Look like a big commit but in fact it address only one issue. The way we're working with
size and diplacement of data-type. After this patch all data can contain size_t bytes
and the displacements are defined as ptrdiff_t. All of the files I was able to compile
have been modified to match this requirement.

This commit was SVN r12146.
2006-10-17 20:20:58 +00:00
Brian Barrett
e7a7a64e4c Implement MPI::SEEK_{SET, END, POS} for the C++ bindings, working around
some issues with the C #defines SEEK_{SET, END, POS}.  The workaround
involves some hackery that should work in almost every common use case
for the C stdio constants (and all the legal issues of the MPI constants).
The one issue is that the C stdio constants are now const ints instead
of #defines, which means that #ifdef checks will fail for the constants.

Behavior can be disabled at either configure time or build time.

Refs trac:387

This commit was SVN r12121.

The following Trac tickets were found above:
  Ticket 387 --> https://svn.open-mpi.org/trac/ompi/ticket/387
2006-10-15 23:50:24 +00:00
Brian Barrett
1daa21e1e3 It appears that most versions of the IBM XL compiler (including the latest
releases on Linux and OS X) don't handle const_cast<> of 2-dimensional 
arrays properly.  If we're using one of the compilers that isn't friendly
to such casts, fall back to a standard C-style cast.

refs: #271

This commit was SVN r11263.
2006-08-19 22:55:59 +00:00
George Bosilca
29fe545451 Remove all references to the ompi_mpi_long_long variable. The MPI_LONG_LONG is now
a synonym to MPI_LONG_LONG_INT.

This commit was SVN r9703.
2006-04-24 22:15:42 +00:00
George Bosilca
7055e9765e Add the OMPI_SKIP_MPICXX to allow the user to avoid the inclusion of the
CXX bindings if a C code is compiled with a CXX compiler.

This commit was SVN r9567.
2006-04-07 04:57:53 +00:00
Brian Barrett
d721d24a5d * Make MPI_WIN_NULL a full object rather than a NULL pointer, fixing the problems
with MPI_WIN_NULL and the Fortran bindings.

  It appears I had already done this, since all the infrastructure was already
  in place.  I probably edited mpi.h instead of mpi.h.in.  Sigh.

This commit was SVN r9228.
2006-03-09 16:22:15 +00:00
Brian Barrett
352903290b * add some structured comments so that we can easily parse out the configurable
parts of mpi.h when making a fat binary

This commit was SVN r9025.
2006-02-14 04:44:00 +00:00
Brian Barrett
566a050c23 Next step in the project split, mainly source code re-arranging
- move files out of toplevel include/ and etc/, moving it into the
    sub-projects
  - rather than including config headers with <project>/include, 
    have them as <project>
  - require all headers to be included with a project prefix, with
    the exception of the config headers ({opal,orte,ompi}_config.h
    mpi.h, and mpif.h)

This commit was SVN r8985.
2006-02-12 01:33:29 +00:00