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

598 Коммитов

Автор SHA1 Сообщение Дата
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
Jeff Squyres
59cb626b7c Fixes trac:1463: ensure periodic dimensions are handled proprly for
MPI_CART_RANK. 

This commit was SVN r19459.

The following Trac tickets were found above:
  Ticket 1463 --> https://svn.open-mpi.org/trac/ompi/ticket/1463
2008-08-31 18:39:05 +00:00
George Bosilca
697dc524c1 Deal with the ticket #1239 and #712. This will upgrade the Open MPI support
for the F90 type create functions to the requirements of MPI 2.1 standard.

Advice to implementors. An application may often repeat a call to
MPI_TYPE_CREATE_F90_xxxx with the same combination of (xxxx,p,r).
The application is not allowed to free the returned predefined, unnamed
datatype handles. To prevent the creation of a potentially huge amount of
handles, the MPI implementation should return the same datatype handle for
the same (REAL/COMPLEX/INTEGER,p,r) combination. Checking for the
combination (p,r) in the preceding call to MPI_TYPE_CREATE_F90_xxxx and
using a hash-table to find formerly generated handles should limit the
overhead of finding a previously generated datatype with same combination
of (xxxx,p,r). (End of advice to implementors.)

This commit fixes trac:1239, and #712.

This commit was SVN r19458.

The following Trac tickets were found above:
  Ticket 1239 --> https://svn.open-mpi.org/trac/ompi/ticket/1239
2008-08-31 18:36:32 +00:00
Jeff Squyres
0d618b519f Fix MPI::IN_PLACE to be (void* const). Fixes trac:1465.
This commit was SVN r19420.

The following Trac tickets were found above:
  Ticket 1465 --> https://svn.open-mpi.org/trac/ompi/ticket/1465
2008-08-26 17:36:08 +00:00
George Bosilca
6982e8ecbc Don't forget to release the temporary arrays used for converting
the datatypes from Fortran to C.

This commit was SVN r19314.
2008-08-17 21:57:59 +00:00
Jeff Squyres
fc7e5f1c0d Fix CID 1095: ensure to initialize the File
This commit was SVN r19252.
2008-08-12 13:13:02 +00:00
Jeff Squyres
93746cd594 Fixed CID 807: Remove unused variable
This commit was SVN r19239.
2008-08-11 20:50:09 +00:00
Jeff Squyres
76b4040fbf Fix CIDs 830, 831, 858: minor resource leaks on error
This commit was SVN r19237.
2008-08-11 20:40:04 +00:00
Jeff Squyres
fa25de320e Fixes CIDs 421, 422, 423, 424, 425 426
Possibly fixes CID 417

 * ensure to initialize inner members upon default constructors using
   the same syntax across all classes
 * remove some member variables that aren't used anymore
 * "initialize" the inner MPI_Status in the default constructor for
   MPI::Status by calling the default constructor mpi_status().  This
   may or may not silence CID 417; we'll see what happens in
   subsequent Coverity Prevent runs.

This commit was SVN r19228.
2008-08-08 13:49:44 +00:00
Jeff Squyres
797ec531aa Some more work on the man pages:
* Make the creation of the build dir for the man pages a bit more
   robust (thanks to suggestions from Ralf W.).
 * Only distribute the .Xin files, not the .X man pages themselves.
 * Make the .X files depend on opal_config.h so that if you re-run
   configure and change opal_config.h (e.g., a new version), the man
   pages should get rebuilt.
 * Man pages are now cleaned with "distclean", not "maintainer-clean".
 * Fix a typo in opal_crs.7in.
 * Udpate make_dist_tarball to update "date" in the VERSION file.
 * Make make_dist_tarball a bit friendlier to hg checkouts.

This commit was SVN r19219.
2008-08-07 19:20:40 +00:00
Rolf vandeVaart
e105b3f254 Finish work related to ticket #1392 where the versions
were bumped from v1.0.0 to v2.0.0.  

This change fixed #1439.

This commit was SVN r19175.
2008-08-06 12:16:54 +00:00
Rainer Keller
82580701fb - We may know the *_name is < MPI_MAX_OBJECT_NAME; Prevent does not.
Fix Coverity issues CID1068 and CID1069

This commit was SVN r19167.
2008-08-06 07:59:59 +00:00
Ralph Castain
5a2053ade2 Per July technical meeting:
Revise the scope precedence in the MPI_Publish, Unpublish, and Lookup functions. If a global server was specified and is available, then default to using it for all three functions. If not, then default to using local scope.

If an info_key was provided, then it takes preference. We always follow the user's direction - this change only impacts the scope ordering if the user -doesn't- tell us the order to use.

This commit was SVN r19146.
2008-08-04 16:43:12 +00:00
Jeff Squyres
8d5bcf9257 Fix a bunch of double quote issues
This commit was SVN r19140.
2008-08-04 15:13:29 +00:00
Dan Lacher
9175da1e02 Putback for all changes to automate man page updates to strings of
versions, dates and build names.

Fixes trac:1387

Big thanks to Jeff and Brian for help and oversight.

This commit was SVN r19120.

The following Trac tickets were found above:
  Ticket 1387 --> https://svn.open-mpi.org/trac/ompi/ticket/1387
2008-08-01 21:14:37 +00:00
Jeff Squyres
5ac6a4387c Fix MPI_CART_GET to take an array of logicals for the periods argument
(not integers)

This commit was SVN r19099.
2008-07-30 20:29:23 +00:00
Ralph Castain
a0ae63f19e Ensure we call close_port after comm_spawn[_multiple]. Cleanout the port name in close_port
This commit was SVN r19068.
2008-07-28 16:40:11 +00:00
Jeff Squyres
477cdb0b62 Had to abondon the first approach from r19040: it caused problems with
"make distclean".  It's not clear whether it's an Automake bug or
whether what I did simply is not supported (I've got pending mail into
Ralf W. asking about it).  The short version is that during "make
distclean", ompi/mpi/f77/Makefile would rm -rf ompi/mpi/f77/.deps.
But ompi/Makefile still include's some .Plo files from that directory,
so Bad Things happened when "make distclean" unrolled from the
ompi/mpi/f77 dir back up to the ompi/ dir.

So I went with George's original suggestion and moved the f77 "base"
files in question into a new directory: ompi/mpi/f77/base and put a
Makefile.include in there.  That way, this directory is not traversed
twice by distclean, and .deps is only removed when it is supposed to
be.  Maybe we'll be able to do it a little better someday, but that's
the way it is now.

I'll check this with a fresh checkout once this is committed to SVN as
well; some of these kinds of problems don't show up until you do a
build from a completely fresh SVN checkout.

This commit was SVN r19054.

The following SVN revision numbers were found above:
  r19040 --> open-mpi/ompi@9f4d4c4312
2008-07-26 20:38:30 +00:00
Jeff Squyres
9f4d4c4312 Fixes trac:1409: ensure that the C++, F77, and F90 bindings libraries
are properly linked against libmpi.la.

This required a little creative AM usage, inspired by discussion on
OMPI devel list:

 * Make a new ompi/mpi/f77/Makefile_f77base.include; effectively move
   the building of the f77 "base" glue stuff (libmpi_f77base.la) into
   this Makefile and away from ompi/mpi/f77/Makefile.am.  The sources
   in question require some specific CPPFLAGS, so we couldn't just add
   the raw sources into libmpi_la_SOURCES, unfortunately.
 * Include this new Makefile in the top-level ompi/Makefile.am
 * The libmpi_f77base.la LT convenience library was already sucked
   into libmpi.la; breaking it out into its own Makefile allows us
   to build it earlier and therefore complete buidling libmpi.la
   earlier.
 * Side effect: the ompi/mpi/Makefile.am is now mostly unnecessary; it
   no longer specifies a SUBDIRS for each of the bindings directories
   to traverse into (since they are now in the top-level SUBDIRS).  As
   such, the man pages are now also now included in the top-level
   ompi/Makefile.am.

The end of the result is that libmpi.la -- including a few sources
from mpi/f77 -- is fully built before the C++, F77, and F90 bindings
are built.  Therefore, the C++, F77, and F90 bindings libraries can
all link against libmpi.la.

This commit was SVN r19040.

The following Trac tickets were found above:
  Ticket 1409 --> https://svn.open-mpi.org/trac/ompi/ticket/1409
2008-07-25 21:18:05 +00:00
Ralph Castain
3137ed9255 Update the manpages for comm_spawn(_multiple) - add man page to explain host/hostfile behavior
This commit was SVN r18961.
2008-07-21 17:58:12 +00:00
Ralph Castain
0abf5225a8 Update the man pages for MPI_Publish, MPI_Unpublish, MPI_Lookup, and MPI_Comm_spawn to cover scoping rules and new info keys
This commit was SVN r18891.
2008-07-11 19:09:50 +00:00
Jeff Squyres
74aa9689e4 From an initial patch from George, update all the set/get errhandler
functions to use atomics in order to be thread safe.

This commit was SVN r18807.
2008-07-03 19:28:02 +00:00
Jeff Squyres
51d833e8d1 Minor fixes and comment clarifications for MPI-2.1-mandated handling
of strings.  We mostly did the Right Things already; I simplified the
code a bit and also had us not write to more characters in the C
bindings than we're supposed to (per language in the MPI-2.1 spec).

Fixes trac:1238.

This commit was SVN r18705.

