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

281 Коммитов

Автор SHA1 Сообщение Дата
Ralph Castain
869041f770 Purge whitespace from the repo 2015-06-23 20:59:57 -07:00
Jeff Squyres
fbaf6888f8 ompi/include/Makefile.am: rm mpi_portable_platform.h first
We've seen this a few times (e.g.,
http://www.open-mpi.org/community/lists/users/2015/06/27057.php
reported via @siegmargross).  I'm not entirely sure why it happens --
the best I can come up with is a poorly-synchronized network
filesystem and/or a bug in "make".  For example: this code hasn't
changed in forever, and it only happens to users *sometimes*.

Regardless, avoid the error altogether by removing the file before
making the sym link (it should be a sym link anyway -- if there's
something there, it should be safe to remove it before we re-create
the sym link that should be there in the first place).

(cherry picked from commit 0edd265ea045e649c9489e3cb8fdb657800d95c3)
2015-06-09 17:59:32 -07:00
Nathan Hjelm
062de45899 Add support for MPI-3.1 MPI_Aint functions
This commit adds support for MPI_Aint_add and MPI_Aint_diff. These
functions are implemented as macros in C (explicitly allowed by
MPI-3.1). The fortran implementations are a similar mess to the
MPI_Wtime implementations.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2015-06-09 09:31:33 -06:00
Nathan Hjelm
163a1b4505 Remove non-standard MPI_ERR_SYSRESOURCE error code
Replaced internal usage with OMPI_ERR_OUT_OF_RESOURCE.

Signed-off-by: Nathan Hjelm <hjelmn@me.com>
2015-05-22 19:59:37 -06:00
Gilles Gouaillardet
dd572a0838 Fix --with-fortran=... logic 2015-05-08 09:23:55 +09:00
Nathan Hjelm
7d84991781 Give some headroom for adding new MPI error codes without breaking ABI 2015-03-04 10:46:41 -07:00
Nathan Hjelm
1537a50987 Add new error code introduced in MPI-3.1. 2015-03-03 17:49:42 -07:00
Jeff Squyres
336626dafe spelling: trivial spelling fix
s/interupted/interrupted/gi
2015-02-27 18:30:43 -08:00
Gilles Gouaillardet
661c35ca67 cleanup dead code caused by the removal of the --with-threads configure option 2015-01-16 19:13:59 +09:00
Nathan Hjelm
3d79806805 add more internal RMA error codes 2015-01-06 13:39:04 -07:00
Jeff Squyres
cab1379dfb Fortran: only emit real16 and complex32 if supported
This is the master version of @ggouaillardet's patch from
open-mpi/ompi-release#148 (there was a minor conflict to fix and
several fuzzings of line numbers).
2015-01-06 09:47:26 -08:00
Gilles Gouaillardet
e8d084e6b9 fix ABI fix
Fix an undeleted line in open-mpi/ompi@24df0ed039
Thanks to Nick Papior Andersen for pointing this.
2014-12-28 18:07:51 +09:00
Gilles Gouaillardet
24df0ed039 MPI_Comm_split_type: fix ABI compatibility
ABI compatibility was previously broken in
open-mpi/ompi@3deda3dc82
2014-12-25 19:43:58 +09:00
Nick Papior Andersen
3deda3dc82 Added several new COMM_TYPE_<> splits
Using the underlying hardware identification to split
communicators based on locality has been enabled using
the MPI_Comm_Split_Type function.

Currently implemented split's are:
  HWTHREAD
  CORE
  L1CACHE
  L2CACHE
  L3CACHE
  SOCKET
  NUMA
  NODE
  BOARD
  HOST
  CU
  CLUSTER

However only NODE is defined in the standard which is why the
remaning splits are referred to using the OMPI_ prefix instead
of the standard MPI_ prefix.

I have tested this using --without-hwloc and --with-hwloc=<path>
which both give the same output.

NOTE: I think something fishy is going on in the locality operators.
In my test-program I couldn't get the correct split on these requests:
  NUMA, SOCKET, L3CACHE
