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

9279 Коммитов

Автор SHA1 Сообщение Дата
Ralph Castain
22844b0dc6 Balance priorities to ensure something is below sync 2016-08-23 17:33:45 -07:00
Ralph Castain
540f23c4dd Adjust priority of coll/sync downwards 2016-08-23 17:12:48 -07:00
Edgar Gabriel
41ed4a28d2 add the protective lock around read and write operations in ompio 2016-08-23 11:07:58 -05:00
Howard Pritchard
696121cc4a Merge pull request #1988 from hppritcha/topic/another_ofi_fix
mtl/ofi: fix a botched assignment of av_type
2016-08-22 17:59:59 -06:00
Ralph Castain
6549c878a9 Silence the warnings 2016-08-22 15:35:27 -07:00
Ralph Castain
871bedb103 Add missing "const" qualifiers 2016-08-22 12:54:24 -07:00
Edgar Gabriel
a76f4d7c69 Merge pull request #1990 from edgargabriel/topic/mt-io
steps towards making file I/O operations thread safe
2016-08-22 08:19:33 -05:00
Joshua Ladd
deae1ab375 Merge pull request #1985 from vspetrov/master
coll/hcoll: Fixes predifined types mapping
2016-08-22 09:18:59 -04:00
Edgar Gabriel
c3d4ee3f73 ompi/file: add a muteex to the ompi_file_t structure
Adding a mutex to thje ompi_file_t structure allows to have a per-file handle
mutex lock for both ROMIO and OMPIO. I double checked that the size of the
ompi_file_t structure is still below the size of the predefined_file_t structure,
so we should be good from the backward compatibility perspective.
2016-08-21 16:09:12 -05:00
Edgar Gabriel
bc042259bc make initialization of the io framework thread safe.
Also, remove the lock/unlock in the file_open ompi-interface routines of romio314.
The global lock in the romio component does probably not work, it is easy to construct a testcase where two threads perform collective I/O operations on different file handles. With a global lock it is easy to deadlock. THe lock has to be at least on the file handle basis.

move the mutex to file/file.c to avoid duplicate symbol problem in file_open.c pfile_open.c
2016-08-21 16:09:00 -05:00
George Bosilca
b96ec77e40 This variable belongs to the tuned modules and not to base. 2016-08-20 15:37:55 -04:00
George Bosilca
e8425eb1f5 Rename an OMPI internal variable (ticket #1955). 2016-08-20 15:37:55 -04:00
rhc54
102d3afe2c Merge pull request #1992 from rhc54/topic/sync
Restore the coll/sync module and provide a test to verify its operation
2016-08-20 13:33:28 -05:00
George Bosilca
fd57f5bccd Remove some of the clang warnings. 2016-08-20 14:21:42 -04:00
Ralph Castain
9888615e75 Restore the coll/sync module and provide a test to verify its operation 2016-08-20 10:14:52 -07:00
Howard Pritchard
61d62b6821 mtl/ofi: fix a botched assignment of av_type
Well now the av_type is being assigned correctly

Signed-off-by: Howard Pritchard <howardp@lanl.gov>
2016-08-19 17:01:02 -05:00
Nathan Hjelm
f3e9a72f1a Merge pull request #1987 from hjelmn/cid
comm/cid: fix threaded CID allocation
2016-08-19 14:26:39 -06:00
Nathan Hjelm
fbbf743c36 comm/cid: fix threaded CID allocation
This commit should restore the pre-non-blocking behavior of the CID
allocator when threads are used. There are two primary changes: 1)
do not hold the cid allocator lock past the end of a request callback,
and 2) if a lower id communicator is detected during CID allocation
back off and let the lower id communicator finish before continuing.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2016-08-19 11:47:19 -06:00
Valentin Petrov
9790373fc6 coll/hcoll: Fixes predifined types mapping 2016-08-19 11:19:12 +03:00
Nathan Hjelm
e5c7512692 Merge pull request #1983 from hjelmn/request_cb
ompi/request: change semantics of ompi request callbacks
2016-08-18 08:31:56 -06:00
Nathan Hjelm
6aa658ae33 ompi/request: change semantics of ompi request callbacks
This commit changes the sematics of ompi request callbacks. If a
request's callback has freed or re-posted (using start) a request
the callback must return 1 instead of OMPI_SUCCESS. This indicates
to ompi_request_complete that the request should not be modified
further. This fixes a race condition in osc/pt2pt that could lead
to the req_state being inconsistent if a request is freed between
the callback and setting the request as complete.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2016-08-17 20:14:01 -06:00
Jeff Squyres
fb894e6e3e pkg-config: fix static linking
We need to list all major project libraries in the private libraries
line to enable static linking to work properly.

Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2016-08-17 20:37:51 -05:00
Sylvain Jeaugey
61e900eea5 Fix typo calling allreduce with the allgather module.
That was causing CUDA collective to crash.
2016-08-17 17:05:13 -07:00
Edgar Gabriel
e14c23ba79 Merge pull request #1980 from edgargabriel/topic/coverty-cleanup
io/ompio: Topic/coverty cleanup
2016-08-17 17:27:51 -05:00
Edgar Gabriel
2c8437ce62 fs/pvfs2: fix a common symbol 2016-08-17 13:10:32 -05:00
Edgar Gabriel
eba5293586 fix coverty warning CID 1369021 2016-08-17 13:02:45 -05:00
Nathan Hjelm
40b70889e5 osc/pt2pt: make receive count an unsigned int
This receive_count MCA variable should never be negative. Change it
to an unsigned int.