The following Trac tickets were found above:
  Ticket 1238 --> https://svn.open-mpi.org/trac/ompi/ticket/1238
2008-06-21 19:33:47 +00:00
Jeff Squyres
f366f49179 Remove some leftover kruft; the STL is no longer used, so this lock is
no longer necessary.

This commit was SVN r18694.
2008-06-20 13:39:26 +00:00
Jeff Squyres
7a1206d912 Two more minor changes:
* Put the variable in the MPI namespace; keeps it safely segregated
   from user apps
 * Need to actually "extern" the variable to make the compiler not
   complain that the variable is never referenced

This commit was SVN r18693.
2008-06-20 13:36:02 +00:00
Jeff Squyres
a884eebdf1 This warning has been bugging me in MTT nightly runs for forever: make
the char string ident in the C++ library be non-static so that other
places can see it.  This makes the C++ library version string
analogous to all the other version strings.

This commit was SVN r18679.
2008-06-19 14:40:37 +00:00
Ralph Castain
9613b3176c Effectively revert the orte_output system and return to direct use of opal_output at all levels. Retain the orte_show_help subsystem to allow aggregation of show_help messages at the HNP.
After much work by Jeff and myself, and quite a lot of discussion, it has become clear that we simply cannot resolve the infinite loops caused by RML-involved subsystems calling orte_output. The original rationale for the change to orte_output has also been reduced by shifting the output of XML-formatted vs human readable messages to an alternative approach.

I have globally replaced the orte_output/ORTE_OUTPUT calls in the code base, as well as the corresponding .h file name. I have test compiled and run this on the various environments within my reach, so hopefully this will prove minimally disruptive.

This commit was SVN r18619.
2008-06-09 14:53:58 +00:00
Ralph Castain
6ddcce4085 Apply a patch from Edgar to fix the Intercomm MTT tests.
Fixes ticket #1332

This commit was SVN r18591.
2008-06-05 12:53:12 +00:00
Jeff Squyres
cd6f550720 2 more minor fixes from our Debian friends.
This commit was SVN r18560.
2008-06-03 17:39:37 +00:00
Jeff Squyres
a4db97c213 More man pages fixes from our Debian Open MPI package maintainer
friends.  Woo hoo!

This commit was SVN r18559.
2008-06-03 16:44:40 +00:00
Rolf vandeVaart
0d8faf7559 Fix the fix for ticket #1298. Thanks George for pointing it out.
This commit was SVN r18488.
2008-05-23 13:33:38 +00:00
Rolf vandeVaart
8c3b31b181 Need to properly handle zero-length scatters and gathers on intercommunicators. Add a check for the MPI_ROOT and MPI_PROC_NULL processes so they do not enter collective module when count=0.
This commit was SVN r18481.
2008-05-22 19:09:43 +00:00
Jeff Squyres
87d4201bdf From our faithful Debian package maintainers: remove some lint-quality
lines from the man pages.

This commit was SVN r18449.
2008-05-16 14:58:52 +00:00
Jeff Squyres
e7ecd56bd2 This commit represents a bunch of work on a Mercurial side branch. As
such, the commit message back to the master SVN repository is fairly
long.

= ORTE Job-Level Output Messages =

Add two new interfaces that should be used for all new code throughout
the ORTE and OMPI layers (we already make the search-and-replace on
the existing ORTE / OMPI layers):

 * orte_output(): (and corresponding friends ORTE_OUTPUT,
   orte_output_verbose, etc.)  This function sends the output directly
   to the HNP for processing as part of a job-specific output
   channel.  It supports all the same outputs as opal_output()
   (syslog, file, stdout, stderr), but for stdout/stderr, the output
   is sent to the HNP for processing and output.  More on this below.
 * orte_show_help(): This function is a drop-in-replacement for
   opal_show_help(), with two differences in functionality:
   1. the rendered text help message output is sent to the HNP for
      display (rather than outputting directly into the process' stderr
      stream)
   1. the HNP detects duplicate help messages and does not display them
      (so that you don't see the same error message N times, once from
      each of your N MPI processes); instead, it counts "new" instances
      of the help message and displays a message every ~5 seconds when
      there are new ones ("I got X new copies of the help message...")

opal_show_help and opal_output still exist, but they only output in
the current process.  The intent for the new orte_* functions is that
they can apply job-level intelligence to the output.  As such, we
recommend that all new ORTE and OMPI code use the new orte_*
functions, not thei opal_* functions.

=== New code ===

For ORTE and OMPI programmers, here's what you need to do differently
in new code:

 * Do not include opal/util/show_help.h or opal/util/output.h.
   Instead, include orte/util/output.h (this one header file has
   declarations for both the orte_output() series of functions and
   orte_show_help()).
 * Effectively s/opal_output/orte_output/gi throughout your code.
   Note that orte_output_open() takes a slightly different argument
   list (as a way to pass data to the filtering stream -- see below),
   so you if explicitly call opal_output_open(), you'll need to
   slightly adapt to the new signature of orte_output_open().
 * Literally s/opal_show_help/orte_show_help/.  The function signature
   is identical.

=== Notes ===

 * orte_output'ing to stream 0 will do similar to what
   opal_output'ing did, so leaving a hard-coded "0" as the first
   argument is safe.
 * For systems that do not use ORTE's RML or the HNP, the effect of
   orte_output_* and orte_show_help will be identical to their opal
   counterparts (the additional information passed to
   orte_output_open() will be lost!).  Indeed, the orte_* functions
   simply become trivial wrappers to their opal_* counterparts.  Note
   that we have not tested this; the code is simple but it is quite
   possible that we mucked something up.

= Filter Framework =

Messages sent view the new orte_* functions described above and
messages output via the IOF on the HNP will now optionally be passed
through a new "filter" framework before being output to
stdout/stderr.  The "filter" OPAL MCA framework is intended to allow
preprocessing to messages before they are sent to their final
destinations.  The first component that was written in the filter
framework was to create an XML stream, segregating all the messages
into different XML tags, etc.  This will allow 3rd party tools to read
the stdout/stderr from the HNP and be able to know exactly what each
text message is (e.g., a help message, another OMPI infrastructure
message, stdout from the user process, stderr from the user process,
etc.).

Filtering is not active by default.  Filter components must be
specifically requested, such as:

{{{
$ mpirun --mca filter xml ...
}}}

There can only be one filter component active.

= New MCA Parameters =

The new functionality described above introduces two new MCA
parameters:

 * '''orte_base_help_aggregate''': Defaults to 1 (true), meaning that
   help messages will be aggregated, as described above.  If set to 0,
   all help messages will be displayed, even if they are duplicates
   (i.e., the original behavior).
 * '''orte_base_show_output_recursions''': An MCA parameter to help
   debug one of the known issues, described below.  It is likely that
   this MCA parameter will disappear before v1.3 final.

= Known Issues =

 * The XML filter component is not complete.  The current output from
   this component is preliminary and not real XML.  A bit more work
   needs to be done to configure.m4 search for an appropriate XML
   library/link it in/use it at run time.
 * There are possible recursion loops in the orte_output() and
   orte_show_help() functions -- e.g., if RML send calls orte_output()
   or orte_show_help().  We have some ideas how to fix these, but
   figured that it was ok to commit before feature freeze with known
   issues.  The code currently contains sub-optimal workarounds so
   that this will not be a problem, but it would be good to actually
   solve the problem rather than have hackish workarounds before v1.3 final.

This commit was SVN r18434.
2008-05-13 20:00:55 +00:00
Rainer Keller
4b89706dfe - Properly check for valid output parameters...
This commit was SVN r18419.
2008-05-09 08:39:24 +00:00
Shiqing Fan
8088ec8bce More for non-blocking communication.
This commit was SVN r18400.
2008-05-07 13:00:28 +00:00
Shiqing Fan
8393fb5d47 Use the new memchecker_call function for memory checking of non-blocking communication.
This commit was SVN r18399.
2008-05-07 12:28:51 +00:00
Shiqing Fan
f35a06119c Use memchecker_convertor_call function instead the old one. Move the function to the place that we can use convertor.
This commit was SVN r18370.
2008-05-05 13:57:27 +00:00
Terry Dontje
8dd0421015 Moved ident lines to ompi_mpi_init.c and created new ompi_version_string
variable.

This commit was SVN r18345.
2008-05-01 15:06:10 +00:00
Josh Hursey
cc83d41ad9 Merge in tmp/jjh-scratch
{{{
 svn merge -r 18218:18240 https://svn.open-mpi.org/svn/ompi/tmp/jjh-scratch .
}}}

Contains:
 * Primarily a fix for a user reported problem where a cached file descriptor is causing a SIGPIPE on restart.
 * Cleanup some small memory leaks from using mca_base_param_env_var() - Thanks Jeff
 * Cleanup ORTE FT tool compilation in non-FT builds - Thanks Tim P.
 * Cleanup mpi interface with missplaced {{{OPAL_CR_ENTER_LIBRARY}}} - Thanks Terry
 * Some other sundry cleanup items all dealing with C/R functionality in the trunk.