where I suspected a full communicator but only got one.
2014-12-24 11:21:35 +00:00
Nathan Hjelm
1b564f62bd Revert "Merge pull request #275 from hjelmn/btlmod"
This reverts commit ccaecf0fd6, reversing
changes made to 6a19bf85dd.
2014-11-19 23:22:43 -07:00
Nathan Hjelm
60648e4231 add more internal RMA error codes 2014-11-19 11:33:04 -07:00
Ralph Castain
2ec59acac4 Silence a slew of warnings when --enable-memchecker is given. Reviewed by Jeff 2014-10-22 13:59:08 -07:00
Ralph Castain
9c20940190 Remove mpif-sizeof.h during distclean
This commit was SVN r32771.
2014-09-21 14:26:19 +00:00
Jeff Squyres
d7eaca83fa Fortran: Fix MPI_SIZEOF. What a disaster. :-(
What started as a simple ticket ended up reaching the way up to the
MPI Forum.
    
It turns out that we are supposed to have MPI_SIZEOF for all Fortran
interfaces: mpif.h, the mpi module, and the mpi_f08 module.
    
It further turns out that to properly support MPI_SIZEOF, your Fortran
compiler *has* support the INTERFACE keyword and ISO_FORTRAN_ENV.  We
can't use "ignore TKR" functionality, because the whole point of
MPI_SIZEOF is that the implementation knows what type was passed to it
("ignore TKR" functionality, by definition, throws that information
away).  Hence, we have to have an MPI_SIZEOF interface+implementation
for all intrinsic types, kinds, and ranks.

This commit therefore adds a perl script that generates both the
interfaces and implementations for MPI_SIZEOF in each of mpif.h, the
mpi module, and mpi_f08 module (yay consolidation!).

The perl script uses the results of some new configure tests:

* check if the Fortran compiler supports the INTERFACE keyword
* check if the Fortran compiler supports ISO_FORTRAN_ENV
* find the max array rank (i.e., dimension) that the compiler supports

If the Fortran compiler supports both INTERFACE and ISO_FORTRAN_ENV,
then we'll build the MPI_SIZEOF interfaces.  If not, we'll skip
MPI_SIZEOF in mpif.h and the mpi module.  Note that we won't build the
mpi_f08 module -- to include the MPI_SIZEOF interfaces -- if the
Fortran compiler doesn't support INTERFACE, ISO_FORTRAN_ENV, and a
whole bunch of ther modern Fortran stuff.

Since MPI_SIZEOF interfaces are now generated by the perl script, this
commit also removes all the old MPI_SIZEOF implementations (which were
laden with a zillion #if blocks).

cmr=v1.8.3

This commit was SVN r32764.
2014-09-19 13:44:52 +00:00
Jeff Squyres
ca0ccc5321 headers: remove trailing commas in enum lists
Per http://www.open-mpi.org/community/lists/devel/2014/08/15576.php,
trailing commas are not valid in enum lists in C++ until C++11.

cmr=v1.8.2:reviewer=rhc

This commit was SVN r32482.
2014-08-09 12:04:17 +00:00
Ralph Castain
552c9ca5a0 George did the work and deserves all the credit for it. Ralph did the merge, and deserves whatever blame results from errors in it :-)
WHAT:    Open our low-level communication infrastructure by moving all necessary components (btl/rcache/allocator/mpool) down in OPAL

All the components required for inter-process communications are currently deeply integrated in the OMPI layer. Several groups/institutions have express interest in having a more generic communication infrastructure, without all the OMPI layer dependencies.  This communication layer should be made available at a different software level, available to all layers in the Open MPI software stack. As an example, our ORTE layer could replace the current OOB and instead use the BTL directly, gaining access to more reactive network interfaces than TCP.  Similarly, external software libraries could take advantage of our highly optimized AM (active message) communication layer for their own purpose.  UTK with support from Sandia, developped a version of Open MPI where the entire communication infrastucture has been moved down to OPAL (btl/rcache/allocator/mpool). Most of the moved components have been updated to match the new schema, with few exceptions (mainly BTLs where I have no way of compiling/testing them). Thus, the completion of this RFC is tied to being able to completing this move for all BTLs. For this we need help from the rest of the Open MPI community, especially those supporting some of the BTLs.  A non-exhaustive list of BTLs that qualify here is: mx, portals4, scif, udapl, ugni, usnic.

This commit was SVN r32317.
2014-07-26 00:47:28 +00:00
Gilles Gouaillardet
fd7bfc2221 mpi: remove automatically generated file from the tarball
cmr=v1.8.2:reviewer=jsquyres

This commit was SVN r32244.
2014-07-15 07:52:13 +00:00
George Bosilca
750c6c7861 Update the UTK copyright on the topology related files.
This commit was SVN r31805.
2014-05-16 22:23:52 +00:00
Jeff Squyres
d46db26721 ompi_config.h: no need to AC_CONFIG_HEADER this file
Nothing is generated in this file; this commit essentially just
renames ompi_config.h.in -> ompi_config.h.

cmr=v1.8.1:reviewer=dgoodell

This commit was SVN r31395.
2014-04-15 15:38:49 +00:00
Jeff Squyres
0ceebe16f2 mpi.h.in: We're long past the v1.5 series; this comment can go away
This commit was SVN r31369.
2014-04-11 15:17:48 +00:00
Jeff Squyres
619dd71a92 mpi.h.in: fix comment to match code
Thanks to Lisandro Dalcin for noticing.

This commit was SVN r31366.
2014-04-10 17:29:14 +00:00
Jeff Squyres
173c046617 build: add Automake-like silent/verbose macros for "ln -s ..." operations
Also, since I put some of the macros for these silent/verbose rules up
in the top-level Makefile.man-page-rules file, I renamed it to
Makefile.ompi-rules.

I've had this sitting around for a while; now seems like as good a
time as any to commit it.

This commit was SVN r31271.
2014-03-28 18:24:32 +00:00
Nathan Hjelm
595a6e94e6 Fix typos in r31260
Also added some missing values and sentinels.

cmr=v1.8:ticket=trac:4470

This commit was SVN r31263.

The following SVN revision numbers were found above:
  r31260 --> open-mpi/ompi@69036437b7

The following Trac tickets were found above:
  Ticket 4470 --> https://svn.open-mpi.org/trac/ompi/ticket/4470
2014-03-27 22:34:28 +00:00
Jeff Squyres
24f7bd327e MPI-3: Add missing MPI_Comm_get|set_info functions
Thanks to Lisandro Dalcin for pointing out the issue.

cmr=v1.8:reviewer=hjelmn

This commit was SVN r31262.
2014-03-27 21:41:59 +00:00
Nathan Hjelm
93238b2c58 Fix typo in r31260
cmr=v1.8:ticket=trac:4470

This commit was SVN r31261.

The following SVN revision numbers were found above:
  r31260 --> open-mpi/ompi@69036437b7

The following Trac tickets were found above:
  Ticket 4470 --> https://svn.open-mpi.org/trac/ompi/ticket/4470
2014-03-27 21:04:56 +00:00
Nathan Hjelm
69036437b7 Add missing MPI_WEIGHTS_EMPTY constant
cmr=v1.8:reviewer=jsquyres

This commit was SVN r31260.
2014-03-27 20:59:52 +00:00
Nathan Hjelm
545d5daced osc: add missing MPI_ERR_RMA_SHARED error code and internal equivalent
cmr=v1.8:reviewer=jsquyres

This commit was SVN r31259.
2014-03-27 20:06:43 +00:00
Jeff Squyres
3120ec2b96 Also bump the Fortran MPI version constants to 3.0
cmr=v1.7.5:ticket=trac:4371

This commit was SVN r31038.

The following Trac tickets were found above:
  Ticket 4371 --> https://svn.open-mpi.org/trac/ompi/ticket/4371
2014-03-12 16:06:15 +00:00
Nathan Hjelm
c173344141 Add new MPI-3.1 tools interface functions.
See https://svn.mpi-forum.org/trac/mpi-forum-web/ticket/377

This ticket adds the following functions to the standard:

 - MPI_T_cvar_get_index, MPI_T_pvar_get_index, and MPI_T_category_get_index

The ticket has passed and the functions are part of MPI-3.1 that will
be released sometime later this year. In Open MPI the functions expose
existing internal functionality so they are low-risk to add to 1.8.0. I
will leave it up to Ralph whether he wants to accept these into 1.8.

cmr=v1.8:reviewer=rhc

This commit was SVN r31037.
2014-03-12 16:03:39 +00:00
Ralph Castain
647fdaaa22 Fix an MPI-3 compliance buglet - MPI_Info_set should now use "const" qualifiers on the key and value parameters
cmr=v1.7.5:reviewer=jsquyres

This commit was SVN r31013.
2014-03-11 23:50:09 +00:00
Nathan Hjelm
d5d2d5c4d8 Add an internal ompi error code for RMA sync errors.
Dave Goodell correctly pointed out that it is unusual to return MPI
error classes from internal ompi functions. Correct this in the RMA
case by adding an internal error code to match MPI_ERR_RMA_SYNC.

This does change OMPI_ERR_MAX. I don't think this will cause any
problems with ABI.

cmr=v1.7.5:reviewer=jsquyres

This commit was SVN r31012.
2014-03-11 23:45:23 +00:00
Nathan Hjelm
5be13abcc0 Open MPI is MPI-3 conformant as of 1.7.5. Update mpi.h to reflect this.
cmr=v1.7.5:reviewer=rhc

This commit was SVN r31009.
2014-03-11 23:01:58 +00:00
Ralph Castain
49d938de29 Merge one-sided updates to the trunk - written by Brian Barrett and Nathan Hjelmn
cmr=v1.7.5:reviewer=hjelmn:subject=Update one-sided to MPI-3

This commit was SVN r30816.
2014-02-25 17:36:43 +00:00
Jeff Squyres
bda840df49 Fixes trac:4205: ensure sizeof(MPI_Count) <= sizeof(size_t)
- Move the ptrdiff_t tests up higher in configure.ac to be with the
  rest of the type tests.
- Create new OMPI_FIND_MPI_AINT_COUNT_OFFSET for finding the
  corresponding types of MPI_Aint, MPI_Count, and MPI_Offset.
  Consolidate all the old C and Fortran tests into this new macro (and
  .m4 file).
- Fix Fortran MPI_*_KIND tests that incorrectly keyed off assumed
  types (e.g., int64_t) rather than whatever the corresponding C
  MPI_Aint, MPI_Count, MPI_Offset types turned out to be.
- Add new logic to ensure that sizeof(MPI_Count) <= sizeof(size_t),
  because our entire PML, BTL, and convertor infrastructure requires
  this.  As a side effect, just like MPI_Offset the same type of
  MPI_Count (because MPI_Count has to be able to hold an MPI_Offset,
  so we can't let MPI_Offset be larger than a MPI_Count).

This commit was SVN r30776.

The following Trac tickets were found above:
  Ticket 4205 --> https://svn.open-mpi.org/trac/ompi/ticket/4205
2014-02-19 23:04:34 +00:00
Jeff Squyres
caaab7e8a3 Fix Fortran delcarations of MPI_SUBARRAYS_SUPPORTED and MPI_ASYNC_PROTECTES_NONBLOCKING
Ensure that these two flags are in all of mpif.h, the mpi module, and
the mpi_f08 module.  Thanks to Rolf Rabenseifner for pointing out the
issue.

cmr=v1.7.4:reviewer=ompi-rm1.7

This commit was SVN r30519.
2014-01-31 15:22:12 +00:00
Brian Barrett
8b778903d8 Fix longstanding issue with our multi-project support. Rather than using
pkg{data,lib,includedir}, use our own ompi{data,lib,includedir}, which is
always set to {datadir,libdir,includedir}/openmpi.  This will keep us from
having help files in prefix/share/open-rte when building without Open MPI,
but in prefix/share/openmpi when building with Open MPI.

This commit was SVN r30140.
2014-01-07 22:11:15 +00:00
Brian Barrett
121ca26c59 Per discussion at Develoepr's Meeting, remove Solaris threads support. Solaris
will just fall back to pthreads, which should be no problem.

This commit was SVN r29893.
2013-12-13 20:07:11 +00:00
Brian Barrett
6d7a1fbb82 Move opal_portable_platform.h to opal/include/opal, which is where it really
should have been all along and fix one place that uses the file

Update opal_portable_platform.h with changes to mpi_portable_platform.h made 
in r29608.

Make mpi_portable_platform.h a symlink to opal_portable_platform.h, so that
they won't get out of sync.  I'd like to remove mpi_portable_platform.h, but
we don't automatically add -I${includedir}/openmpi/ to make that sane from
a header include point of view, so that's future work.

This commit was SVN r29618.

The following SVN revision numbers were found above:
  r29608 --> open-mpi/ompi@b71bd51cdd
2013-11-06 17:12:26 +00:00
Brian Barrett
9780043456 re-apply r29608 and fix the broken configure test that broke worse with the
patch.  See ticket #3885, comment 10 for an explination of why calling
_STRINGIFY on something that's not a numerical constant is always a bad idea.

This commit was SVN r29613.

The following SVN revision numbers were found above:
  r29608 --> open-mpi/ompi@b71bd51cdd
2013-11-05 22:41:10 +00:00
Jeff Squyres
36e9987ce6 Reverting r29608 (C++11 fix); it's causing some problems.
This commit was SVN r29611.

The following SVN revision numbers were found above:
  r29608 --> open-mpi/ompi@b71bd51cdd
2013-11-05 22:13:11 +00:00
Jeff Squyres
b71bd51cdd Fix C++11 issue identified by Jeremiah Willcock
(http://www.open-mpi.org/community/lists/users/2013/11/22912.php).

cmr=v1.7.4:reviewer=brbarret

This commit was SVN r29608.
2013-11-05 19:48:03 +00:00
Nathan Hjelm
195c892a9d Add support for MPI_Comm_dup_with_info, MPI_Comm_create_group, and
MPI_Comm_idup.

As part of this work I implemented a basic request scheduler in
ompi/comm/comm_request.c. This scheduler might be useful for more
than just communicator requests and could be moved to ompi/request
if there is a demand. Otherwise I will leave it where it is.

Added a non-blocking version of ompi_comm_set to support ompi_comm_idup.
The call makes a recursive call to comm_dup and a non-blocking version
was needed. To simplify the code the blocking version calls the nonblocking
version and waits on the resulting request if one exists.

cmr=v1.7.4:reviewer=jsquyres:ticket=trac:3796

This commit was SVN r29334.

The following Trac tickets were found above:
  Ticket 3796 --> https://svn.open-mpi.org/trac/ompi/ticket/3796
2013-10-02 14:26:40 +00:00
Jeff Squyres
114022146a Add a missing "const" to MPI_Unpack (addendum to r29266).
Refs trac:3785.

This commit was SVN r29278.

The following SVN revision numbers were found above:
  r29266 --> open-mpi/ompi@0b8fc13299

The following Trac tickets were found above:
  Ticket 3785 --> https://svn.open-mpi.org/trac/ompi/ticket/3785
2013-09-27 12:48:28 +00:00
Nathan Hjelm
0b8fc13299 MPI-3.0: update C bindings with const and consistent use of [] for
arrays.

The MPI 3.0 standard added const to all in buffers in the C bindings. This
commit adds the const keyword and in most cases casts const away. We will
eventually should go through and update the various interfaces (coll, pml,
io, etc) to take the const keyword. The group, comm, win, and datatype
interfaces have been updated with const.

cmr=v1.7.4:ticket=trac:3785:reviewer=jsquyres

This commit was SVN r29266.

The following Trac tickets were found above:
  Ticket 3785 --> https://svn.open-mpi.org/trac/ompi/ticket/3785
2013-09-26 21:56:20 +00:00
Nathan Hjelm
c5596548b2 MPI-3: Add support for neighborhood collectives
Blocking versions are simple linear algorithms implemented in coll/basic. Non-
blocking versions are from libnbc 1.1.1. All algorithms have been tested with
simple test cases.

cmr=v1.7.4:reviewer=jsquyres

This commit was SVN r29265.
2013-09-26 21:55:08 +00:00
Nathan Hjelm
7929fb9dea Cleanup complex datatypes and update datatypes and operator code to use C99.
This commit changes the underlying opal complex datatypes to match the
C99 types: float _Complex, double _Complex, and long double _Complex. The
fortran and C++ types now are aliases to these basic types instead of
structure types. The operators in ompi/mca/op/base now work on only the
C99 types and the fortran types use these operators if the fortran type
matches a C complex type (this should almost always be the case.)

C99 is not is use in both the datatype and operator code and should make
the code both cleaner and much less fragile.

This commit was SVN r29193.
2013-09-17 17:49:42 +00:00
Jeff Squyres
c7ff45d046 This define is not needed in mpi.h (it's private to the
implementation, and is already included in opal_config.h)

This commit was SVN r28964.
2013-07-30 21:33:19 +00:00
Nathan Hjelm
9c519c5ce8 Bump MPI version to 2.2 now that in place alltoall and reductions on MPI_C_*COMPLEX and MPI_CXX_*COMPLEX are supported
This commit was SVN r28958.
2013-07-26 15:51:38 +00:00
Nathan Hjelm
c6e586a81d MPI-3: fortran support for large counts using derived datatypes
Jeff:
 - Make sure not to go over 72 characters.  Love Fortran!
 - Ensure to include 'mpif-config.h' in Type_size_x.

This commit was SVN r28933.
2013-07-23 15:36:03 +00:00
Nathan Hjelm
c4c69b4ddf MPI-3: add support for large counts using derived datatypes
Add support for MPI_Count type and MPI_COUNT datatype and add the required
MPI-3 functions MPI_Get_elements_x, MPI_Status_set_elements_x,
MPI_Type_get_extent_x, MPI_Type_get_true_extent_x, and MPI_Type_size_x.
This commit adds only the C bindings. Fortran bindins will be added in
another commit. For now the MPI_Count type is define to have the same size
as MPI_Offset. The type is required to be at least as large as MPI_Offset
and MPI_Aint. The type was initially intended to be a ssize_t (if it was
the same size as a long long) but there were issues compiling romio with
that definition (despite the inclusion of stddef.h).

I updated the datatype engine to use size_t instead of uint32_t to support
large datatypes. This will require some review to make sure that 1) the
changes are beneficial, 2) nothing was broken by the change (I doubt
anything was), and 3) there are no performance regressions due to this
change.