Signed-off-by: Nathan Hjelm <hjelmn@me.com>
2016-08-17 08:14:24 -06:00
Gilles Gouaillardet
8faa1edafa osc/pt2pt: silence misc warnings 2016-08-17 14:24:14 +09:00
LANL OMPI Bot
96c7762050 Merge pull request #1942 from hppritcha/topic/minor_ofi_fix
mtl/ofi: use mca param to set av type
2016-08-16 14:14:12 -06:00
Nathan Hjelm
9444df1eb7 osc/pt2pt: make lock_all locking on-demand
The original lock_all algorithm in osc/pt2pt sent a lock message to
each peer in the communicator even if the peer is never the target of
an operation. Since this scales very poorly the implementation has
been replaced by one that locks the remote peer on first communication
after a call to MPI_Win_lock_all.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2016-08-11 15:33:07 -06:00
Nathan Hjelm
7589a25377 osc/pt2pt: do not repost receive from request callback
This commit fixes an issue that can occur if a target gets overwhelmed with
requests. This can cause osc/pt2pt to go into deep recursion with a stack
like req_complete_cb -> ompi_osc_pt2pt_callback -> start -> req_complete_cb
-> ... . At small scale this is fine as the recursion depth stays small but
at larger scale we can quickly exhaust the stack processing frag requests.
To fix the issue the request callback now simply puts the request on a
list and returns. The osc/pt2pt progress function then handles the
processing and reposting of the request.

As part of this change osc/pt2pt can now post multiple fragment receive
requests per window. This should help prevent a target from being overwhelmed.

Signed-off-by: Nathan Hjelm <hjelmn@me.com>
2016-08-11 15:33:07 -06:00
George Bosilca
8d0baf140f If the RTE fails to deliver the daemon information,
gracefully fallback to a non-reordered communicator.
Optimize the loops building the process hierarchy.
2016-08-11 13:04:27 -04:00
Howard Pritchard
e46eee3fcb mtl/ofi: use mca param to set av type
Signed-off-by: Howard Pritchard <howardp@lanl.gov>
2016-08-10 16:10:17 -06:00
Gilles Gouaillardet
dfbf2b7be4 opal/threads: add OPAL_THREAD_SUB_SIZE_T macro
-1 is not a valid size_t, so instead of OPAL_THREAD_ADD_SIZE_T(..., -1),
simply OPAL_THREAD_SUB_SIZE_T(..., 1) and keep picky compilers happy
2016-08-10 13:37:36 +09:00
Nathan Hjelm
799104f688 Merge pull request #1947 from hjelmn/perf
pml/ob1: be more selective when using rdma capable btls
2016-08-09 22:15:09 -06:00
Nathan Hjelm
4079eec974 pml/ob1: be more selective when using rdma capable btls
This commit updates the btl selection logic for the RDMA and RDMA
pipeline protocols to use a btl iff: 1) the btl is also used for eager
messages (high exclusivity), or 2) no other RDMA btl is available on
an endpoint and the pml_ob1_use_all_rdma MCA variable is true. This
fixes a performance regression with shared memory when an RDMA capable
network is available.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2016-08-09 20:54:42 -06:00
Ralph Castain
ba77d9beff Remove forced debugs 2016-08-08 13:20:24 -07:00
Nathan Hjelm
2788083b98 Merge pull request #1936 from hjelmn/osc_pt2pt_fix
osc/pt2pt: do not set rdma_frag after start
2016-08-08 14:17:40 -06:00
Nathan Hjelm
e4d7ea75a9 Merge pull request #1935 from hjelmn/persistent_fix
pml/ob1: reset req_bytes_packed on start
2016-08-08 14:17:13 -06:00
Todd Kordenbrock
3be6052523 Merge pull request #1896 from PDeveze/Patchs-on-coll-portals4
Patchs on coll portals4
2016-08-08 14:57:02 -05:00
Edgar Gabriel
fb9fa4fbc4 Merge pull request #1938 from edgargabriel/pr/barrier-on-close
io/ompio: Add barrier to file_close and to file_set_size
2016-08-08 09:22:08 -05:00
Edgar Gabriel
4709f4229b Merge pull request #1929 from edgargabriel/pr/ompio-code-reorg
io/ompio: next step in code-reorganization
2016-08-08 09:20:54 -05:00
Thananon Patinyasakdikul
23b27c510c romio: make romio use internal opal_random instead of rand(3).
This fixes issue #1877
2016-08-05 09:04:52 -07:00
Howard Pritchard
ff669e7b15 code cleanup: clang is now a happier panda
Clang 5.1 on my mac was a sad panda compiling a couple
of files,  complaining about uninitialized stack variables.