This commit was SVN r18241.
2008-04-23 00:17:12 +00:00
Tim Prins
b2acb51d04 make comm_join work again. Allocate memory to the correct pointer.
This commit was SVN r18186.
2008-04-17 11:56:53 +00:00
Ralph Castain
7b91f8baff Cleanup and fix bugs in the MPI dynamics section. Modify the dpm API so it properly takes ports instead of process names (as correctly identified by Aurelien). Fix race conditions in the use of ompi-server. Fix incompatibilities between the mpi bindings and the dpm implemenation that could cause segfaults due to uninitialized memory.
Fix the ompi-server -h cmd line option so it actually tells you something!

Add two new testing codes to the orte/test/mpi area: accept and connect.

This commit was SVN r18176.
2008-04-16 14:27:42 +00:00
Aurelien Bouteiller
921a6ce3d4 Process with different jobid can kwon connet/accept to each other.
This commit was SVN r18134.
2008-04-11 15:40:59 +00:00
Edgar Gabriel
5989fa570c Sorry, previous commit was in the wrong directory. This is the real fix (have
to undo 1822).

The verification of recvcount==0 and rank = root was braking
inter-communicator scatter, since the root (root==MPI_ROOT) might very well
have recvcount=0. The same fix has been applied to gather.c just the other way
round. 
 
Fixes the bug reported on the mainling list by Martin Audet. If there is a
1.2.7 this fix might be worthwhile porting it over.

Please note, that while the test works now for basic and for inter, we get a
0byte malloc warning from the inter module, which we still have to fix in a
separate patch.

This commit was SVN r18123.
2008-04-10 15:03:14 +00:00
Rainer Keller
334b64e760 - Coverity issue CID 35:
Event var_deref_op: Variable "requests" tracked as NULL was
   dereferenced.
   Only check requests[i] for NULL, if requests is != NULL itself.

This commit was SVN r17973.
2008-03-26 08:19:55 +00:00
Rainer Keller
56f3d59f2a - Coverity issues 939, 940, 941:
Event uninit_use_in_call: Using uninitialized value "tag" in call to
   function "(ompi_dpm).connect_accept" and others
   The tag is set and used in get_rport only on root...

This commit was SVN r17972.
2008-03-26 08:09:11 +00:00
Ralph Castain
90107f3c14 Fix an issue with comm_spawn over who sent/recv first in the modex. The modex assumes that the first name on the list is the "root" that will serve as the allgather collector/distributor. The dpm was putting that entity last, which forced us to pre-inform the parent procs of the child proc's contact info since the parent was trying to send to the child.
Clarify the setting of send_first in the mpi bindings (trivial, i know, but helpful)

Remove the extra xcast of child contact info to the parent job.

This commit was SVN r17952.
2008-03-25 14:57:34 +00:00
Jeff Squyres
12426b64ea Per MPI-2 ballot 3, the definition of MPI::BOTTOM has changed. w00t!
Fixes trac:1175.

This commit was SVN r17850.

The following Trac tickets were found above:
  Ticket 1175 --> https://svn.open-mpi.org/trac/ompi/ticket/1175
2008-03-17 21:42:27 +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
Jeff Squyres
f41678b46d More fixes from the helpful Debian OMPI package maintainers to clean
up the appropos usage in our man pages.

This commit was SVN r17567.
2008-02-23 18:40:15 +00:00
Josh Hursey
134684d096 A compiler warning fix.
This commit was SVN r17539.
2008-02-21 14:28:08 +00:00
Josh Hursey
99144db970 Improve checkpoint/restart support by allowing a checkpoint to progress when the process is *not* in the MPI library. This involves creating a separate thread for polling for a checkpoint request. This thread is active when the MPI process is not in the MPI library, and paused when the MPI process is in the library.
Some MPI C interface files saw some spacing changes to conform to the coding standards of Open MPI.

Changed MPI C interface files to use {{{OPAL_CR_ENTER_LIBRARY()}}} and {{{OPAL_CR_EXIT_LIBRARY()}}} instead of just {{{OPAL_CR_TEST_CHECKPOINT_READY()}}}. This will allow the checkpoint/restart system more flexibility in how it is to behave.

Fixed the configure check for {{{--enable-ft-thread}}} so it has a know dependance on {{{--enable-mpi-thread}}} (and/or {{{--enable-progress-thread}}}).

Added a line for Checkpoint/Restart support to {{{ompi_info}}}.

Added some options to choose at runtime whether or not to use the checkpoint polling thread. By default, if the user asked for it to be compiled in, then it is used. But some users will want the ability to toggle its use at runtime.

There are still some places for improvement, but the feature works correctly. As always with Checkpoint/Restart, it is compiled out unless explicitly asked for at configure time. Further, if it was configured in, then it is not used unless explicitly asked for by the user at runtime.

This commit was SVN r17516.
2008-02-19 22:15:52 +00:00
Rainer Keller
9cd2c6f48b - Instead of calling RUNNING_ON_VALGRIND,
implement specific function, thereby
   removing bogus requirement on valgrind/valgrind.h
   dough...
 - Call specific function runindebugger() before
   doing expensive checks on each component of struct.
 - Get rid of void* warnings..

This commit was SVN r17438.
2008-02-12 20:37:51 +00:00
Shiqing Fan
54c7b71cfd Use the correct way of including memchecker.h, which will work with '--with-devel-headers'.
This commit was SVN r17435.
2008-02-12 18:01:17 +00:00
Jeff Squyres
6d75691de3 Remove now-useless variable.
This commit was SVN r17429.
2008-02-12 13:09:34 +00:00
Shiqing Fan
fa79631d41 and fix a miss type.
This commit was SVN r17425.
2008-02-12 08:50:13 +00:00
Shiqing Fan
f5792bbda5 merging the memchecker into trunk.
This commit was SVN r17424.
2008-02-12 08:46:27 +00:00
Dan Lacher
98f70d6318 Convert the C++ Comm, Datatype and Winn keyval creation and intercept callbacks
to *not* use the STL as well as removing the STL use from the error handler
routines.  This was removing the STL from the C++ bindings (Solaris has 2
versions of the STL; if OMPI uses one and an MPI application wants to use
another, Bad Things happen).

The main idea is to wrap up the C++ callback function pointers and the user's
extra_state into our own struct that is passed as the extra_state to the C
keyval registration along with the intercept routines in intercepts.cc. When the
C++ intercepts are activated, they unwrap the user's callback and extra state
and call them.

This commit was SVN r17409.
2008-02-10 19:29:25 +00:00
Jeff Squyres
213679488a Fix F90 interface for MPI_CART_CREATE. Thanks to Michal Charemza for
reporting the problem.

This commit was SVN r17395.
2008-02-07 12:46:32 +00:00
George Bosilca
13de3420ab As the receive buffer is only significant at root, limit the
check only where it makes sense.

This commit was SVN r17366.
2008-02-04 01:44:41 +00:00
Rainer Keller
2b4975de8e - In case of MPI_REQUEST_NULL, set the *status to the empty_status,
by copying structure:

   psendrecv.c:81
   4e7:   cmpl   $0x0,0x34(%ebp)           4e7:   cmpl   $0x0,0x34(%ebp)
   4eb:   je     51e <PMPI_Sendrecv+0x51e> 4eb:   je     517 <PMPI_Sendrecv+0x517>
   psendrecv.c:85
   4ed:   mov    0x34(%ebp),%eax           4ed:   mov    0x34(%ebp),%edx
   4f0:   movl   $0xfffffffe,(%eax)        4f0:   mov    0x38,%eax
   psendrecv.c:86                          4f5:   mov    %eax,(%edx)
   4f6:   mov    0x34(%ebp),%eax           4f7:   mov    0x3c,%eax
   4f9:   movl   $0xffffffff,0x4(%eax)     4fc:   mov    %eax,0x4(%edx)
   psendrecv.c:87                          4ff:   mov    0x40,%eax
   500:   mov    0x34(%ebp),%eax           504:   mov    %eax,0x8(%edx)
   503:   movl   $0x0,0x8(%eax)            507:   mov    0x44,%eax
   psendrecv.c:88                          50c:   mov    %eax,0xc(%edx)
   50a:   mov    0x34(%ebp),%eax           50f:   mov    0x48,%eax
   50d:   movl   $0x0,0xc(%eax)            514:   mov    %eax,0x10(%edx)
   psendrecv.c:89
   514:   mov    0x34(%ebp),%eax
   517:   movl   $0x0,0x10(%eax)
   psendrecv.c:91

This commit was SVN r17230.
2008-01-25 12:58:59 +00:00
Rainer Keller
76b95a4ee7 - Just indentation and spelling
This commit was SVN r17228.
2008-01-25 10:36:42 +00:00
Jeff Squyres
404f8d1076 Nothing substantial: just move the generalized request intercept data
structure up into the MPI::Grequest class (rather than being a struct
definition outside of any class) to be similar to how the keyval
intercept data structures are organized.  Fix one minor compiler
warning in the process.

This commit was SVN r17171.
2008-01-21 15:56:21 +00:00
Jeff Squyres
ab60cfd948 Fix some typos.
This commit was SVN r17168.
2008-01-21 14:34:25 +00:00
Jeff Squyres
72bef32e65 Convert the C++ Comm keyval creation and intercept callbacks to *not*
use the STL.  This is the first step in removing the STL from the C++
bindings (Solaris has 2 versions of the STL; if OMPI uses one and an
MPI application wants to use another, Bad Things happen).

The main idea is to wrap up the C++ callback function pointers and the
user's extra_state into our own struct that is passed as the
extra_state to the C keyval registration along with the intercept
routines in intercepts.cc.  When the C++ intercepts are activated,
they unwrap the user's callback and extra state and call them.