Increase the maximum number of predifined datatypes to support MPI_Count

Put common get_elements code to ompi/datatype/ompi_datatype_get_elements.c

Update MPI_Get_count to reflect changes in MPI-3 (return MPI_UNDEFINED when the count is too large for an int)

This commit was SVN r28932.
2013-07-23 15:35:14 +00:00
Nathan Hjelm
1349b825c2 MPI-2.2: Add C++ datatypes to mpi.h and fix support for MPI_C_*COMPLEX
This commit was SVN r28919.
2013-07-22 23:45:45 +00:00
Nathan Hjelm
e6e9f2c6fd Add profiling function definitions for MPI_T and add a missing type into mpi.h
This commit was SVN r28803.
2013-07-16 16:03:33 +00:00
Nathan Hjelm
d446675526 MCA: Per-RFC, add support for performance variables
This commit adds an API for registering and querying performance
variables (mca_base_pvar) in the MCA base. The existing MCA variable
system API has been updated to reflect the new API: MCA variable
groups have performance variables, and new types have been added (double,
unsigned long long) to reflect what is required by the MPI_T
interface. Additionally, the MCA variable group code has been split
into its own set of files: mca_base_var_group.[ch].

Details of the new API can be found in doxygen comments in the header:
mca_base_pvar.h.

