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

465 Коммитов

Автор SHA1 Сообщение Дата
ae47cbfe02 Accept an array of request set to NULL if the count is set to ZERO.
This commit was SVN r9504.
2006-03-31 20:32:56 +00:00
711b30fbac - introduction of user buffer checking for pt2pt operations
This commit was SVN r9449.
2006-03-29 09:26:27 +00:00
85bb1a9c90 Add one more argument to the copy functions for the MPI objects. As this argument
is the last one on the list and as on C the caller "make it right" this addition
will not affect the way we handle the user defined copy functions. Only the C
version of the function has this additional parameter. As it represent the pointer
to the newly created MPI object It hold the key to allow us to modify the new
object (communicator, window or type) depending on some key stored on the initial
communicator.

This commit was SVN r9371.
2006-03-23 04:47:14 +00:00
bd870519fd - modified convertor copy_and_prepare routines to accept an addition
flag, new flags to be included when convertor is initialized
- modified pml/btl module defs and added stub functions for diagnostic
  output routines to dump state of queues / endpoints
- updates to data reliability pml

This commit was SVN r9329.
2006-03-17 18:46:48 +00:00
b8c9adc833 checking of multiply included/excluded processes in
group_range_incl/excl has now been separated from the implementation.

This commit was SVN r9311.
2006-03-16 17:51:16 +00:00
a8144cca8d - Fix the return codes -- not OMPI, but MPI..
- Use the datatype-checks of bindings.h within recv.
   However, for the time being disable the check for overlapped,
   as it is not correctly set.

This commit was SVN r9298.
2006-03-16 09:42:46 +00:00
d19e924ca8 gcc print out: warning: ISO C90 forbids mixed declarations and code.
This commit was SVN r9283.
2006-03-14 22:27:19 +00:00
c5a8870f6b move the implementation of the group creation functions into according back-end
functions. 

This commit was SVN r9281.
2006-03-14 21:01:46 +00:00
679ccbcac7 Correctly handle the MPI_STATUSES_IGNORE, and trigger the MPI error handler and return the
same error code.

This commit was SVN r9206.
2006-03-06 16:59:46 +00:00
ca116e3cf3 Where we create a duplicate data-type for the get_content MPI function we have to attach the
args from the old data-type. As this args are only read-only, I don't want to have several
copies around, so I add a reference count to them and simply attach them to the new
datatype. The args array now get freed only when the last reference dissapear.

This commit was SVN r9191.
2006-03-03 20:51:36 +00:00
8568bb9892 - Allow MPI_ERRCODES_IGNORE when checking is on.
This commit was SVN r9180.
2006-02-28 10:16:42 +00:00
d5e0ea3590 * Post and Start should only check their epoch types for conflicts, otherwise
you can't be in a post and a start at the same time, and that is clearly
  legal to do
* Fix interptretation of when the epochs start for MPI_Fence.  Only start
  an epoch if communication actually occurs, otherwise it isn't actually
  an epoch.  I don't know who thought that wording in the MPI standard
  was a good idea, but can't change it now...

This commit was SVN r9139.
2006-02-24 13:04:15 +00:00
27b8430e8f * update MPI_ACCUMULATE to perform it's parameter checking based on what
MPI-2:6.3.4 says about reduction operations
* Have the point-to-point one-sided component spew a warning and return
  an error if a non-predefined datatype is used with an MPI_OP other
  than MPI_REPLACE.  Yes, this violates the MPI standard, but it's the
  best we can do until George and I implement support for figuring out
  where all the locations to update are..

This commit was SVN r9134.
2006-02-23 21:07:49 +00:00
8f7311becd Fix a few copy-n-paste errors: when an op is invalid, invoke the MPI
exception on the passed communicator, not MPI_COMM_WORLD.

This commit was SVN r9105.
2006-02-21 19:11:40 +00:00
889aeeddb2 * clean up the error checking a bit - user defined datatypes are allowed for
MPI_OP_REPLACE.  All other rules are basically the same as MPI_Reduce, so
  use that helper function.

This commit was SVN r9104.
2006-02-21 19:00:49 +00:00
0bc3cbf0db Corrections to pml_dr, now passes intel test suite (p2p_c).
Note, the checksums are not enabled currently, setting to zero as the
convertor is not ready for checksums yet. 

Also, we can't call unpack/pack on convertor with 0 bytes, otherwise it
crashes. 

This commit was SVN r9062.
2006-02-16 16:15:16 +00:00
c674c165fd - Fix final check in TYPE_CREATE_F90_INTEGER
- Add more checks on the params to ensure that the user conformed to
  MPI-2 (i.e., can have MPI_UNDEFINED for p *or* r in the real/complex
  functions, but not both)
- Always return MPI_ERR_ARG, not MPI_ERR_OTHER -- seems to make a
  little more sense here, since any errors that are returned are
  solely because of the arguments that were passed into the function

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