This commit makes clang a happier panda (or at least not so sad).

Signed-off-by: Howard Pritchard <howardp@lanl.gov>
2016-08-04 19:34:44 -06:00
Edgar Gabriel
9c3180160c io/ompio: Add barrier to file_close and to file_set_size
This fixes a bug reported on the mailing for ompio.
https://www.open-mpi.org/community/lists/users/2016/05/29333.php
2016-08-04 11:20:31 -05:00
Jeff Squyres
c2634612d7 Merge pull request #1870 from jsquyres/pr/fix-unweighted-and-weights-empty
mpi.h: fix types of MPI_UNWEIGHTED and MPI_WEIGHTS_EMPTY
2016-08-04 08:49:58 -07:00
Gilles Gouaillardet
60e91e890a coll/base: give a boost to ompi_coll_base_sendrecv_nonzero_actual()
Based on current implementation it is faster to use a blocking
send than the non-blocking version. Switch the exchange function
used in the barrier to use the blocking version combined with
the non-blocking version of the receive.

This is similar to open-mpi/ompi@223d75595d
2016-08-04 13:31:07 +09:00
Nathan Hjelm
11c853d05e osc/pt2pt: do not set rdma_frag after start
It is possible for the start call to complete the requests. For this
reason the module rdma_frag field should be filled in before start is
called. If the request completes the completion callback will reset
the rdma_frag field to NULL. Fixes a bug discovered by @tkordenbrock.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2016-08-03 15:20:36 -06:00
Nathan Hjelm
889dd32806 pml/ob1: reset req_bytes_packed on start
On start we were not correctly resetting all request fields. This was
leading to a double-completion on persistent receives. This commit
updates the base start code to reset the receive req_bytes_packed and
the send request convertor.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2016-08-03 11:29:30 -06:00
KAWASHIMA Takahiro
642acfbb8c Merge pull request #1927 from kawashima-fj/pr/fortran-named-constants
fortran: Correct named constants and a datatype name
2016-08-03 08:40:36 +09:00
Edgar Gabriel
aa7e852e44 common/ompio: files are only compiled in case MPI I/O is requested
fixes: open-mpi/ompi#1932
2016-08-02 15:01:38 -05:00
George Bosilca
087761c2dc Fix a warning and other small cleanups. 2016-08-02 17:33:53 +02:00
Edgar Gabriel
19fe5cac50 io/ompio: next step in code-reorganization
- move the sort_iovec operations to fcoll/base
 - move set_view_internal to common/ompio
 - move set_file_default to common/ompio
 - remove io_ompio_sort, not used anymore.
2016-08-02 09:18:29 -05:00
KAWASHIMA Takahiro
722e898e8e fortran: Correct the name of MPI_INTEGER16.
The name of `MPI_INTEGER16` obtained using `MPI_TYPE_GET_NAME`
from Fortran program was incorrect (`MPI_INTEGER8` was obtained)
when `INTEGER*16` is not supported by a compiler.

This bug affects only the Fortran binding because `MPI_INTEGER16`
is not defined in `mpi.h` if a compiler does not support it.
2016-08-02 22:37:58 +09:00
KAWASHIMA Takahiro
5383003eab fortran: Add missing predefined datatype named constants.
This commit add the following Fortran named constants which are
defined in the MPI standard but are missing in Open MPI.

- `MPI_LONG_LONG` (defined as a synonym of `MPI_LONG_LONG_INT`)
- `MPI_CXX_FLOAT_COMPLEX`
- `MPI_C_BOOL`

And this commit also changes the value of the following Fortran
named constant for consistency.

- `MPI_C_COMPLEX`
  `(MPI_C_FLOAT_COMPLEX` is defined as a synonym of this)

Each needs a different solution described below.

For `MPI_LONG_LONG`:

The value of `MPI_LONG_LONG` is defined to have a same value
as `MPI_LONG_LONG_INT` because of the following reasons.

1. It is defined as a synonym of `MPI_LONG_LONG_INT` in
   the MPI standard.
2. `MPI_LONG_LONG_INT` and `MPI_LONG_LONG` has a same value
   for C in `mpi.h`.
3. `ompi_mpi_long_long` is not defined in
   `ompi/datatype/ompi_datatype_module.c`.