Other changes to the variable system:

 - Use an opal_hash_table to speed up variable/group lookup.

 - Clean up code associated with MCA variable types.

 - Registered performance variables are printed by ompi_info -a. In the
   future an option should be added to control this behavior.

Changes to OMPI:

 - Added full support for the MPI_T performance variable interface.

This commit was SVN r28800.
2013-07-16 16:02:13 +00:00
George Bosilca
5fae72b9aa Add the MPI 2.2 MPI_Dist_graph functionality.
This patch reshape the way we deal with topologies completely. Where
our topologies were mainly storage components (they were not capable
of creating the new communicator), the new version is built around a
[possibly] common representation (in mca/topo/topo.h), but the functions
to attach and retrieve the topological information are specific to each
component. As a result the ompi_create_cart and ompi_create_graph functions
become useless and have been removed.

In addition to adding the internal infrastructure to manage the topology
information, it updates the MPI interface, and the debuggers support and
provides all Fortran interfaces.

This commit was SVN r28687.
2013-07-01 12:40:08 +00:00
Nathan Hjelm
bccf8c657a Per RFC add initial support for the MPI 3.0 tools interface.
Current MPI_T support:
  - Full cvar interface.
  - Full categories interface.
  - No pvar support at this time.

This commit was SVN r28376.
2013-04-24 15:59:23 +00:00
Nathan Hjelm
c3b67d0187 Automatically generate a list of installed frameworks in project/include/project/frameworks.h
This commit was SVN r28238.
2013-03-27 21:10:32 +00:00
Jeff Squyres
cfd023bcda Ensure that MPI_LASTUSEDCODE is always >= MPI_ERR_LASTCODE. Thanks to
Dimitry Dontsov for reporting the issue and providing a patch.