This commit was SVN r8985.
2006-02-12 01:33:29 +00:00
9c1547373d Match the latest changes in the datatype engine.
This commit was SVN r8967.
2006-02-10 21:06:15 +00:00
ec7b60d501 * Fix some error checking code for Lock / Unlock at the MPI layer
* Implement win_lock and win_unlock in the pt2pt component.  Not well
  tested, but appears to move bits if properly motivated...

This commit was SVN r8922.
2006-02-07 18:45:18 +00:00
e20265bd2b Dont let any external to the data-type code check directly for the predefined
data-types. Instead, use the newly provided data-type function ompi_ddt_is_predefined..

This commit was SVN r8903.
2006-02-06 18:01:45 +00:00
514e58c49a * pass an ompi_win_t, not an ompi_win_t*
This commit was SVN r8866.
2006-01-31 23:08:26 +00:00
44a516d966 * Clean up error checking in the MPI interface for MPI-2 onesided
* Implement fortran handle -> c handle tracking
* Remove some unneeded locking around free lists (the free list
  macros do their own locking)
* Try to be a bit more memory friendly with the w_mode setting /
  checking

This commit was SVN r8865.
2006-01-31 21:40:12 +00:00
0d507ad970 * Fix a bunch of checks for proper access / exposure epochs
* Add implementation of Post/Wait/Start/Complete synchronization

This commit was SVN r8848.
2006-01-31 02:44:08 +00:00
b1d2424013 Merge in present work on the MPI-2 onesided chapter. The current code is not
complete, but stable enough that it will have no impact on general development,
so into the trunk it goes.  Changes in this commit include:

 - Remove the --with option for disabling MPI-2 onesided support.  It
   complicated code, and has no real reason for existing
 - add a framework osc (OneSided Communication) for encapsulating
   all the MPI-2 onesided functionality
 - Modify the MPI interface functions for the MPI-2 onesided chapter
   to properly call the underlying framework and do the required
   error checking
 - Created an osc component pt2pt, which is layered over the BML/BTL
   for communication (although it also uses the PML for long message
   transfers).  Currently, all support functions, all communication
   functions (Put, Get, Accumulate), and the Fence synchronization
   function are implemented.  The PWSC active synchronization
   functions and Lock/Unlock passive synchronization functions are
   still not implemented

This commit was SVN r8836.
2006-01-28 15:38:37 +00:00
9b2c23bead - Do additional checks in case of MPI_PARAM_CHECK for NULL pointers.
This commit was SVN r8487.
2005-12-13 08:13:13 +00:00
a46d0d3801 Add support to Open MPI for MPI_Register_datarep, as ROMIO now has support for the
functionality.  This is a global registration, so all components have to be made
aware of the registration -- therefore, do things at the component level, not the
module level.

This commit was SVN r8314.
2005-11-29 18:25:35 +00:00
55051b81c4 Activate the protection against unavailable datatypes. They get a flag DT_FLAG_UNAVAILABLE. We check now this flag in all the send/recv operations via the macros on mpi/c/bindings.h.
This flag is inherited by all datatypes create with unavailable datatypes. Basically, we let the user create the wrong datatype but we dont let him using it for any pt2pt communications or any pack/unpack.

This commit was SVN r8069.
2005-11-09 23:43:41 +00:00
28891d6de3 * Move MPI_Wtime and MPI_Wtick back out of mpi.h and into the C bindings library,
restoring the PMPI version.  A variety of reasons for this:

  - mpi.h was blinding using inline in a C header without the configrue mojo
    properly set it, as mpi.h doesn't include ompi_config.h.  This eventually
    would have caused a borked build.
  - mpi.h and mpif.h were never updated to not include PMPI_W{tick,time} as
    a proper prototype
  - The C++ and F90 bindings didn't do the right things when there was no
    PMPI version of the C call, but profiling was enabled
  - Since we only use gettimeofday, the function call overhead really doesn't
    matter

This should probably go to the 1.0 branch