For `MPI_CXX_FLOAT_COMPLEX`:

Existing `MPI_CXX_COMPLEX` is replaced with `MPI_CXX_FLOAT_COMPLEX`
bacause `MPI_CXX_FLOAT_COMPLEX` is the right name defined in MPI-3.1
and `MPI_CXX_COMPLEX` is not defined in MPI-3.1 (nor older).
But for compatibility, `MPI_CXX_COMPLEX` is treated as a synonym
of `MPI_CXX_FLOAT_COMPLEX` on Open MPI.

For `MPI_C_BOOL`:

`MPI_C_BOOL` is newly added. The value which `MPI_C_COMPLEX` had
used (68) is assinged for it because the value becomes no longer
in use (described later) and it is a suited position as a datatype
added on MPI-2.2.

For `MPI_C_COMPLEX`:

Existing `MPI_C_FLOAT_COMPLEX` is replaced with `MPI_C_COMPLEX`
and `MPI_C_FLOAT_COMPLEX` is changed to have the same value.
In other words, make `MPI_C_COMPLEX` the canonical name and
make `MPI_C_FLOAT_COMPLEX` an alias of it.
This is bacause the relation of these datatypes is same as
the relation of `MPI_LONG_LONG_INT` and `MPI_LONG_LONG`, and
`MPI_LONG_LONG_INT` and `MPI_LONG_LONG` are implemented like that.
But in the datatype engine, we use `ompi_mpi_c_float_complex`
instead of `ompi_mpi_c_complex` as a variable name to keep
the consistency with the other similar types such as
`ompi_mpi_c_double_complex` (see George's comment in open-mpi/ompi#1927).
We don't delete `ompi_mpi_c_complex` now because it is used in
some other places in Open MPI code. It may be cleand up in the future.

In addition, `MPI_CXX_COMPLEX`, which was defined only in the Open MPI
Fortran binding, is added to `mpi.h` for the C binding.

This commit breaks binary compatibility of Fortran `MPI_C_COMPLEX`.
When this commit is merged into v2.x branch, the change of
`MPI_C_COMPLEX` should be excluded.
2016-08-02 22:36:41 +09:00
Gilles Gouaillardet
917d96ba50 coll/libnbc: cleanup handling of the second temporary buffer in ireduce 2016-08-02 16:32:15 +09:00
Gilles Gouaillardet
ed9139ca13 coll/libnbc: correctly handle datatype alignment when allocating two buffers at once 2016-08-02 15:44:12 +09:00
KAWASHIMA Takahiro
0cb5dfe18d fortran: Correct predefined datatype named constants. 2016-08-02 13:12:22 +09:00
KAWASHIMA Takahiro
ad3b590172 fortran: Add missing MPI_NO_OP and MPI_WIN_* named constants. 2016-08-02 13:10:44 +09:00
Edgar Gabriel
c0bd8728fd io/ompio: move aggregator selection code to a separate file
- move all functions related to aggregator selection to a single file
- perform code cleanup fixing many Coverty complains along the way.
2016-08-01 14:04:27 -05:00
Jeff Squyres
50952c3a31 Merge pull request #1912 from rivis/pr/mpisync
mpisync: Fix a compilation error.
2016-07-29 14:53:44 -04:00
Edgar Gabriel
160d9a78c1 Merge pull request #1886 from edgargabriel/pr/ompio-reorg
io/ompio: move io/ompio functionality to common/ompio
2016-07-29 12:24:21 -05:00
Joshua Ladd
4a03a657c6 Merge pull request #1913 from vspetrov/hcoll_derived_datatypes
coll/hcoll mpi datatypes support
2016-07-29 10:08:23 -04:00
Nathan Hjelm
1da558407c Merge pull request #1911 from hjelmn/threads
opal/thread: clean up and add additional OPAL_THREAD macros
2016-07-29 06:44:11 -06:00
Valentin Petrov
3582bba6b7 coll/hcoll mpi datatypes support 2016-07-29 10:06:39 +03:00
Gilles Gouaillardet
9f3e1a0620 Merge pull request #1898 from ggouaillardet/topic/poc_configury_cli
configury: capture configury command line
2016-07-29 11:55:21 +09:00
Howard Pritchard
5ff6b81eee Merge pull request #1871 from hppritcha/topic/ofi_mtl_params
mtl/ofi: add some more mca parameters
2016-07-28 18:21:23 -06:00
Gilles Gouaillardet
273e56096b configury: capture configury command line
configury command line is quoted and made available via the OPAL_CONFIGURE_CLI macro.
it can be retrieved via {orte-info,ompi_info,oshmem_info} -c, or
{orte-info,ompi_info,oshmem_info} --all --parseable | grep ^config:cli:
2016-07-29 09:14:09 +09:00
Ralph Castain
cacb582ecd Support timeout values when performing connect/accept operations. Bump default timeout to 10 minutes so folks have time to start the partnering application 2016-07-28 14:09:06 -07:00
KAWASHIMA Takahiro
2a932f48ad mpisync: Fix a compilation error.
This commit fixes the undefined `OPAL_MAXHOSTNAMELEN` error
which arises only when `--enable-timing` is specified for
`configure`.

This bug exists only in master branch because the commit 3322347
is not merged into other branches.
2016-07-29 02:38:25 +09:00
Nathan Hjelm
aac611237b opal/thread: clean up and add additional OPAL_THREAD macros
This commit expands the OPAL_THREAD macros to include 32- and 64-bit
atomic swap. Additionally, macro declararations have been updated to
include both OPAL_THREAD_* and OPAL_ATOMIC_*. Before this commit the
former was used with add and the later with cmpset.

Signed-off-by: Nathan Hjelm <hjelmn@me.com>
2016-07-28 09:23:14 -06:00
Howard Pritchard
22c8743557 mtl/ofi: add some more mca parameters
allow for toggling of both control/data progress models.
allow for using FI_AV_TABLE or FI_AV_MAP for av type.

Signed-off-by: Howard Pritchard <howardp@lanl.gov>
2016-07-28 02:35:09 -06:00
Gilles Gouaillardet
a0a999e63d coll/base: fix ompi_coll_base_allgatherv_intra_basic_default() with MPI_IN_PLACE 2016-07-28 13:57:18 +09:00
Gilles Gouaillardet
b8a1ffb87e coll/base: fix ompi_coll_base_allgatherv_intra_basic_default()
Fixes open-mpi/ompi#1907
2016-07-28 13:50:04 +09:00
Jeff Squyres
2e0c3c7d77 libompitrace: explicitly set the .so version
Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2016-07-27 07:05:58 -04:00
Pascal Deveze
10763f5abc mtl/portals4: Take into account the limitation of portals4 (max_msg_size) and split messages if necessary 2016-07-26 08:44:07 +02:00
Pascal Deveze
724801b018 mtl-portals4: Introduce a "short_limit" for the short message size. "eager_limit" will only be used for
the limit of the eager part of the messages sent with the rndv protocol
2016-07-26 08:43:24 +02:00
Pascal Deveze
9e58b4842f mtl-portals4: Correct how the request_status._ucount is set 2016-07-26 08:42:48 +02:00
Pascal Deveze
3ca194f10a mtl-portals4: Store ptl_process_id (from PtlGetPhysId) and display it. 2016-07-26 08:42:08 +02:00
Pascal Deveze
bd3b1cf7be mtl-portals4: Control that flowctl_idx is egal to REQ_FLOWCTL_TABLE_ID
and use OPAL_ATOMIC_CMPSET_32 to test and set flowctl_active flag to true
2016-07-26 08:41:31 +02:00
Ralph Castain
9ab20cafe3 Pass the nodeid for each proc in the job. Fix a mistaken error output message 2016-07-25 15:41:15 -07:00
Gilles Gouaillardet
bbc6d4b3d4 ompi/communicator: remove an other debug print statement in ompi_comm_allreduce_intra_pmix_nb() 2016-07-22 15:42:56 +09:00
Edgar Gabriel
b0fa1fd2a1 move the internal file_open/close functions to common/ompio 2016-07-21 13:08:32 -05:00
Edgar Gabriel
ccf76b7791 moving the internal read/write functions to common/ompio
and update all fs/fcoll/sharedfp components to use these functions.
2016-07-21 13:08:32 -05:00
Edgar Gabriel
688710d408 make common/ompio compile 2016-07-21 13:08:32 -05:00
Edgar Gabriel
39ae93b87b modify the fcoll components to use the common/ompio print queues 2016-07-21 13:08:32 -05:00
Edgar Gabriel
fe17410943 next step in making the print_queue functionality move to common/ompio 2016-07-21 13:08:32 -05:00
Edgar Gabriel
af67c8f239 first cut on moving some ompio functionality to common/ompio 2016-07-21 13:08:32 -05:00
Edgar Gabriel
a899c0fb38 fcoll/static: fix coverty warnings
fix coverty warnings CID 72144, CID 710677, CID 1364164
2016-07-21 13:08:15 -05:00
Pascal Deveze
a7e3de6c4f coll-portals4: No more messages passed to Portals4 bigger than the limit given by PtlNIInit 2016-07-21 15:58:20 +02:00
Pascal Deveze
175e6aa385 coll-portals4: Before calling PtlCTWait, call PtlTriggeredInc twice so be sure all pending PtlTriggredPut are triggered 2016-07-21 15:58:20 +02:00
Pascal Deveze
df59d6cdd4 coll-portals4: Correct and simplify how the data are cut in segment_nb segments (bcast) 2016-07-21 15:58:09 +02:00
Pascal Deveze
274f8d608c coll-portals4: Change output format and change variable names (minor changes). 2016-07-21 11:06:45 +02:00
Todd Kordenbrock
37ad6aa711 Merge pull request #1853 from PDeveze/Patchs-on-osc-portals4
Patchs on osc portals4
2016-07-20 09:22:19 -05:00
Todd Kordenbrock
210534adb3 Merge pull request #1850 from PDeveze/Patchs-on-mtl-portals4
Patchs on mtl portals4
2016-07-20 08:21:03 -05:00
rhc54
4bc5048608 Merge pull request #1888 from rhc54/topic/pmixup
Update pmix2 component
2016-07-20 06:14:05 -07:00
Ralph Castain
01a653d50a Remove a debug print in comm_cid.c. Update PMIx2 to include the revised PMIx_Get logic for higher performance by reducing the number of hash table lookups. Fix a bug where requests for data from a proc in another nspace could hang, or result in "not found".
Remove stale file reference

Restore autogen pass thru pmix

Remove generated file
2016-07-20 00:58:19 -07:00
Gilles Gouaillardet
252fadf099 ompi: fix #if vs #ifdef HAVE___MALLOC_INITIALIZE_HOOK usage 2016-07-20 13:18:11 +09:00
Ralph Castain
36a9063466 Silence warnings 2016-07-19 17:36:13 -07:00
Nathan Hjelm
40f71f2d7a Merge pull request #1873 from hjelmn/comm_split_update
Improve MPI_Comm_split_type scalability
2016-07-19 14:36:44 -06:00
Nathan Hjelm
5edab9cb22 Merge pull request #1855 from hjelmn/comm_rework
ompi/comm: refactor communicator cid code
2016-07-19 10:04:17 -06:00
Pascal Deveze
9cac32ba6a mtl/portals4: Modifications concerning the short message management 2016-07-19 11:21:50 +02:00
Pascal Deveze
49e9936914 mtl/portals4: Some little patches 2016-07-19 11:18:55 +02:00
Nathan Hjelm
ced853476f Merge pull request #1878 from hjelmn/f_rops
ompi/fortran: fix typos in request RMA bindings
2016-07-18 13:48:41 -06:00
Nathan Hjelm
8bdcb40dc4 ompi/fortran: fix typos in request RMA bindings
This commit fixes typos on the C side of the request-based RMA binding. We
were not returning the request on success but on failure. Thanks to
@alazzaro for reporting and @ggouaillardet, and @vondele for tracking
this down.

Fixes part of open-mpi/ompi#1869

Signed-off-by: Nathan Hjelm <hjelmn@me.com>
2016-07-18 13:46:28 -06:00
Nathan Hjelm
4c49c42dd0 ompi/comm: improve comm_split_type scalability
This commit introduces a new algorithm for MPI_Comm_split_type. The
old algorithm performed an allgather on the communicator to decide
which processes were part of the new communicators. This does not
scale well in either time or memory.

The new algorithm performs a couple of all reductions to determine the
global parameters of the MPI_Comm_split_type call. If any rank gives
an inconsistent split_type (as defined by the standard) an error is
returned without proceeding further. The algorithm then creates a
communicator with all the ranks that match the split_type (no
communication required) in the same order as the original
communicator. It then does an allgather on the new communicator (which
should be much smaller) to determine 1) if the new communicator is in
the correct order, and 2) if any ranks in the new communicator
supplied MPI_UNDEFINED as the split_type. If either of these
conditions are detected the new communicator is split using
ompi_comm_split and the intermediate communicator is freed.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2016-07-18 12:47:05 -06:00
Nathan Hjelm
035c2e2e2a ompi/comm: refactor communicator cid code
This commit simplifies the communicator context ID generation by
removing the blocking code. The high level calls: ompi_comm_nextcid
and ompi_comm_activate remain but now call the non-blocking variants
and wait on the resulting request. This was done to remove the
parallel paths for context ID generation in preperation for further
improvements of the CID generation code.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2016-07-18 12:47:05 -06:00
Pascal Deveze
f19a2b961c osc/portals4: Correct an error in an if statement 2016-07-18 13:16:12 +02:00
Pascal Deveze
81823d7a63 osc/portals4: Store the no_locks parameter in osc_portals4_component.no_locks 2016-07-18 11:51:52 +02:00
Pascal Deveze
76b38651da osc/portals4: For the contiguous datatype, take into account the lower bound before calling portals4 2016-07-18 11:20:50 +02:00
Pascal Deveze
7aaf16e7fe osc/portals4: Put/Get splitting because Portals4 may restrict sizes 2016-07-18 10:49:28 +02:00
Pascal Deveze
025201b459 osc/portals4: set the initial value of req_status.MPI_ERROR to MPI_SUCCESS 2016-07-18 09:52:56 +02:00
Pascal Deveze
aa0d687a0a osc/portals4: Display an ouput message if ompi_osc_portals4_get_dt() or ompi_osc_portals4_get_op() returns an error 2016-07-18 09:52:56 +02:00
Pascal Deveze
c4181909a4 osc/portals4: Be sure that the ME are operationnal (wait for the PTL_EVENT_LINK) 2016-07-18 09:52:56 +02:00
Pascal Deveze
e99e7d08ed osc/portals4: For the ME, use the uid from PtlGetUid instead of PTL_UID_ANY 2016-07-18 09:52:56 +02:00
Pascal Deveze
56b36eeb7e osc/portals4: Format of "target_disp" is OPAL_PTRDIFF_TYPE and %lu is the appropriate format to display it. 2016-07-18 09:52:55 +02:00
Pascal Deveze
a76566c754 osc/portals4: To allocate a PT, use REQ_OSC_TABLE_ID and test that the right ID is allocated 2016-07-18 09:52:55 +02:00
Edgar Gabriel
195ec89732 fcoll/base: mv coll_array functionis to fcoll base
the coll_array functions are truly only used by the fcoll modules, so move
them to fcoll/base. There is currently one exception to that rule (number of aggreagtors
logic), but that function will be moved in a long term also to fcoll/base.
2016-07-14 08:41:14 -05:00
Edgar Gabriel
1f1504ebbb remove some unused code 2016-07-14 08:41:14 -05:00
Joshua Ladd
06930a0423 Merge pull request #1840 from artpol84/yalla_perf_fix
pml/yalla: fix yalla performance regression
2016-07-14 10:55:30 +03:00
Gilles Gouaillardet
c3c262b3a8 ompi/group: get rid of malloc(0) in ompi_group_intersection(...)
Thanks Lisandro Dalcin for the report