This commit was SVN r28225.
2013-03-27 01:32:27 +00:00
Nathan Hjelm
36b940b685 ompi/include: Remove Makefile.include which is a duplicate of Makefile.am. This will make ompi consistent with opal and orte.
This commit was SVN r28220.
2013-03-26 18:44:01 +00:00
Ralph Castain
a4b6fb241f Remove all remaining vestiges of the Windows integration
This commit was SVN r28137.
2013-02-28 17:31:47 +00:00
Jeff Squyres
c438692fac Thanks to Brian for noticing an incorrect MPI_ERR value in the Fortran
MPI constants, which led to also find that MPI_ERR_WIN was mistakenly
not defined in the Fortran MPI constants.

This fix also needs to be applied to v1.7.  Brian -- can you review?

cmr:v1.7

This commit was SVN r28102.
2013-02-25 17:28:30 +00:00
Brian Barrett
f42783ae1a Move the RTE framework change into the trunk. With this change, all non-CR
runtime code goes through one of the rte, dpm, or pubsub frameworks.

This commit was SVN r27934.
2013-01-27 23:25:10 +00:00
Ralph Castain
6aac54b02e Revert r27510, r27509, and r27508.
Not sure what happened here, but the resulting trunk wouldn't even configure. After spending time fixing that problem, I found it wouldn't compile due to multiple syntax errors that had been introduced in both the OPAL and OMPI layer. This raised questions as to the completeness of the work.