It got a little more complicated than that, however:

 * I realized that we were returning errors back from
   Comm::create_keyval() incorrectly, so I fixed that.
 * Instead of using STL maps to store associations, we now use an
   opal_list_t which has to be guaranteed to be initialized correctly
   and only once in a multi-threaded environment.
 * Because of whackyness in the C++ bindings, it is possible to call
   Comm::Create_keyval with C callbacks (!).  If both registered
   callbacks are C functions, then ensure to avoid all the C++
   machinery.

This commit was SVN r17125.
2008-01-12 13:20:38 +00:00
George Bosilca
25814c07e0 Update the checks in the reduce family collectives.
This commit was SVN r17096.
2008-01-09 20:40:57 +00:00
George Bosilca
ebad33ad86 Amazing that no compilers so far have identified this little
copy/paste mistake. Thanks VC !

This commit was SVN r17057.
2008-01-05 00:19:08 +00:00
Jeff Squyres
728eccda87 Found this compatibility code yesterday when reviewing some of the C++
bindings with Dan: it's no longer necessary since we're firmly tied to
Open MPI (I'm not sure it was ever necessary, actually...).

This commit was SVN r17017.
2007-12-21 16:23:13 +00:00
George Bosilca
906e8bf1d1 Replace the ompi_pointer_array with opal_pointer_array. The next step
(sometimes after the merge with the ORTE branch), the opal_pointer_array
will became the only pointer_array implementation (the orte_pointer_array
will be removed).

This commit was SVN r17007.
2007-12-21 06:02:00 +00:00
George Bosilca
aee802ddfa Include the intercept_extra_state_t_class in the library. The logic I
added there on my last commit was wrong. This variable should be included
only once, and here is the right way of doing:
- if we have weak symbols we compile each file once, so the variable should
  [always] get included.
- if we don't have weak symbols, then each file will get compiled multiple
  times (if profiling is enabled). In this case include the variable only
  when we build the generic layer (not the profile one).

This commit was SVN r16950.
2007-12-13 01:06:55 +00:00
George Bosilca
148916b3e4 Avoid a compiler warning about the function being defined but not
used when we compile the profiling layer.

This commit was SVN r16909.
2007-12-10 00:19:58 +00:00
George Bosilca
90e337f2fc Correct the prototype of the profiling functions. Make sure the _class variable is
only defined when we build the normal version (not in the profiling compilation step).
Make sure the conversion_null function compil in all cases.

This commit was SVN r16908.
2007-12-09 15:51:10 +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
Jeff Squyres
b9106a0d25 Back out r16836 and put in a big comment why.
This commit was SVN r16872.

The following SVN revision numbers were found above:
  r16836 --> open-mpi/ompi@6b9048fc6d
2007-12-06 18:45:21 +00:00
Jeff Squyres
a5798803aa Remove kruft
This commit was SVN r16852.
2007-12-05 14:03:12 +00:00
Edgar Gabriel
6b9048fc6d check for MPI_GROUP_EMPTY before freeing a group.
fixes: 1110

This commit was SVN r16836.
2007-12-04 16:13:27 +00:00
Jeff Squyres
33b3d802a6 Oops -- meant to say 10^-6, not 10^-3.
This commit was SVN r16776.
2007-11-27 22:36:52 +00:00
Jeff Squyres
cf98657adb * Clean up a little #if logic in MPI_WTICK / MPI_WTIME
* Update MPI_WTICK / MPI_WTIME man pages:
   * Fix C++ declarations
   * Note that we may use better than gettimeofday() on some platforms
 * Add "MPI_WTIME support" ("options:mpi-wtime") flag in ompi_info
   output indicating whether we use "native" or "gettimeofday" for
   MPI_WTIME

This commit was SVN r16774.
2007-11-26 18:23:53 +00:00
Ethan Mallove
005652c9d4 * Embed ident strings into the Open MPI libraries using one of the following
methods (in order of precedence):
  1. #pragma ident <ident string> (e.g., Intel and Sun)
  1. #ident <ident string> (e.g., GCC)
  1. static const char ident[] = <ident string> (all others)
By default, the ident string used is the standard Open MPI version string. Only
the following libraries will get the embedded version strings (e.g., DSOs will
not):
  * libmpi.so
  * libmpi_cxx.so
  * libmpi_f77.so
  * libopen-pal.so
  * libopen-rte.so
* Added two new configure options:
  * `--with-package-name="STRING"` (defaults to "Open MPI username@hostname
    Distribution"). `STRING` is displayed by `ompi_info` next to the "Package"
    heading.
  * `--with-ident-string="STRING"` (defaults to the standard Open MPI version
    string - e.g., X.Y.Zr######). `%VERSION%` will expand to the Open MPI
    version string if it is supplied to this configure option.

This commit was SVN r16644.
2007-11-03 02:40:22 +00:00
Josh Hursey
7437f37e96 This commit contains the following:
* Fix some missing includes in a few places.
 * Add the cr_request() functionality to the BLCR CRS component.
   We are now dependent upon the 0.6.* series of BLCR.
 * Made the CR notification mechanism a registered function.
   This way we can have an OPAL-only version and it can be replaced at
   runtime with the ORTE version.
 * Add a 'opal_cr_allow_opal_only' parameter that will enable OPAL-only
   CR functionality when the user wants it. Default: Disabled.
 * Fix the placement of a checkpoint request check in MPI_Init
 * Pull the OPAL notification mechanism into the SnapC framework.
   * We no longer fork/exec the 'opal-checkpoint' command for local
   checkpointing, the Local coordinator in the orted does this directly.
   * The Local and Application coordinator talk together bypassing the OPAL
   notifiation mechanism.
   * Optimized the Local <-> App Coordinator communication.
   * Improved the structure used to track vpid_snapshots in the local coord.
 * Fix a race condition in which an application under heavy communication load
   may produce an inconsistent global checkpoint.

This commit was SVN r16389.
2007-10-08 20:53:02 +00:00
Andrew Friedley
069e6dc4a0 Fix a bug introduced when the collective selection logic was changed to allow for a different component to be used for each collective.
Passing the barrier module to the bcast function is a bad idea when barrier is using a different component from bcast..

This commit was SVN r16212.
2007-09-25 17:09:52 +00:00
Tim Prins
38fde640ad Fix builds on FreeBSD by renaming strings.h to f77_strings.h so that our file does not get accidently included by FreeBSD's string.h.
Thanks to Karol Mroz for pointing out the problem.

This commit was SVN r16164.
2007-09-19 23:24:23 +00:00
Tim Prins
4033a40e4e Coding standards...
This commit was SVN r16118.
2007-09-13 14:00:59 +00:00
George Bosilca
bfb4ddc3e2 Coverty: remove dead code.
This commit was SVN r16106.
2007-09-12 17:56:33 +00:00
George Bosilca
8622beda54 This commit should fix the issues with ticket 1065. Now, we correctly
duplicate the MPI_UB and MPI_LB datatypes.

This commit was SVN r16083.
2007-09-10 22:13:42 +00:00
George Bosilca
756eee571e Fix Coverty #24. This test didn't make sense in this branch of the if.
This commit was SVN r16001.
2007-08-29 02:02:19 +00:00
Jeff Squyres
f08cce16db Fix Coverity CID 468: remove unused variable.
This commit was SVN r15996.
2007-08-29 01:21:17 +00:00
Jeff Squyres
b69c7688a0 Fix Coverity defect 676: possible NULL dereference in an error
condition.

This commit was SVN r15956.
2007-08-25 12:17:02 +00:00
Brian Barrett
af4e86c25f Update collectives selection logic to allow for multiple components to be
used at nce (up to one unique collective module per collective function).
Matches r15795:15921 of the tmp/bwb-coll-select branch

This commit was SVN r15924.

The following SVN revisions from the original message are invalid or
inconsistent and therefore were not cross-referenced:
  r15795
  r15921
2007-08-19 03:37:49 +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
Mohamad Chaarawi
8c458b0ee7 removing unused variables, that cause warnings..
This commit was SVN r15791.
2007-08-07 15:13:46 +00:00
Mohamad Chaarawi
59a7bf8a9f Merging in the Sparse Groups..
This commit includes config changes..

This commit was SVN r15764.
2007-08-04 00:41:26 +00:00
Shiqing Fan
0f468f3668 - Remove the solution and project files, will commit them later.
This commit was SVN r15705.
2007-07-31 17:07:02 +00:00
Sven Stork
27422e05ac - add parameter check for NULL pointer
This commit was SVN r15697.
2007-07-31 09:01:39 +00:00
Sven Stork
80cdafb8f4 - remove dead code found by coverity
This commit was SVN r15685.
2007-07-30 15:36:00 +00:00
Sven Stork
855434de59 - fixes several coverty issues
- add missing initialisation for variables
  - use strncpy instead of strcpy

This commit was SVN r15683.
2007-07-30 14:44:37 +00:00
Jeff Squyres
327576b2a3 Fix incorrect behavior noted by Lisandro Dalcini: when MPI_COMM_SELF is
passed to MPI_COMM_FREE, it invoked the error handler on
MPI_COMM_WORLD, not on MPI_COMM_FREE.  This commit changes the
behavior: if MPI_COMM_SELF is passed to MPI_COMM_FREE, we invoke the
error handler on MPI_COMM_SELF (not MPI_COMM_WORLD).  Fixes trac:1109.

This commit was SVN r15682.

The following Trac tickets were found above:
  Ticket 1109 --> https://svn.open-mpi.org/trac/ompi/ticket/1109
2007-07-30 13:01:33 +00:00
Shiqing Fan
4d7b349cdb - Add VC8 solution and project files.
- If one wants to use this solution, remember to unload the project 'orte-restart' which is currently not working for Windows.

This commit was SVN r15680.
2007-07-30 11:05:34 +00:00
Rainer Keller
1dbbfc04b7 - Rename rank to tmp_rank to get rid of warning
This commit was SVN r15672.
2007-07-29 12:56:02 +00:00
Rainer Keller
bb2d0b45cd - Coverity CID37: if requests == NULL, do not deref requests[i] for
multi-completion calls. Therefore reorder tests where appropriate.
 - Always check for NULL-pointers (flag, index, completed) (yes, we
   use them in the underlying ompi_request_* functions.
 - Break early, if a NULL-request is found

This commit was SVN r15671.
2007-07-29 12:54:21 +00:00
Rainer Keller
4ff78f8e2d - Coverity: Just as init.c -- we do not have a communicator yet;
so do not use OMPI_ERRHANDLER_RETURN which dereferences NULL...

This commit was SVN r15670.
2007-07-29 11:47:19 +00:00
Sven Stork
c0812a8217 - export missing fortran 90 symbols
This commit was SVN r15634.
2007-07-26 12:58:28 +00:00
Jeff Squyres
71d6c5b811 Arf. Remove a debugging printf. Thanks to Christian for noticing...
This commit was SVN r15605.
2007-07-25 11:00:18 +00:00
Jeff Squyres
e80b7e9dde If MPI_ALLOC_MEM is invoked with a 0 sized request, return NULL. If
MPI_FREE_MEM is invoked with NULL, return success.

Fixes trac:1101.

This commit was SVN r15593.

The following Trac tickets were found above:
  Ticket 1101 --> https://svn.open-mpi.org/trac/ompi/ticket/1101
2007-07-25 01:00:30 +00:00
Jeff Squyres
7177e8c753 Fix mistaken logic for the error handler. Thanks to Jeff Dusenberry
for pointing out the problem and supplying the fix.

This commit was SVN r15574.
2007-07-24 01:01:13 +00:00
Rainer Keller
15c03e8acc - Apply patch 31_manpages_lintian.dpatch
Thanks to Dirk Eddelbuettel <edd@debian.org>

This commit was SVN r15215.
2007-06-26 21:13:10 +00:00
Rainer Keller
14a994fee4 - Apply patch 30_manpages_fix.diff.dpatch of Debian
Thanks to Sylvestre Ledru <sylvestre.ledru@inria.fr>

This commit was SVN r15214.
2007-06-26 21:11:06 +00:00
Rainer Keller
fb5394a9b9 - Fix wrong self-referral of MPI_Status_c2f manpage.
Thanks to Tilman Koschnick from Debian package for noticing.

This commit was SVN r15212.
2007-06-26 21:02:15 +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
Rainer Keller
9b91ac2fa3 Thanks to Daniel Spangberg for noticing this problem in the f77
interface:
 - Fix the handling of MPI_BOTTOM in various places
   Update of r15030
 - While being at it, handle MPI_IN_PLACE in the same way.
   Convert OMPI_ADDR -> OMPI_F2C_BOTTOM
   Convert OMPI_IN_PLACE -> OMPI_F2C_IN_PLACE
   and have them converted before the actual call.
 - Approved by George and tested with icc and simple f77 mpi-program and
   with program by Daniel.

This commit was SVN r15129.

The following SVN revision numbers were found above:
  r15030 --> open-mpi/ompi@15f9e58c68
2007-06-18 22:33:54 +00:00
Rainer Keller
0cd2f99711 - Get rid of pendatic C++ namespace warning.
This commit was SVN r15127.
2007-06-18 21:29:09 +00:00
George Bosilca
15f9e58c68 Convert all buffers from Fortran to C. This allow us to catch the
MPI_BOTTOM. Let the C functions do the checkings for where MPI_BOTTOM
is allowed and where not.

This commit was SVN r15030.
2007-06-12 23:13:56 +00:00
Brian Barrett
7c9bae5eb7 need to protect these includes as well...
This commit was SVN r14912.
2007-06-06 16:25:18 +00:00
Shiqing Fan
efa74f7bfe The label name "ERROR" is defined as a flag in Visual Studio platformSDK. Using "ERROR" as a label causes conflicts. Changing it into lowercase will solve the problem.
This commit was SVN r14869.
2007-06-05 14:32:27 +00:00
Brian Barrett
644708a4b4 For modern MACOSX_DEPLOYMENT_TARGETs, allow the Fortran 90 bindings to be
built as shared libraries.

This commit was SVN r14859.
2007-06-05 04:04:44 +00:00
Brian Barrett
beb6dd1924 Include the C++ bindings from mpi.h in a way that doesn't require an extra
-I for ${includedir}/openmpi.  Solves many problems, and with just a tad
bit of hackery.  Don't know why I didn't just do this earlier.

Refs trac:542

This commit was SVN r14853.

The following Trac tickets were found above:
  Ticket 542 --> https://svn.open-mpi.org/trac/ompi/ticket/542
2007-06-05 01:42:47 +00:00
Rainer Keller
43ce11d578 - Fortran 90 standard requires no name at:
end interface
   (ifort complains, pgf90 chokes on it).

This commit was SVN r14785.
2007-05-29 15:37:44 +00:00
Rainer Keller
c8668ef83f - Get rid of unused variables / set but never used warnings.
This commit was SVN r14762.
2007-05-24 18:57:51 +00:00
Ralph Castain
fa5a40070d Test the return status code from comm_dyn_start_processes - if we see an error, then let's report it and not continue on with the comm_spawn procedure!
This commit was SVN r14699.
2007-05-18 20:22:32 +00:00
Jeff Squyres
86f48bf0d7 Fix ordering of dimensions for status arrays. Thanks to Randy Bramley
for noticing the problem.

This commit was SVN r14591.
2007-05-05 05:02:02 +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
Sven Stork
fe3b08004e - export symbols that are needed by the fortran libs
This commit was SVN r14527.
2007-04-26 09:34:41 +00:00
Mohamad Chaarawi
bfaf9d4a12 Added new module for intercomm collectives. This will require an
autogen.

This commit was SVN r14149.
2007-03-27 02:06:42 +00:00
Jeff Squyres
3e2031e0e3 Finally commit something that has been sitting around in one of my
development trees since last year (had to wait for some intel tests to
run yesterday, so I finally took the time to finish this work):

 * Improve MPI API argument checking by also checking for NULL values
   (especially helps when invalid Fortran MPI handles are passed,
   because the various MPI_*f2c functions are supposed to return an
   "invalid" MPI handle [meaning NULL] when this happens).  So now
   OMPI will generate an MPI exception rather than a segv.
 * Removed a few redundant DATATYPE_NULL checks.
 * Also check for some other forms of "invalid" handles (e.g., already
   been freed, etc.) in some cases.  We could probably be a bit more
   stringent in this regard if we really wanted to.
 * Change MPI_Get_processor_name to zero out the string up to
   MPI_MAX_PROCESSOR_NAME characters, because the MPI spec says that
   the string must be at least that long.  We were already passing
   that length to gethostname(), anyway.

This commit was SVN r14100.
2007-03-21 11:10:42 +00:00
Josh Hursey
dadca7da88 Merging in the jjhursey-ft-cr-stable branch (r13912 : HEAD).
This merge adds Checkpoint/Restart support to Open MPI. The initial
frameworks and components support a LAM/MPI-like implementation.

This commit follows the risk assessment presented to the Open MPI core
development group on Feb. 22, 2007.

This commit closes trac:158

More details to follow.

This commit was SVN r14051.

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

The following Trac tickets were found above:
  Ticket 158 --> https://svn.open-mpi.org/trac/ompi/ticket/158
2007-03-16 23:11:45 +00:00
Jeff Squyres
266e805427 * Update parameter checking per MPI-1:2.4.1 and MPI-1:5.4.1 -- also
return an error if MPI_COMM_NULL is used.  
 * Minor style fixes.

This commit was SVN r14041.
2007-03-16 13:09:49 +00:00
Brian Barrett
e926bed69f Implement MPI_TYPE_CREATE_DARRAY function. Works with MPICH2 darray-pack
test, Sun's darray test, and an internal LANL test code.  I would not
assume it will work properly on other codes, as I'm still not sure I
completely understand what the standard says this function is supposed to
do.

Refs trac:65

This commit was SVN r13967.

The following Trac tickets were found above:
  Ticket 65 --> https://svn.open-mpi.org/trac/ompi/ticket/65
2007-03-08 16:33:08 +00:00
George Bosilca
4b63631535 Allow correct duplication for MPI_UB and MPI_LB. The problem is that we cannot
create a duplicate type, because any duplicate type lose the PREDEFINED flag.
An MPI_LB (respectively MPI_UB) without the PREDEFINED tag is useless, as it's
not the a marker anymore. The solution is to return the same pointer, but once
the reference count has been increased. In order for this to work, I allowed
the destruction to check for the reference count of an object before complaining
about destroying a predefined type.

This fixed ticket #317.

This commit was SVN r13942.
2007-03-06 18:21:49 +00:00
Tim Prins
74555cda51 - Re-enable MPI_Comm_spawn_multiple from singletons. It has been working for a while, but the check was never removed.
- Coding standardize some code
- Remove now unused help message

This commit was SVN r13858.
2007-02-28 22:09:30 +00:00
Jeff Squyres
b7b893b771 Need to EXTRA_DIST README.txt so that it gets included in the tarball;
the *_DATA files are not automatically picked up for inclusion into
the tarball.

This commit was SVN r13667.
2007-02-15 16:21:25 +00:00
Jeff Squyres
dd35fb73ff * Fix some "MPI:Exception" typos (needs 2 :'s)
* Update exactly how we handle MPI exceptions, particularly with
   respect to MPI-1 section 3.2.5, and how error handlers are only
   invoked for the ''first'' request that generates an exception.
 * Update the "see also" section to be consistent across all 8
   MPI_Test* and MPI_Wait* functions.
 * Fixes trac:560

This commit was SVN r13619.

The following Trac tickets were found above:
  Ticket 560 --> https://svn.open-mpi.org/trac/ompi/ticket/560
2007-02-12 18:08:42 +00:00
Jeff Squyres
260f1fd468 Fixes trac:817
The C++ bindings were not tracking keyvals properly -- they were
freeing some internal meta data when Free_keyval() was called, not
when the keyval was actually destroyed (keyvals are refcounted in the
C layer, just like all other MPI objects, because they can live for
long after their corresponding Free call is invoked).  This commit
fixes this problem and several other things:

 * Add infrastructure on the ompi_attribute_keyval_t for an "extra"
   destructor pointer that will be invoked during the "real"
   constructor (i.e., when OBJ_RELEASE puts the refcount to 0).  This
   allows calling back into the C++ layer to release meta data
   associated with the keyval.
 * Adjust all cases where keyvals are created to pass in relevant
   destructors (NULL or the C++ destructor).
 * Do essentially the same for MPI::Comm, MPI::Win, and MPI:Datatype:
   * Move several functions out of the .cc file into the _inln.h file
     since they no longer require locks
   * Make the 4 Create_keyval() functions call a common back-end
     keyval creation function that does the Right Thing depending on
     whether C or C++ function pointers were used for the keyval
     functions.  The back-end function does not call the corresponding
     C MPI_*_create_keyval function, but rather does the work itself
     so that it can associate a "destructor" callback for the C++
     bindings for when the keyval is actually destroyed.
   * Change a few type names to be more indicative of what they are
     (mostly dealing with keyvals [not "keys"]).
 * Add the 3 missing bindings for MPI::Comm::Create_keyval().
 * Remove MPI::Comm::comm_map (and associated types) because it's no
   longer necessary in the intercepts -- it was a by-product of being
   a portable C++ bindings layer.  Now we can just query the C layer
   directly to figure out what type a communicator is.  This solves
   some logistics / callback issues, too.
 * Rename several types, variables, and fix many comments in the
   back-end C attribute implementation to make the names really
   reflect what they are (keyvals vs. attributes).  The previous names
   heavily overloaded the name "key" and were ''extremely''
   confusing.

This commit was SVN r13565.

The following Trac tickets were found above:
  Ticket 817 --> https://svn.open-mpi.org/trac/ompi/ticket/817
2007-02-08 23:50:04 +00:00
George Bosilca
eaa164d52f Don't check for the DT_FLAG_DATA. It is never set. This was intended to be
a protection against creating subarrays with MPI_LB and MPI_UB. But, I don't
think the MPI standard state anything about this.

This commit was SVN r13504.
2007-02-06 03:58:24 +00:00
Karen Norteman
410f657d07 Fixes trac:876
This commit was SVN r13502.

The following Trac tickets were found above:
  Ticket 876 --> https://svn.open-mpi.org/trac/ompi/ticket/876
2007-02-05 22:26:02 +00:00
Terry Dontje
244fb76002 This commit fixes trac:856.
This commit was SVN r13464.

The following Trac tickets were found above:
  Ticket 856 --> https://svn.open-mpi.org/trac/ompi/ticket/856
2007-02-02 12:48:26 +00:00
Karen Norteman
59cc09fd1a Fixes trac:850, updates man pages
This commit was SVN r13456.

The following Trac tickets were found above:
  Ticket 850 --> https://svn.open-mpi.org/trac/ompi/ticket/850
2007-02-01 21:57:48 +00:00
Karen Norteman
4dc71969b1 trac bug 850
This commit was SVN r13452.
2007-02-01 21:29:06 +00:00
Karen Norteman
f545127e7d trac bug 850
This commit was SVN r13451.
2007-02-01 21:28:22 +00:00
Karen Norteman
984d764259 trac bug 850
This commit was SVN r13450.
2007-02-01 21:27:38 +00:00
Karen Norteman
8dd7e175cd trac bug 850
This commit was SVN r13449.
2007-02-01 21:26:59 +00:00
Karen Norteman
47a3f7f760 trac bug 850
This commit was SVN r13448.
2007-02-01 21:26:18 +00:00
Karen Norteman
40eeeaef39 trac bug 850
This commit was SVN r13447.
2007-02-01 21:25:35 +00:00
Karen Norteman
e304eec9dc trac bug 850
This commit was SVN r13446.
2007-02-01 21:24:37 +00:00
Karen Norteman
8a627e8957 trac bug 850
This commit was SVN r13445.
2007-02-01 21:23:54 +00:00
Karen Norteman
25b153848d trac bug 850
This commit was SVN r13444.
2007-02-01 21:23:13 +00:00
Karen Norteman
0c30c74b0a trac bug 850
This commit was SVN r13443.
2007-02-01 21:22:34 +00:00
Karen Norteman
7a60f878a9 trac bug 850
This commit was SVN r13442.
2007-02-01 21:21:43 +00:00
Karen Norteman
11b91057ec trac bug 850
This commit was SVN r13441.
2007-02-01 21:21:00 +00:00
Karen Norteman
180ff99233 trac bug 850
This commit was SVN r13440.
2007-02-01 21:20:14 +00:00
Karen Norteman
a8b066798a trac bug 850
This commit was SVN r13439.
2007-02-01 21:19:08 +00:00
Karen Norteman
e13398b68d trac bug 850
This commit was SVN r13438.
2007-02-01 21:16:43 +00:00
Karen Norteman
cea22389bb trac bug 850
This commit was SVN r13437.
2007-02-01 21:15:43 +00:00
Pak Lui
01c45b9637 * should fix the uninitialized function pointers. This is the patch to the
patch in r13391

This commit was SVN r13411.

The following SVN revision numbers were found above:
  r13391 --> open-mpi/ompi@289fbd08de
2007-02-01 05:07:53 +00:00
Pak Lui
289fbd08de * Fix the MPI::Datatype::Create_keyval() & MPI::Win::Create_keyval()
not being able to take C function pointers for either of the 
	copy or the delete fn. Fix by overloading the Create_keyval methods. 
    Fix trac #737, #738. Reviewed by jsquyres.
  *	A couple of cxx tests in ompi-tests (winkeyval.cc & typekeyval.cc) 
	will be re-enabled to regression test for this fix.

This commit was SVN r13391.
2007-01-31 15:00:41 +00:00
Jeff Squyres
a45e8bea05 Fixes trac:830. Put in argument checking for MPI_INIT_THREAD.
This commit was SVN r13353.

The following Trac tickets were found above:
  Ticket 830 --> https://svn.open-mpi.org/trac/ompi/ticket/830
2007-01-29 21:56:15 +00:00
Jeff Squyres
61bc9fed3c Duh. Free the temp array when we're done with it. While we're making
this switch, use a clear variable name, too.

This commit was SVN r13347.
2007-01-29 19:04:57 +00:00
Jeff Squyres
e6a0069e95 Fix from an as-yet uncommitted test that Pak will commit shortly.
Found another places that we were incorrectly casting a C++ MPI handle
array to the corresponding C array type and hoping for the best (which
won't work at all).  This commit fixes things so that we now do the
proper conversion between C<-->C++ handles.

This commit was SVN r13346.
2007-01-29 18:44:46 +00:00
Rainer Keller
ca35881cd0 - Minor bugfixes and removed compiler warnings
This commit was SVN r13343.
2007-01-28 19:52:09 +00:00
Jeff Squyres
b9120aed6d Always make sure to create $(includedir)/openmpi, even if we were
configured with --disable-mpi-cxx so that the default -I flags in the
wrapper compilers don't point to a directory that doesn't exist.
Thanks to Martin Audet for identifying the problem.

This commit was SVN r13296.
2007-01-25 01:59:22 +00:00
Rainer Keller
3f397f3848 - Do not convert the cart_comm -- its intent is out.
This commit was SVN r13224.
2007-01-21 13:00:23 +00:00
Rainer Keller
125ba1acfa - Reduce the amount of warnings with -Wshadow -- mainly due to
usage of index and abs in inline-fcts in header files.

This commit was SVN r13217.
2007-01-19 19:48:06 +00:00
Rolf vandeVaart
6a260e4a9a Fix two problems. For MPI_Buffer_detach, do not attempt to
return the buffer address from Fortran. It is not expected
behavior.  For MPI_Buffer_attach, adjust the address of
the buffer handed in so it is always aligned.  

Refs trac:750
Buffer detach reviewed by Jeff Squyres
Buffer attach alignment reviewed by George Bosilca

This commit was SVN r13205.

The following Trac tickets were found above:
  Ticket 750 --> https://svn.open-mpi.org/trac/ompi/ticket/750
2007-01-18 23:32:39 +00:00
Jeff Squyres
53c4bcccd5 Fix a problem noted by Tim Campbell: the type of the first parameter
to the F90 binding for MPI_INITIALIZED was wrong (should have been
logical, not integer).

Fixes trac:782.

This commit was SVN r13170.

The following Trac tickets were found above:
  Ticket 782 --> https://svn.open-mpi.org/trac/ompi/ticket/782
2007-01-17 22:44:47 +00:00
Jeff Squyres
a3aae09ca3 Since we've found a few MPI_Fint/MPI_Aint problems in the F77 bindings
recently, I went through and took a closer look this afternoon and
fixed a bunch more places where this problem occurred.

This commit was SVN r13166.
2007-01-17 22:17:34 +00:00
Jeff Squyres
9073b9cd3c Ensure to use datatype_index consistently. Only a problem for
compilers where the MPI_Fint representation is not the same as int,
but still...

This commit was SVN r13141.
2007-01-17 12:34:30 +00:00
Brian Barrett
32bdc47816 Fix a number of places where MPI_Fint was used where the standard specifies
MPI_Aint.  On 64-bit big endian machines, these can have some unpleasent
issues.

Refs trac:734

This commit was SVN r13140.

The following Trac tickets were found above:
  Ticket 734 --> https://svn.open-mpi.org/trac/ompi/ticket/734
2007-01-17 06:41:53 +00:00
Jeff Squyres
fbeaf0919d Fixes trac:732.
The 2nd parameter in MPI_WIN_CREATE is actually an address integer,
not a regular integer.  The F77 prototype for this function was wrong,
causing Bad Things on some 64 bit platforms (on other 64 bit
platforms, we just got lucky).

This commit was SVN r13133.

The following Trac tickets were found above:
  Ticket 732 --> https://svn.open-mpi.org/trac/ompi/ticket/732
2007-01-16 22:22:08 +00:00
Brian Barrett
ba8c8ce92c Improve checking of origin and target datatypes when using MPI_ACCUMULATE
to pass some of the tests provided by Sun.  These will, of course, greatly
slow down calls to MPI_ACCUMULATE, but there's no way to pass the test
suite without them :/.

Refs trac:760

This commit was SVN r13117.

The following Trac tickets were found above:
  Ticket 760 --> https://svn.open-mpi.org/trac/ompi/ticket/760
2007-01-14 21:42:25 +00:00
George Bosilca
53d87897c8 Once we start the C requests we have to put back their f_to_c index
in the fortran array, as we might get new C requests from the startall
function.

This commit was SVN r13079.
2007-01-11 08:39:42 +00:00
Pak Lui
ff1dd4f16d * fixes ticket #730 for supporting both of the pre-errata argument set and
post-errata argument set of MPI::Win::Get_attr

This commit was SVN r13063.
2007-01-10 16:41:21 +00:00
Pak Lui
de51464aad * fix #730 for removing an extra argument from MPI::Win::Get_attr as being
corrected in the MPI 2.0 errata.
 * initialized some variables to make our sensitive sun compiler not to 
   not warn about them when user apps are compiling.

This commit was SVN r13058.
2007-01-09 23:48:39 +00:00
George Bosilca
e72b0c1044 Some compilers (VC) don't like conversions between int and bool.
This commit was SVN r13043.
2007-01-08 22:00:49 +00:00
Jeff Squyres
1bdf883277 Oops --- don't need those header files.
This commit was SVN r13000.
2007-01-05 00:08:16 +00:00
Jeff Squyres
fc3637a7c6 Take out the checks for NULL and STATUS[ES]_IGNORE -- it turns out
that a) STATUS[ES]_IGNORE *is* NULL, and b) ROMIO blindly sends its
status through to STATUS_SET_ELEMENTS, even if the status is IGNORE.
So we have some legal cases where IGNORE can be passed through here.

Well, that's what we get for trying to do good error checking.  :-(

This commit was SVN r12999.
2007-01-04 23:03:36 +00:00
Jeff Squyres
75df4ca602 Minor fixes for MPI-level aborting:
- Fix some fpritnf's in ompi_mpi_abort() that incorrectly assumed that
  we were always being invoked from MPI_ABORT (ompi_mpi_abort() may be
  invoked from a bunch of different places)
- Also try to opal_backtrace_print() if opal_bactrace_buffer() is not
  supported. 
- Print a message in MPI_ABORT if we're aborting.

This commit was SVN r12998.
2007-01-04 22:30:28 +00:00
Jeff Squyres
ea2d49e55d Because of r12712, we actually need to allocate one ''more'' item than
the value of __n holds.  This is not a problem in the first case
because sizeof(int) == sizeof(MPI_Flogical), so no alloc is actually
performed (which is most compilers, and why we haven't been bitten by
this yet).  But the second case -- where sizeof(int) !=
sizeof(MPI_Flogical) -- is definitely a problem and needs the "+1" in
the alloc, or Bad Things will happen.

This commit was SVN r12953.

The following SVN revision numbers were found above:
  r12712 --> open-mpi/ompi@3e11c76d4c
2007-01-02 16:16:29 +00:00
Brian Barrett
1ba97181dc A number of MPI-2 compliance fixes for the C++ bindings:
* Added Create_errhandler for MPI::File
  * Make errors_throw_exceptions a first-class predefined exception
    handler, and make it work for Comm, File, and Win
  * Deal with error handlers and attributes for Files, Types, and Wins
    like we do with Comms - can't just cast the callbacks from C++
    signatures to C signatures.  Callbacks will then fire with the
    C object, not the C++ object.  That's bad.

Refs trac:455

This commit was SVN r12945.

The following Trac tickets were found above:
  Ticket 455 --> https://svn.open-mpi.org/trac/ompi/ticket/455
2006-12-30 23:41:42 +00:00
Edgar Gabriel
dc532577db Adding more accurate checking of the input parameters for the
add_error_class and add_error_code files. Also fixed the update of the
lastusedcode attribute, all of work according to my tests pretty fine.

Please note: the testcode attached to the bug 683 still reports some bugs. I
am however pretty sure that the testcode is wrong at that points:
 - the standard says that the attribute MPI_LASTUSEDCODE has to be updated for
 a new error_class or a new error_code. The test currently assumes, that only
 the add_error_code call changes the attribute value.
 - you have to comment out the two lines 73 and 74 in order to make the
 test finish, since these lines check for the error string of non-existent
 codes.
- line 126 the error-string of MPI_ERR_ARG is not "invalid argument" but a
little bit more, so the test thinks the output is wrong. So probably the test
has to be update to match the according error string of MPI_ERR_ARG.

Fixes trac:682

This commit was SVN r12913.

The following Trac tickets were found above:
  Ticket 682 --> https://svn.open-mpi.org/trac/ompi/ticket/682
2006-12-21 19:36:31 +00:00
Rainer Keller
b99e5a71d1 - Help message in case of MPI-application with two init or
calling init functions after finalize.

This commit was SVN r12858.
2006-12-14 19:58:04 +00:00
Dan Lacher
e3f749acc4 Ticket: #673
Submitted by: Dan Lacher

This commit was SVN r12844.
2006-12-13 20:01:16 +00:00
Jeff Squyres
c7282855e7 Fixes trac:659
This commit fixes several aspects regarding MPI conformance of requests.

 * Eliminate the last argument of ompi_errhandler_request_invoke(); we
   ''always'' want to invoke the back-end exception handler with the
   real error code.
 * Make it clear in comments that we only invoke the ''first''
   exception in a given array of requests, even if there's more than
   one request with a non-MPI_SUCCESS value for MPI_ERROR.
 * Defer the freeing of requests upon exception in the back-end
   functions to MPI_WAIT* and MPI_TEST* until later; the requests are
   kept so that we know what handler to invoke when we actually invoke
   the exception.  After figuring that out, ''then'' we free requests
   with pending exceptions on them.
 * Clean up return codes from the back-end MPI_TEST* and MPI_WAIT*
   functions.
 * Slightly modify ompi_errcode_get_mpi_code() to return unity if it
   receives an MPI error code (vs. an OMPI error code).

This commit was SVN r12810.

The following Trac tickets were found above:
  Ticket 659 --> https://svn.open-mpi.org/trac/ompi/ticket/659
2006-12-09 14:20:08 +00:00
Edgar Gabriel
1359ba9b13 Rewriting much of the errorcode and errorclass code, since
- we have to be able to attach a string to an error class, not just to an
 error code
 - according to MPI-2 the attribute MPI_LASTUSEDCODE has to be updated
  everytime you add a new code or a new class. Thus, you have to have single
  list for both. 

Thus, we got rid of the error_class structure. In the error-code structure, we
can distinguish whether we are dealing with an error code or an error class by
looking at the err->code element of the structure. In case its value is
MPI_UNDEFINED, the according entry is a class, else it is an error code. All
predefined error codes have the code and the class field set to the same
value.

The test MPI_Add_error_class1 passes now.

Fixes trac:418

This commit was SVN r12764.

The following Trac tickets were found above:
  Ticket 418 --> https://svn.open-mpi.org/trac/ompi/ticket/418
2006-12-05 19:07:02 +00:00
Brian Barrett
657168a74c A couple of Window related error handling cleanups:
* Always invoke the error handler on MPI_COMM_WORLD for
    invalid windows (except in win_create, which should 
    instead be on the given communicator).
  * Allow get_errhandler in addition to set_errhandler
    on MPI_WIN_NULL

Refs trac:647

This commit was SVN r12718.

The following Trac tickets were found above:
  Ticket 647 --> https://svn.open-mpi.org/trac/ompi/ticket/647
2006-12-01 20:05:06 +00:00
Bill D'Amico
3e11c76d4c Fixes trac:482
OMPI_ARRAY_INT_2_LOGICAL had an array bounds error - fixed this and the
analogous error in OMPI_ARRAY_LOGICAL_2_INT.

This commit was SVN r12712.

The following Trac tickets were found above:
  Ticket 482 --> https://svn.open-mpi.org/trac/ompi/ticket/482
2006-11-30 19:48:18 +00:00
Jeff Squyres
384caeacf4 More fixes similar to r12684 -- fix bad lvalues in assignments for the
case where sizeof(INTEGER) > sizeof(int).

This commit was SVN r12707.

The following SVN revision numbers were found above:
  r12684 --> open-mpi/ompi@e2c605f32a
2006-11-30 16:41:56 +00:00
Jeff Squyres
e2c605f32a Fix a problem cited by Pierre-Matthieu Anglade: some typos in the code
path in the MPI F77 API functions where sizeof(int) != sizeof(INTEGER).

This commit was SVN r12684.
2006-11-28 12:21:42 +00:00
Brian Barrett
63e5668e29 Number of one-sided fixes:
* use one-sided datatype check instead of send/receive and check both
    the origin and target datatypes
  * allow error handler to be set on MPI_WIN_NULL, per standard
  * Allow recursive calls into the pt2pt osc component's progress
    function
  * Fix an uninitialized variable problem in the unlock header

This commit was SVN r12667.
2006-11-27 03:22:44 +00:00
Jeff Squyres
922f335678 Fixes trac:624
Ensure that the new predefined MPI-2 attribute callback functions take
the proper types (INTEGER, kind=MPI_ADDRESS_KIND instead of just
INTEGER).

This commit was SVN r12639.

The following Trac tickets were found above:
  Ticket 624 --> https://svn.open-mpi.org/trac/ompi/ticket/624
2006-11-21 13:54:13 +00:00
Jeff Squyres
8a08b092f6 Check to see if we need to do anything. If we don't (i.e., if all the
rcounts are 0), then just return MPI_SUCCESS.

This commit was SVN r12525.
2006-11-09 23:21:34 +00:00
Jeff Squyres
0a28212392 This is a workaround to bug in the Intel C++ compiler, version 9.1
(all versions up to and including 20060925).  The issue has been
reported to Intel, along with a small [non-MPI] test program that
reproduces the problem (the test program and the OMPI C++ bindings
work fine with Intel C++ 9.0 and many other C++ compilers).

In short, a static initializer for a global variable (i.e., its
constructor is fired before main()) that takes as an argument a
reference to a typedef'd type will simply get the wrong value in the
argument.  Specifically:

{{{
namespace MPI {
    Intracomm COMM_WORLD(MPI_COMM_WORLD);
}
}}}

The constructor for MPI::Intracomm should get the value of
&ompi_mpi_comm_world.  It does not; it seems to get a random value.

As mandated by MPI-2, annex B.13.4, for C/C++ interoperability, the
prototype for this constructor is:

{{{
class Intracomm {
public:
    Intracomm(const MPI_Comm& data);
};
}}}

Experiments with icpc 9.1/20060925 have shown that removing the
reference from the prototype makes it work (!).  After lots of
discussions about this issue with a C++ expert (Doug Gregor from IU),
we decided the following (cut-n-paste from an e-mail):

-----
> So here's my question: given that OMPI's MPI_<CLASS> types are all
> pointers, is there any legal MPI program that adheres to the above
> bindings that would fail to compile or work properly if we simply
> removed the "&" from the second binding, above?

I don't know of any way that a program could detect this change. FWIW,
the C++ committee has agreed that implementation of the C++ standard
library are allowed to decide arbitrarily between const& and by-value.
If they don't care, MPI users won't care.

When you remove the '&', I suggest also removing the "const". It is
redundant, but can trigger some strange name mangling in Sun's C++
compiler.
-----

So with this change:

 * we now work again with the Intel 9.1 compiler
 * our C++ bindings do not exactly conform to the MPI-2 spec, but
   valid/legal MPI C++ apps cannot tell the difference (i.e., the
   functionality is the same)

This commit was SVN r12514.
2006-11-09 17:34:12 +00:00
George Bosilca
eab1776e9a Explicit casts for our friendly Windows environment...
This commit was SVN r12496.
2006-11-08 17:02:46 +00:00
Jeff Squyres
31e8f510fe After review with Rolf, decided to be a bit more safe and instead of
assigning status._cancelled, call MPI_STATUS_SET_CANCELLED.

This commit was SVN r12471.
2006-11-07 20:49:31 +00:00
Jeff Squyres
25dab9700f * Add some error checking to GET_ELEMENTS and STATUS_SET_CANCELLED
* Move the check for STATUS_IGNORE in STATUS_SET_ELEMENTS up into the
   error checking block

This commit was SVN r12460.
2006-11-07 02:47:35 +00:00
Jeff Squyres
6e1729cb93 Fixes trac:580
* Add MPI::Status methods Set_elements() and Set_cancelled()
 * Added a bunch of comments in various places in the MPI C++ bindings
   implementatio just to explain what's going on (because C++ can hide
   a lot from you)
 * Insert C++ callbacks for the MPI_Grequest callback functions
   registered by MPI::Grequest::Start().  These callbacks keep a
   little meta-data (created by Grequest::Start()) that allow the
   proper callback signatures from C (i.e., from ompi_grequest_<foo>()
   in libmpi.a -- C code), translate arguments as required, and then
   invoke the callbacks with proper C++ signatures (i.e., call
   user-defined callbacks with C++ function signatures).

This commit was SVN r12446.

The following Trac tickets were found above:
  Ticket 580 --> https://svn.open-mpi.org/trac/ompi/ticket/580
2006-11-06 18:42:00 +00:00
Jeff Squyres
bc93583184 Fix the SIZEOF implementation for complex's. We want to output the
size of the complex type as determined by configure; not the size of
the next larger complex type (i.e., a complex*N is 2 real*(N/2)'s, not
2 real*N's).

This commit was SVN r12421.
2006-11-03 15:52:46 +00:00
Jeff Squyres
431f940a52 Fixes trac:496
* Add some more error checking to GREQUEST_START
 * Move the error checking in GREQUEST_COMPLETE up to inside the
   MPI_PARAM_CHECK block, where it belongs
 * Invoke the gen request query_fn in all the Right spots (per MPI-2:8.2)
 * Distinguish between grequests created from C and Fortran
 * Use the OBJ system to reference count to release the grequest at
   the Right time and invoke the grequest free_fn properly (see
   lengthy comment in grequest.c above the destructor)
 * Have ompi_grequest_complete() call ompi_request_complete() rather
   than [poorly] copy the contents of ompi_request_complete()
 * Fix Fortran function callback pointer typedefs to use proper
   Fortran types
 * Edit ompi_request_test* and ompi_request_wait* to properly handle
   generalized requests.  This adds an "if" statement in the critical
   path for all the back-end test* and wait* functions :-(,
   but fortunately George took out two "if" statements from the
   critical path last week.  So we're still ahead.  :-)
 * Move ompi_request_test() out of request.h and into request.c (all
   other test* and wait* functions were already in the .c file -- and
   ompi_request_test() was too long to be statically inlined anyway)

This commit was SVN r12402.

The following Trac tickets were found above:
  Ticket 496 --> https://svn.open-mpi.org/trac/ompi/ticket/496
2006-11-02 03:34:53 +00:00
Jeff Squyres
2f936c4597 Fixes trac:549
Had group discussion about this on the weekly call.  The decision was
that we should pass the real error code to the back-end exception
handler because it's pretty useless to pass MPI_ERR_IN_STATUS to the
back-end exception handler (because exception handlers don't have
access to the request or the status - this has potential issues for
fault tolerance kinds of scenarios).  So in TESTALL, TESTSOME,
WAITALL, and WAITSOME, we examine the error code and if it's not
MPI_SUCCESS, return MPI_ERR_IN_STATUS.

This commit was SVN r12389.

The following Trac tickets were found above:
  Ticket 549 --> https://svn.open-mpi.org/trac/ompi/ticket/549
2006-11-01 19:31:43 +00:00
George Bosilca
a711a58410 Add a function to handle the MPI_Status_set_elements correctly. The current
implementation was just wrong !!!

This commit was SVN r12380.
2006-10-31 23:02:42 +00:00
Jeff Squyres
63155bca09 Refs trac:496
Have no idea why this function always returns a failure.  It should
always return SUCCESS (provided the status is value).

This commit was SVN r12364.

The following Trac tickets were found above:
  Ticket 496 --> https://svn.open-mpi.org/trac/ompi/ticket/496
2006-10-30 22:44:23 +00:00