Fixes open-mpi/ompi#1866
2016-07-14 11:19:46 +09:00
Jeff Squyres
1bea2b2575 mpi.h: fix types of MPI_UNWEIGHTED and MPI_WEIGHTS_EMPTY
Thanks to Lisandro Dalcin for reporting.

Fixes open-mpi/ompi#1865.

Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2016-07-13 09:36:24 -04:00
Pascal Deveze
b87ed1ad4a mtl/portals4: Display actual limits given by the portals4 PtlNIInit function 2016-07-12 15:07:31 +02:00
Pascal Deveze
f666b0d9aa mtl/portals4: Allocate a PT with the PTL_PT_FLOWCTRL flag only if OMPI_MTL_PORTALS4_FLOW_CONTROL is set 2016-07-12 15:07:31 +02:00
Pascal Deveze
bed572cd6c mtl/portals4: Unlink the ME first, then free the CT and at the end free the PT 2016-07-12 15:07:30 +02:00
Ralph Castain
0e433eaa78 Silence warning 2016-07-11 19:43:02 -07:00
Nathan Hjelm
b47208e909 osc/rdma: fix bug in CAS
This commit fixes a bug in the RDMA compare-and-swap implementation
that caused the origin value to always be written even if the compare
should have failed.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2016-07-11 09:54:23 -06:00
Edgar Gabriel
c8b1c6cae1 Merge pull request #1856 from edgargabriel/pr/zero-size-iread-iwrite
io/ompio: fix the request in case of a zero size write/read operation
2016-07-11 08:19:02 -05:00
Gilles Gouaillardet
14624506df coll/libnbc: do not exchange data between roots in ompi_coll_libnbc_ireduce_scatter_inter()
this is now useless since the scatter is done via the local communicator
2016-07-11 17:18:30 +09:00
Edgar Gabriel
3dd81e9e09 io/ompio: fix the request in case of a zero size write/read operation 2016-07-08 14:11:22 -05:00
Gilles Gouaillardet
a55d57406b coll/base: fix non zero lower bound datatype handling in mca_coll_base_alltoallv_intra_basic_inplace() 2016-07-08 16:55:26 +09:00
Gilles Gouaillardet
7b8094aac1 coll/base: silence misc warning
as reported by Coverity with CIDs 1363349-1363362