Given that the author is departing, I pinged Jeff about it and we agreed to revert this for now. Hopefully, it can either be fixed by the author prior to actual departure, or someone else can pick it up (now that it is in the history) and fix it.

This commit was SVN r27511.

The following SVN revision numbers were found above:
  r27508 --> open-mpi/ompi@12c3c743de
  r27509 --> open-mpi/ompi@79e4a8ca38
  r27510 --> open-mpi/ompi@1ad5ff625a
2012-10-27 16:43:45 +00:00
Shiqing Fan
12c3c743de Per the MemPin RFC, submit the component source files, and update the memchecker macros.
This commit was SVN r27508.
2012-10-27 02:48:20 +00:00
Jeff Squyres
5594c90fce * Minor touch-ups to ompi/info/info.c to distinguish between keys and
vals.
 * Note that the pre-defined Info objects don't need to have fortran
   indexes assigned; they should already be assigned in the
   constructor.  So add an assert() to ensure that this really happens
   properly. 
 * Add MPI_ENV_INFO to the Fortran interfaces

This commit was SVN r27039.
2012-08-14 23:05:41 +00:00
Ralph Castain
c90b7380c1 Sigh - of course, they changed the name of the silly MPI_Info object in the final standard, but not in the proposal. So change to the new MPI_INFO_ENV name. Also, don't set unknown values to "N/A", but just leave them unset.
This commit was SVN r27012.
2012-08-12 05:00:57 +00:00
Ralph Castain
cb48fd52d4 Implement the MPI_Info part of MPI-3 Ticket 313. Add an MPI_info object MPI_INFO_GET_ENV that contains a number of run-time related pieces of info. This includes all the required ones in the ticket, plus a few that specifically address recent user questions:
"num_app_ctx" - the number of app_contexts in the job
"first_rank" - the MPI rank of the first process in each app_context
"np" - the number of procs in each app_context

Still need clarification on the MPI_Init portion of the ticket. Specifically, does the ticket call for returning an error is someone calls MPI_Init more than once in a program? We set a flag to tell us that we have been initialized, but currently never check it.

This commit was SVN r27005.
2012-08-12 01:28:23 +00:00
Jeff Squyres
7b0af8a760 Fix bad copyright comment
This commit was SVN r26999.
2012-08-10 21:53:17 +00:00
Jeff Squyres
7390ab8a23 Many updates and bug fixes for the Fortran bindings. Sorry these
aren't separated out into individual commits; they represent a few
months of work in the Mercurial branch, and it seemed error-prone to
try to break them up into multiple SVN commits.

 * Remove 2nd overloaded interfaces for MPI_TESTALL, MPI_TESTSOME,
   MPI_WAITALL, and MPI_WAITSOME in the "mpi" module implementations
   (because we're not allowed to have them, anyway -- it causes
   complications in the profiling interface).  This forced an MPI-2.2
   errata in the MPI Forum; we applied the errata here (the array of
   statuses parameter could not have a specific dimension specified in
   the dummy argument).  Fixes trac:3166.
 * Similarly, fix type for MPI_ARGVS_NULL in Fortran
 * Add MPI_3.0 function MPI_F_SYNC_REG (Fortran interfaces only).
 * Add MPI-3.0 MPI_MESSAGE_NO_PROC in the mpi_f08 module.
 * Added mpi_f08 handle comparison operators, per MPI-3.0 addendum to
   the F08 proposal at the last Forum meeting.  
 * Added missing type(MPI_File) and type(Message) in mpi_f08 module.
 * Fix --disable-mpi-io configure switch with all Fortran interfaces
 * Re-factor the Fortran header files to be fundamentally simpler and
   easier to maintain.  Fortran constant values in the header files
   are now generated by a script named mpif-values.pl during
   autogen.pl (they were previously generated by mpif-common.pl, but
   it was quite a bit more subtle/complex).  A second commit will
   follow this one to update svn:ignore values (just to ensure we
   don't muck up the first commit with the SVN client getting confused
   by the changed ignore values and new/changed files).
 * Fix some dependencies for compile ordering in
   ompi/mpi/fortran/use-mpi-ignore-tkr/Makefile.am. 
 * Fix bad wording in several places (.m4 file name, ompi_info output,
   etc.): we previoulsy said "F08 assumed shape" when we really meant
   "F08 assumed rank" (for Fortran gurus, those are very different
   things). 
 * Removed the GREEK/SVN version string from mpif.h.  It really had no
   purpose being there.

Still to be done:

 * Handling of 2D array of strings in MPI_COMM_SPAWN_MULTIPLE still
   isn't right yet.  Not sure how many people really care about this
   :-), but it is still broken.

This commit was SVN r26997.

