1
1

30 Коммитов

Автор SHA1 Сообщение Дата
Jeff Squyres
35438ae9b5 mpi/finalized: revamp INITIALIZED/FINALIZED
Per MPI-3.1:8.7.1 p361:11-13, it's valid for MPI_FINALIZED to be
invoked during an attribute destruction callback (e.g., during the
destruction of keyvals on MPI_COMM_SELF during the very beginning of
MPI_FINALIZE).  In such cases, MPI_FINALIZED must return "false".

Prior to this commit, we hung in FINALIZED if it were invoked during
a COMM_SELF attribute destruction callback in FINALIZE.  See
https://github.com/open-mpi/ompi/issues/5084.

This commit converts the MPI_INITIALIZED / MPI_FINALIZED
infrastructure to use a single enum (ompi_mpi_state, set atomically)
to represent the state of MPI:

- not initialized
- init started
- init completed
- finalize started
- finalize past COMM_SELF destruction
- finalize completed

The "finalize past COMM_SELF destruction" state is what allows us to
return "false" from MPI_FINALIZED before COMM_SELF has been fully
destroyed / all attribute callbacks have been invoked.

Since this state is checked at nearly every MPI API call (to see if
we're outside of the INIT/FINALIZE epoch), care was taken to use
atomics to *set* the ompi_mpi_state value in ompi_mpi_init() and
ompi_mpi_finalize(), but performance-critical code paths can simply
read the variable without needing to use a slow call to an
opal_atomic_*() function.

Thanks to @AndrewGaspar for reporting the issue.

Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2018-06-01 13:36:29 -07:00
Ralph Castain
1e2019ce2a Revert "Update to sync with OMPI master and cleanup to build"
This reverts commit cb55c88a8b7817d5891ff06a447ea190b0e77479.
2016-11-22 15:03:20 -08:00
Ralph Castain
cb55c88a8b Update to sync with OMPI master and cleanup to build
Signed-off-by: Ralph Castain <rhc@open-mpi.org>
2016-11-22 14:24:54 -08:00
Gilles Gouaillardet
77f199d1d7 coll/fca: add missing #include <alloca.h> 2015-12-24 14:33:58 +09:00
igor.ivanov@itseez.com
0a9956927a ompi/coll: Fix warnings in fca components
warning: assignment from incompatible pointer type
2015-12-16 16:22:16 +02:00
Mike Dubman
e8d7373b14 COLL/FCA: revert to prev barrier if called from finalize
FCA barrier may not complete if FCA progress is not called periodically.
PMI/PMI2 API that can be used in rte barrier has no provision for calling
external progress function.

So it is possible that during finalize some ranks will be stuck
in fca barrier while others are in PMI barrier.
2015-10-04 09:40:19 +03:00
Mike Dubman
9392f1894e Fixes MPI_Allgather when sendbuf is MPI_IN_PLACE. fixes 3342
This commit was SVN r27579.
2012-11-09 18:05:10 +00:00
Mike Dubman
ca308974e0 Switched FCA collectives component from dlopen to compile-time linking to libfca
This commit was SVN r27557.
2012-11-02 17:30:00 +00:00
Mike Dubman
a45898ea9c fix support for fca 2.2, warning fixes on rhel 6.x
This commit was SVN r26166.
2012-03-20 10:00:52 +00:00
Mike Dubman
96ef2fc0e4 fix handling datatypes which have a gap in the beginning
This commit was SVN r24936.
2011-07-25 06:30:09 +00:00
Mike Dubman
36db9c6233 * updated copyrights
* added support for non-contig data layout in FCA

This commit was SVN r24702.
2011-05-16 14:43:11 +00:00
Mike Dubman
3d517c0285 ABI cleanups
This commit was SVN r24193.
2010-12-28 07:11:46 +00:00
Mike Dubman
b339a7a07b Add FCA 1.2/2.0 backward compatibility, depending on OMPI_FCA_VERSION_xx macro definition.
This commit was SVN r24192.
2010-12-27 21:32:34 +00:00
Mike Dubman
956e030f28 support for dynamic rules to control offload
This commit was SVN r24094.
2010-11-29 04:11:57 +00:00
Mike Dubman
5a7d76bb9c resolve many warnings, comply to c99
This commit was SVN r24040.
2010-11-11 12:14:31 +00:00
Mike Dubman
f9bebe53f9 - fix fca support for MPI_IN_PLACE in allgather and allgatherv collectives
This commit was SVN r23841.
2010-10-06 19:09:02 +00:00
Mike Dubman
f525245498 - support for MPI_IN_PLACE during gather ops
- fix ABI check and message

This commit was SVN r23840.
2010-10-06 16:27:45 +00:00
Mike Dubman
58aa7fd161 enabling *gather*
This commit was SVN r23773.
2010-09-20 06:29:54 +00:00
Mike Dubman
bd9a1f28a3 revert r23764 in ompi/mca/coll/fca
This commit was SVN r23771.

The following SVN revision numbers were found above:
  r23764 --> open-mpi/ompi@40a2bfa238
2010-09-20 06:06:45 +00:00
Ralph Castain
40a2bfa238 WARNING: Work on the temp branch being merged here encountered problems with bugs in subversion. Considerable effort has gone into validating the branch. However, not all conditions can be checked, so users are cautioned that it may be advisable to not update from the trunk for a few days to allow MTT to identify platform-specific issues.
This merges the branch containing the revamped build system based around converting autogen from a bash script to a Perl program. Jeff has provided emails explaining the features contained in the change.

Please note that configure requirements on components HAVE CHANGED. For example. a configure.params file is no longer required in each component directory. See Jeff's emails for an explanation.

This commit was SVN r23764.
2010-09-17 23:04:06 +00:00
Mike Dubman
104d57f69a * Support allgatherv, convert displs and rcounts arrays to bytes.
* change comm_init API - no need to pass local rank groups, fca calculates that on its own.
* remove local rank list from module - libfca maintains that now.
* in fca_bcast and fca_reduce - pass root rank index and let libfca figure out the local rank index.

This commit was SVN r23716.
2010-09-05 09:49:59 +00:00
Mike Dubman
48274c1c77 better control for enable/disable specific coll APIs
This commit was SVN r23708.
2010-09-02 09:22:24 +00:00
Mike Dubman
8ef56bf258 * drop support for FCA v1.2
* add support for FCA ABI
* add support for allgather

This commit was SVN r23705.
2010-09-01 11:29:10 +00:00
Mike Dubman
fca50c4a09 comply to code-style: no c++ style commends
This commit was SVN r23645.
2010-08-24 13:42:21 +00:00
Mike Dubman
9cb2e0490b removed #if 0
This commit was SVN r23643.
2010-08-24 13:32:28 +00:00
Mike Dubman
a036c24253 revert fix to comply with #2534
- use op->o_name directly
- cosmetic prints

This commit was SVN r23614.
2010-08-15 11:04:34 +00:00
Mike Dubman
ba5bc9b674 fixes:
* fixup lookup of supported ops by name:
        in ompi 1.5.x the op string representation were changed from MPI_XXX to MPI_OP_XXX (relative to OMPI 1.4.x)
		* keep compat between diff versions of FCA
		* better error handling (return error if symbol not found)
		* register to opal_progress and call fca_progress API

This commit was SVN r23597.
2010-08-12 08:15:55 +00:00
Mike Dubman
7d1a8a154d fca:
- keep compat to fca v1.2 and fca 2.0
- fix segv
- keep compat to ompi 1.4.x

This commit was SVN r23569.
2010-08-08 13:28:41 +00:00
Mike Dubman
2914d11793 fix datatype API
This commit was SVN r23552.
2010-08-04 14:01:54 +00:00
Mike Dubman
7cbe9b43c2 initial release of Voltaire FCA (fabric collective accelerator) collective component
- compatible with FCA v1.2

This commit was SVN r23539.
2010-08-02 11:25:53 +00:00