Offset temporary buffer when a non zero lower bound datatype is used.

Thanks Hristo Iliev for the report

(cherry picked from commit 0e393195d9)
2016-07-08 13:06:26 +09:00
Gilles Gouaillardet
678d08647b coll/libnbc: various fixes
- correctly handle non commutative operators
 - correctly handle non zero lower bound ddt
 - correctly handle ddt with size > extent
 - revamp NBC_Sched_op so it takes two buffers and matches ompi_op_reduce semantic
 - various fix for inter communicators

Thanks Yuki Matsumoto for the report
2016-07-07 15:55:49 +09:00
Gilles Gouaillardet
3e559a14a9 coll/inter: fix non standard ddt handling
- correctly handle non zero lower bound ddt
 - correctly handle ddt with size > extent

Thanks Yuki Matsumoto for the report
2016-07-07 15:49:59 +09:00
Gilles Gouaillardet
488d037d51 coll/basic: fix non standard ddt handling
- correctly handle non zero lower bound ddt
 - correctly handle ddt with size > extent

Thanks Yuki Matsumoto for the report
2016-07-07 15:49:53 +09:00
Gilles Gouaillardet
c06fb04a9a coll/base: fix non zero lower bound ddt handling in ompi_coll_base_reduce_intra_basic_linear()
Thanks Yuki Matsumoto for the report
2016-07-07 15:49:48 +09:00
Ralph Castain
ee56d9dc1a Shorten the session directory name as some OS's are now providing unusually long temp directory names, causing us to overflow the sockaddr field 2016-07-05 14:59:50 -07:00
George Bosilca
eac5b3c668 Various cleanups in the monitoring PML. 2016-07-05 18:31:25 +02:00
George Bosilca
73972768f8 Remove an apparently useless function. 2016-07-05 18:30:11 +02:00
Artem Polyakov
a4ff9bef6d fix #2 2016-07-05 14:38:35 +03:00
Artem Polyakov
bc973cad30 fix 2016-07-05 14:33:31 +03:00
Artem Polyakov
7d96f12fec pml/yalla: fix yalla performance regression
It was introduced in PR https://github.com/open-mpi/ompi/pull/1228
 in particular in commit 041a6a9f53.

 Original solution was using "flexible array member" called "mxm_base"
 to "fall-through" to the "mxm" send/recv member that located in the
 outer structure.

 After changing number of elements in "mxm_base" from 0 to 1 we actually
 allocating 2 mxm_req_base_t elements which leads to increased overal
 size and harms cache performance.

 It also brakes "mca_pml_yalla_check_request_state" function.