The following Trac tickets were found above:
  Ticket 3166 --> https://svn.open-mpi.org/trac/ompi/ticket/3166
2012-08-10 21:19:47 +00:00
George Bosilca
6c39d16319 It is not redundant once the typo is corrected.
This commit was SVN r26965.
2012-08-08 11:28:36 +00:00
Jeff Squyres
7af34b1557 Remove redundant parameter declaration for MPI_COMBINER_INDEXED_BLOCK
This commit was SVN r26964.
2012-08-08 11:20:35 +00:00
George Bosilca
113b45b4e6 Add support for the new MPI_Type_create_hindexed_block (MPI 3.0).
This commit was SVN r26962.
2012-08-07 12:48:30 +00:00
Ralph Castain
89f3754559 Bring in the rest of MPI-3 Ticket #125 changes, including changes to mpi.h, function param lists, and associated documentation.
This commit was SVN r26944.
2012-08-03 01:09:59 +00:00
Ralph Castain
bf701f6c55 Make PMPI match MPI defs
This commit was SVN r26942.
2012-08-02 16:58:04 +00:00
Ralph Castain
8b595ddf84 Complete changes specified in MPI-3 Ticket #125. Still holding on proposed change to MPI_Init as it remains under discussion (and is just plain uuuugly). No action taken on changing string arrays as that part of #125 was not included in the final pdf text.
This commit was SVN r26939.
2012-08-02 16:31:02 +00:00
George Bosilca
0db06c57a1 Remove the duplicated prototype of PMPI_Reduce_scatter.
This commit was SVN r26806.
2012-07-19 13:12:42 +00:00
Ralph Castain
f3c312310d Revert r26801 so the trunk can build again
This commit was SVN r26805.

The following SVN revision numbers were found above:
  r26801 --> open-mpi/ompi@8f0525a8cc
2012-07-19 12:29:22 +00:00
George Bosilca
8f0525a8cc Fix the non-blocking collective prototypes.
This commit was SVN r26801.
2012-07-18 14:23:23 +00:00
Jeff Squyres
a1da2776ff Per RFC timeout (#3129), remove the non-standard name MPI_MAX_NAME_LEN.
This commit was SVN r26737.
2012-07-03 19:43:18 +00:00
Terry Dontje
2e014a5226 add mpif-all-common.h to the group of files to be copied as a part of a dist.
This commit was SVN r26679.
2012-06-27 15:16:44 +00:00
Josh Hursey
28681deffa Backout the ORCA commit. :(
There is a linking issue on Mac OSX that needs to be addressed before this is able to come back into the trunk.

This commit was SVN r26676.
2012-06-27 01:28:28 +00:00
Josh Hursey
542330e3a7 Commit of ORCA: Open MPI Runtime Collaborative Abstraction
This is a runtime interposition project that sits between the OMPI and ORTE layers in Open MPI.

The project is described on the wiki:
  https://svn.open-mpi.org/trac/ompi/wiki/Runtime_Interposition

And on this email thread:
  http://www.open-mpi.org/community/lists/devel/2012/06/11109.php

This commit was SVN r26670.
2012-06-26 21:42:16 +00:00
Jeff Squyres
ff5cb81faa Fix copy-n-paste error: the 2nd declarations of
PMPI_[Ir|R]educe_scatter should really have been for
PMPI_[Ir|R]educe_scatter_block.  

This commit was SVN r26663.
2012-06-26 14:05:33 +00:00
Jeff Squyres
2ec29ba8d6 Add missing file from r26652.
This commit was SVN r26661.

The following SVN revision numbers were found above:
  r26652 --> open-mpi/ompi@1923f89170
2012-06-26 13:37:49 +00:00
Jeff Squyres
dd70f84e3d Fix some linker problems with MPI_[Ir|R]educe_scatter_block:
* Ensure the profiling version is linked in
 * Ensure that PMPI variants are prototyped in mpi.h
 * Ensure weak symbols are set correctly

This commit was SVN r26649.
2012-06-25 15:26:14 +00:00
Brian Barrett
b9e8e4aeb9 * Initial merge of the non-blocking collectives interface. No implementation of
the back-end yet, coming real soon now, need to solve some tag issues first.

This commit was SVN r26641.
2012-06-22 20:54:12 +00:00
Jeff Squyres
91bae49090 A bunch of fixes to the f08 bindings:
* Add in a bunch of missinc MPI_Op pre-defined constants
 * Fix a few parameter types
 * Ensure that MPI_Op handles have the same values in all interfaces
   (i.e., add them to the mpif-common.pl generator script)

This commit was SVN r26511.
2012-05-29 17:54:33 +00:00
Jeff Squyres
245812c34b * s/f77/fortran/gi in a lot of places
* Remove unused #defines in mpi.h.in
 * Add OMPI_PARAM_CHECK in mpi.h.in (so that we can check for it in tests)
 * Clean up some comments in mpif-common.h

This commit was SVN r26347.
2012-04-27 01:09:37 +00:00
Ralph Castain
369b977e95 Include the mpif-common.pl program in the tarball so that autogen.pl can run against it - some ISVs need to be able to do so.
This commit was SVN r26326.
2012-04-24 19:49:35 +00:00
Jeff Squyres
67f9cf6952 Add missing MPI_MESSAGE_NO_PROC constant in mpif.h.
This commit was SVN r26319.
2012-04-23 21:28:50 +00:00
Jeff Squyres
4b047c4257 Fix typos in the memchecker sections of MPI_IMRECV and MPI_MRECV, and
define the missing function memchecker_message().

Thanks to MTT for catching these errors.

This commit was SVN r26314.
2012-04-23 21:10:19 +00:00
Jeff Squyres
253444c6d0 == Highlights ==
1. New mpifort wrapper compiler: you can utilize mpif.h, use mpi, and use mpi_f08 through this one wrapper compiler
 1. mpif77 and mpif90 still exist, but are sym links to mpifort and may be removed in a future release
 1. The mpi module has been re-implemented and is significantly "mo' bettah"
 1. The mpi_f08 module offers many, many improvements over mpif.h and the mpi module

This stuff is coming from a VERY long-lived mercurial branch (3 years!); it'll almost certainly take a few SVN commits and a bunch of testing before I get it correctly committed to the SVN trunk.

== More details ==

Craig Rasmussen and I have been working with the MPI-3 Fortran WG and Fortran J3 committees for a long, long time to make a prototype MPI-3 Fortran bindings implementation.  We think we're at a stable enough state to bring this stuff back to the trunk, with the goal of including it in OMPI v1.7.  

Special thanks go out to everyone who has been incredibly patient and helpful to us in this journey:

 * Rolf Rabenseifner/HLRS (mastermind/genius behind the entire MPI-3 Fortran effort)
 * The Fortran J3 committee
 * Tobias Burnus/gfortran
 * Tony !Goetz/Absoft
 * Terry !Donte/Oracle
 * ...and probably others whom I'm forgetting :-(

There's still opportunities for optimization in the mpi_f08 implementation, but by and large, it is as far along as it can be until Fortran compilers start implementing the new F08 dimension(..) syntax.

Note that gfortran is currently unsupported for the mpi_f08 module and the new mpi module.  gfortran users will a) fall back to the same mpi module implementation that is in OMPI v1.5.x, and b) not get the new mpi_f08 module.  The gfortran maintainers are actively working hard to add the necessary features to support both the new mpi_f08 module and the new mpi module implementations.  This will take some time.