This commit was SVN r8014.
2005-11-07 17:22:48 +00:00
42ec26e640 Update the copyright notices for IU and UTK.
This commit was SVN r7999.
2005-11-05 19:57:48 +00:00
7bdfe6557b - Update the checks in REDUCE, ALLREDUCE, SCAN, EXSCAN, and
REDUCE_SCATTER to more thoroughly check the datatype/op combination
  to see if it's valid or not.  If it's not, print a meaningful error
  message rather than "Invalid MPI_Op" indicating what specifically
  was wrong (therefore hopefully helping users track down where in the
  code the problem is, and/or telling us that there's a reduction
  operation combo that we don't support that we should)
- The check for whether a datatype is intrinsic needed to be updated
  -- it's not sufficient to check that dtype->id < DT_MAX_PREDEFINED;
  you really need to check the PREDEFINED flag on the datatype.
  Thanks to George for this fix (only intrinsics have a meaningful
  value in dtype->id).

This commit was SVN r7923.
2005-10-28 16:47:32 +00:00
23ab9e0277 A better solution to the previous commit -- RETAIN/RELEASE the MPI_Op
at the top-level MPI API function.  This allows two kinds of
scenarios:

1. MPI_Ireduce(..., op, ...);
   MPI_Op_free(op);
   MPI_Wait(...);

For the non-blocking collectives that we're someday planning -- to
make them analogous to non-blocking point-to-point stuff.

2. Thread 1:
   MPI_Reduce(..., op, ...);
   Thread 2:
   MPI_Op_free(op);

Granted, for #2 to occur would tread a fine line between a correct and
erroneous MPI program, but it is possible (as long as the Op_free was
*after* MPI_reduce() had started to execute).  It's more realistic
with case #1, where the Op_free() could be executed in the same thread
or a different thread.

This commit was SVN r7870.
2005-10-25 19:20:42 +00:00
e097ee635a Silence compiler warnings.
This commit was SVN r7768.
2005-10-14 22:06:25 +00:00
2c909383bb abstracting the group_free operation into an internal routine (required
by some other components on ompi).

This commit was SVN r7763.
2005-10-14 18:51:20 +00:00
94bab558dd Put in a check to ensure the root is valid (all other rooted
operations have this; we somehow missed this for intracomms on reduce,
and it bit me this morning ;-) )

This commit was SVN r7612.
2005-10-04 14:38:17 +00:00
aceab46c5f use MPI_Alloc_mem/MPI_Free_mem for internally allocated buffers
This commit was SVN r7487.
2005-09-22 16:43:17 +00:00
c87babb565 * if start_rank == end_rank, there doesn't seem to be a requirement that
stride == 1, and the Intel tests explicitly test the case with
  strides != 1, expecting them to work

This commit was SVN r7411.
2005-09-16 18:44:21 +00:00
789d49d613 Activate thread support ... at least at the MPI level.
This commit was SVN r7386.
2005-09-15 15:44:12 +00:00
b8f4f88ccc Ignore sendtype/sendcount if MPI_IN_PLACE
This commit was SVN r7361.
2005-09-14 01:44:55 +00:00
15f5294da4 Ignore another param in the IN_PLACE case
This commit was SVN r7348.
2005-09-13 19:15:01 +00:00
c89e8c3712 Fixes for error checking -- properly ignore arguments as they should
be

This commit was SVN r7347.
2005-09-13 19:07:13 +00:00
ad647b105d Error checking for MPI_IN_PLACE
This commit was SVN r7343.
2005-09-13 17:07:03 +00:00
71b1cdb5f5 Cleanup the dependencies between the MPI layer and the rest of the ompi files.
Modify the includes to start with the root directory (i.e orte/datatype/datatype.h).

This commit was SVN r7306.
2005-09-12 09:17:44 +00:00
ed56e743b7 * update configure.ac to use the modern version of AC_INIT and
AM_INIT_AUTOMAKE, instead of the deprecated version.
* Work around dumbness in modern AC_INIT that requires the version
  number to be set at autoconf time (instead of at configure time, as
  it was before).  Set the version number, minus the subversion r number,
  at autoconf time.  Override the internal variables to include the r
  number (if needed) at configure time.  Basically, the right thing
  should always happen.  The only place it might not is the version
  reported as part of configure --help will not have an r number.
* Since AM_INIT_AUTOMAKE taks a list of options, no need to specify
  them in all the Makefile.am files.
* Addes support for subdir-objects, meaning that object files are put
  in the directory containing source files, even if the Makefile.am is
  in another directory.  This should start making it feasible to
  reduce the number of Makefile.am files we have in the tree, which
  will greatly reduce the time to run autogen and configure.

This commit was SVN r7211.
2005-09-07 05:54:53 +00:00
605e13baf4 - Just a comment to circumvent warning in check.
This commit was SVN r6933.
2005-08-19 10:38:08 +00:00
9b7c1ca97a Forgot to include the check for 0 in the Allreduce case (already got
Reduce and Reduce_scatter)

This commit was SVN r6929.
2005-08-18 19:39:45 +00:00
e8c103ac1f Make MPI_REDUCE and MPI_REDUCE_SCATTER return MPI_SUCCESS immediately
if the count/sum of counts is 0.  This is technically in violation of
the MPI-1 standard, but...  :-(

This commit was SVN r6914.
2005-08-17 15:34:33 +00:00
c465eb8567 Rename opal/threads/thread.h -> opal/threads/threads.h to avoid a
naming conflict with Solaris' <thread.h>

This commit was SVN r6879.
2005-08-15 11:02:01 +00:00
f273d84b1b * update ob1 to direct call
* don't know what I was thinking, but can't use the MCA_PML_CALL macro on
  the two data values, as they don't have things that the macro can
  expand into

This commit was SVN r6868.
2005-08-14 03:14:20 +00:00
cf16a521c8 Ensure to get ompi/include/constants.h
This commit was SVN r6845.
2005-08-12 21:42:07 +00:00