2016-07-05 10:52:48 +03:00
Josh Hursey
59bf1f0c41 Merge pull request #1836 from jjhursey/topic/coll-nbc-0-count-ireduce
mpi/c: Add each check for count==0 in nonblocking reduce interface
2016-07-01 15:22:37 -05:00
Josh Hursey
9b4ed968a4 Merge pull request #1833 from jjhursey/topic/op-init-fix
op: Add a default value for MPI_OP o_name
2016-07-01 15:22:15 -05:00
Joshua Hursey
0671e45de0 op: Add a default value for MPI_OP o_name 2016-07-01 13:46:01 -05:00
Joshua Hursey
96779f68e8 mpi/c: Add each check for count==0 in nonblocking reduce interface
* Matches the blocking versions of these interfaces
   - `iallreduce.c` to match `allreduce.c`
   - `ireduce.c` to match `reduce.c`
   - `ireduce_scatter.c` to match `reduce_scatter.c`
 * Workaround for IMB-NBC benchmark, similar to the workaround
   in place for the IMB-MPI1 benchmark for the blocking collectives.
2016-07-01 13:45:30 -05:00
Joshua Hursey
0a09f8bc51 coll/hcoll: Protect module destruct when not fully initialized
* If hcoll is given a negative priority, but not enabled=0 then
   the module is constructed, but then destructed before calling
   it's query(). So the previous pointers are not initialized.
   If we try to OBJ_RELEASE them in a debug build an assert will fire.
   This commit adds some protection against that and initializes
   the _module pointers to NULL.