As mentioned above, ompi/mpi/f77 and ompi/mpi/f90 no longer exist.  All the fortran bindings implementations have been collated under ompi/mpi/fortran; each implementation has its own subdirectory:

{{{
ompi/mpi/fortran/
  base/               - glue code
  mpif-h/             - what used to be ompi/mpi/f77
  use-mpi-tkr/        - what used to be ompi/mpi/f90
  use-mpi-ignore-tkr/ - new mpi module implementation
  use-mpi-f08/        - new mpi_f08 module implementation
}}}

There's also a prototype 6-function-MPI implementation under use-mpi-f08-desc that emulates the new F08 dimension(..) syntax that isn't fully available in Fortran compilers yet.  We did that to prove it to ourselves that it could be done once the compilers fully support it.  This directory/implementation will likely eventually replace the use-mpi-f08 version.

Other things that were done:

 * ompi_info grew a few new output fields to describe what level of Fortran support is included
 * Existing Fortran examples in examples/ were renamed; new mpi_f08 examples were added
 * The old Fortran MPI libraries were renamed:
   * libmpi_f77 -> libmpi_mpifh
   * libmpi_f90 -> libmpi_usempi
 * The configury for Fortran was consolidated and significantly slimmed down.  Note that the F77 env variable is now IGNORED for configure; you should only use FC. Example:
{{{
shell$ ./configure CC=icc CXX=icpc FC=ifort ...
}}}

All of this work was done in a Mercurial branch off the SVN trunk, and hosted at Bitbucket.  This branch has got to be one of OMPI's longest-running branches.  Its first commit was Tue Apr 07 23:01:46 2009 -0400 -- it's over 3 years old!  :-)  We think we've pulled in all relevant changes from the OMPI trunk (e.g., Fortran implementations of the new MPI-3 MPROBE stuff for mpif.h, use mpi, and use mpi_f08, and the recent Fujitsu Fortran patches).

I anticipate some instability when we bring this stuff into the trunk, simply because it touches a LOT of code in the MPI layer in the OMPI code base.  We'll try our best to make it as pain-free as possible, but please bear with us when it is committed.

This commit was SVN r26283.
2012-04-18 15:57:29 +00:00
Jeff Squyres
16263cde4b Remove a few more vestiages of C++ MPI extensions support
This commit was SVN r26240.
2012-04-05 21:17:56 +00:00
Jeff Squyres
91b80630aa Update MPROBE, IMPROBE, MRECV, IMRECV with the behavior described in
MPI-3 ticket 328:
https://svn.mpi-forum.org/trac/mpi-forum-web/ticket/328.  Add
MPI_MESSAGE_NO_PROC constant.

This commit was SVN r26115.
2012-03-08 13:27:01 +00:00
Brian Barrett
25d48e22fa Implementation of the MPI-3 Matched Probe functionality. Currently only
implemented in the OB1 PML, will return NOT_SUPPORTED in other PMLs.

This commit was SVN r25865.
2012-02-06 17:35:21 +00:00
Jeff Squyres
feb8eb8a90 Add the new MPI-3 function MPI_GET_LIBRARY_VERSION.
This commit was SVN r25860.
2012-02-02 23:57:09 +00:00