2016-07-01 13:41:27 -05:00
Joshua Hursey
59f304b9e9 coll/base: neg. priority cleanup, verbose output improvements
* Print a verbose message if the component was disqualified because of
   a negative priority.
 * If a disqualified component provided a module, release it.
 * Display list of selected components in priority order
   - During the process of volunteering collective functions for a
     communicator, print the component name and priority. This will
     cause the verbose messages to be displayed in reverse priority
     order (lowest priority first, up to highest). This is helpful
     when determining which collective components are active in which
     order for a given communicator.
     To see the messages you need the following MCA parameter set to 9
     or higher: `-mca coll_base_verbose 9`
 * Adjust verbose for commonly needed verbose output from 10 to 9 to
   make it easier to access this information.
2016-07-01 13:41:27 -05:00
Nathan Hjelm
f38cc00df9 Merge pull request #1835 from hjelmn/thread_fix
ompi/request: fix hang in ompi_request_wait_completion
2016-06-30 18:50:32 -06:00
Nathan Hjelm
445b79bba8 ompi/request: fix hang in ompi_request_wait_completion
This commit fixes a hang reported by @nysal which happens when a
request is completed after a sync object is created but before the
sync object can be assigned to the request. In this case we need to
set the sync signaling field to false to ensure WAIT_SYNC_RELEASE does
not hang.

Fixes open-mpi/ompi#1828

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2016-06-30 09:54:00 -06:00