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

9570 Коммитов

Автор SHA1 Сообщение Дата
Yossi Itigin
33471c44ee pml_yalla/mtl_mxm/hcoll: open memory component to activate memory hooks.
Memory hooks are now set-up on demand. pml/yalla, mtl/mxm and
coll/hcoll need the memory hooks, so make sure those are installed.

Signed-off-by: Yossi Itigin <yosefe@mellanox.com>
2017-03-01 12:12:20 +02:00
Gilles Gouaillardet
880f2d5431 mpi/c: revamp error handling in MPI_{Pack,Unpack}[_external]
Thanks Alex and the folks at Mellanox for the help.

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2017-03-01 10:03:31 +09:00
Jeff Squyres
d5266aba90 Merge pull request #2955 from jsquyres/pr/hwloc-external-fixes
Fix --with-hwloc=external
2017-02-28 14:57:07 -05:00
Josh Hursey
0006f0d7c5 Merge pull request #2773 from jjhursey/topic/hook-fwk
Add a 'hook' framework
2017-02-28 12:29:50 -06:00
Ralph Castain
735fbf8f67 Merge pull request #3011 from artpol84/add_proc_fix/master
ompi: Avoid unnecessary PMIx lookups when adding procs.
2017-02-28 08:25:08 -08:00
Jeff Squyres
fec519a793 hwloc: rename opal/mca/hwloc/hwloc.h -> hwloc-internal.h
Per a prior commit, the presence of "hwloc.h" can cause ambiguity when
using --with-hwloc=external (i.e., whether to include
opal/mca/hwloc/hwloc.h or whether to include the system-installed
hwloc.h).

This commit:

1. Renames opal/mca/hwloc/hwloc.h to hwloc-internal.h.
2. Adds opal/mca/hwloc/autogen.options to tell autogen.pl to expect to
   find hwloc-internal.h (instead of hwloc.h) in opal/mca/hwloc.
3. s@opal/mca/hwloc/hwloc.h@opal/mca/hwloc/hwloc-internal.h@g in the
   rest of the code base.

Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2017-02-28 07:48:42 -08:00
Jeff Squyres
0cd3b6c235 treematch: do not include <hwloc.h>
Instead, include "opal/mca/hwloc/hwloc.h"

Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2017-02-28 07:45:23 -08:00
Josh Hursey
b1c4e50500 Merge pull request #2934 from jjhursey/topic/coll-comm-restructure
Move coll structure outside of the communicator
2017-02-28 08:45:18 -06:00
Nathan Hjelm
032bcf915a osc/rdma: fix compile warning
Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2017-02-27 16:26:00 -07:00
George Bosilca
366d64b7e5 Move the collective structure outside the communicator.
As we changed the ABI (forcing a major release), we can limit
the size of the predefined communicators by moving the collective
structure outside the communicator. This might have a minimal,
but unnoticeable, impact on performance. This approach has been
discussed during the January 2017 devel meeting.

Signed-off-by: George Bosilca <bosilca@icl.utk.edu>
Signed-off-by: Joshua Hursey <jhursey@us.ibm.com>
2017-02-27 11:54:17 -06:00
Joshua Hursey
c10bbfded6 ompi/hook: Add the hook/license framework
* Include a 'demo' component that shows some of the features.
 * Currently has hooks for:
   - MPI_Initialized
     - top, bottom
   - MPI_Init_thread
     - top, bottom
   - MPI_Finalized
     - top, bottom
   - MPI_Init
     - top (pre-opal_init), top (post-opal_init), error, bottom
   - MPI_Finalize
     - top, bottom
 * Other places in ompi can 'register' to hook into any one of these places
   by passing back a component structure filled with function pointers.
 * Add a `MCA_BASE_COMPONENT_FLAG_REQUIRED` flag to the MCA structure that
   is checked by the `hook` framework. If a required, static component has
   been excluded then the `hook` framework will fail to initialize.
   - See note in `opal/mca/mca.h` as to why this is checked in the `hook`
     framework and not in `opal/mca/base/mca_base_component_find.c`

Signed-off-by: Joshua Hursey <jhursey@us.ibm.com>
2017-02-27 12:05:53 -05:00
Nathan Hjelm
581bff9871 Merge pull request #3034 from hjelmn/osc_rdma_atomic
osc/rdma: make locking code more robust
2017-02-27 08:46:52 -07:00
Nathan Hjelm
4707c7c5e0 osc/rdma: make locking code more robust
Under heavy load the locking code could fail if the underlying btl
module started to return OPAL_ERR_OUT_OF_RESOURCE on atomic
operations. This commit updates the code to gracefully handle btl
errors.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2017-02-27 00:01:26 -07:00
Gilles Gouaillardet
af0b5cffb4 asm: rename the AMD64 into X86_64
in this context, AMD64 really means amd64 or em64t, so let's
rename this into X86_64 in order to avoid any confusion

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2017-02-27 15:10:50 +09:00
Sylvain Jeaugey
f827b6b8dd Fix more typos using the allgather module for allreduce operations, causing a crash when CUDA collectives are enabled.
Signed-off-by: Sylvain Jeaugey <sjeaugey@nvidia.com>
Signed-off-by: Akshay Venkatesh <akvenkatesh@nvidia.com>
2017-02-24 16:35:29 -08:00
Yossi
fb67c966a8 Merge pull request #2944 from alex-mikheev/topic/pml_ucx_bsend
ompi: pml ucx: add support for the buffered send
2017-02-22 12:21:03 +02:00
Artem Polyakov
717f3fef62 ompi: Avoid unnecessary PMIx lookups when adding procs.
Signed-off-by: Artem Polyakov <artpol84@gmail.com>
2017-02-22 16:09:30 +07:00
Alex Mikheev
b015c8bb48 ompi: pml ucx: add support for the buffered send
Signed-off-by: Alex Mikheev <alexm@mellanox.com>
2017-02-21 17:19:22 +02:00
Gilles Gouaillardet
4184c01be5 Merge pull request #2393 from bosilca/topic/no_predefined_ddt_refcount
Don't refcount the predefined datatypes.
2017-02-21 09:38:11 +09:00
Todd Kordenbrock
048f757d9f osc-portals4: add support for noncontiguous datatypes
This commit implements onesided operations for noncontiguous
datatypes using two different algorithms.

 * If the result and/or origin datatype is noncontiguous and the
   target datatype is contiguous, then an iovec MD is created for
   the result and origin.  The operation is performed using a
   single Portals4 call (unless it exceeds the max message size).
 * If the target datatype is noncontigous, then an algorithm
   similar to the one in osc-rdma is used to loop over the
   contiguous blocks of each datatype.  The operation is
   performed using multiple Portals4 calls.

This commit ensures that individual operations do not exceed the
max atomic size or the max message size supported by the device.

Signed-off-by: Todd Kordenbrock <thkgcode@gmail.com>
2017-02-15 16:17:13 -06:00
Gilles Gouaillardet
cd4537193c osc/sm: fix MPI_Win_allocate_shared() alignment
add padding so the memory allocated by MPI_Win_allocate_shared()
is 64 bytes aligned.

Thanks Joseph Schuchart for the bug report

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2017-02-15 13:40:48 +09:00
Josh Hursey
0b273c2561 Merge pull request #2808 from jjhursey/fix/ibm/reduce-local-to-coll
coll: Move reduce_local into the coll framework
2017-02-14 15:54:15 -06:00
Nathan Hjelm
cc4a0fabcf Merge pull request #2727 from hjelmn/osc_rdma
osc/rdma: fix typo in check for MPI_MODE_NOCHECK
2017-02-14 10:50:33 -07:00
Joshua Hursey
78006f93a4 coll: Move reduce_local into the coll framework
* Since we are adding a new function to `mca_coll_base_module_2_1_0_t`
   we need to increase the version of the module structure to `2_2_0`.
 * Add a comment just above the PREDEFINED_COMMUNICATOR_PAD describing
   it's purpose and when it should change. To help future developers
   trying to answer the question noted in the comment.

Signed-off-by: Joshua Hursey <jhursey@us.ibm.com>
2017-02-14 08:56:07 -06:00
Gilles Gouaillardet
e70a30cca4 coll/libnbc: optimize zero size ialltoall{v,w} with MPI_IN_PLACE
and incidentally avoids malloc(0)

Thanks Lisandro Dalcin for the report

Fixes open-mpi/ompi#2945

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2017-02-13 15:21:28 +09:00
Gilles Gouaillardet
12949547f4 coll/libnbc: fix a2aw_sched_linear() with zero size datatype or zero count
Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2017-02-13 15:21:28 +09:00
Joshua Hursey
383330a50d coll/basic: Expand check for negative input values
* Negative values are parameter errors for neighborhood collectives
   - Add checks to the mpi/c interface `MPI_PARAM_CHECK`
 * Fix a success check for neighbor_alltoallw with dist_graph

Signed-off-by: Joshua Hursey <jhursey@us.ibm.com>
2017-02-08 14:26:32 -06:00
Geoff Paulsen
4917e44a7d Merge pull request #2832 from jjhursey/topic/ibm/osc-base-dt-abort
osc/base: Detect unsupported data types and abort
2017-02-05 04:26:04 -06:00
Howard Pritchard
f4ad119693 Merge pull request #2914 from hppritcha/topic/nbc_compiler_warning
swat some compiler warnings
2017-02-04 11:56:52 -05:00
Howard Pritchard
acaecb2448 swat some compiler warnings
Signed-off-by: Howard Pritchard <howardp@lanl.gov>
2017-02-03 08:28:15 -07:00
Gilles Gouaillardet
e879d2910a coll/tuned: make coll_tuned_gather_algorithms MCA settable
Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2017-02-02 11:00:38 +09:00
Nathan Hjelm
362ac8b87e osc/pt2pt: fix threading issues
This commit fixes a number of threading issues discovered in
osc/pt2pt. This includes:

 - Lock the synchronization object not the module in osc_pt2pt_start.
   This fixes a race between the start function and processing post
   messages.

 - Always lock before calling cond_broadcast. Fixes a race between
   the waiting thread and signaling thread.

 - Make all atomically updated values volatile.

 - Make the module lock recursive to protect against some deadlock
   conditions. Will roll this back once the locks have been
   re-designed.

 - Mark incoming complete *after* completing an accumulate not
   before. This was causing an incorrect answer under certain
   conditions.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2017-02-01 10:33:01 -07:00
Gilles Gouaillardet
02558134ef coll/base: remove unused local variable
Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2017-02-01 11:54:17 +09:00
Gilles Gouaillardet
ad44ecb2ba pml/base: initialize global variables
Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2017-02-01 11:49:47 +09:00
bosilca
c331e6794c Allow all tuned MCA parameters to be modified programatically. (#2829)
Fix a comment in the MCA header.

Signed-off-by: George Bosilca <bosilca@icl.utk.edu>
2017-01-31 21:47:36 -05:00
Josh Hursey
5fcd69da52 Merge pull request #2831 from jjhursey/topic/ibm/pml-bsend
pml/base: Expose some bsend varaibles so PMLs may reference them
2017-01-31 10:31:42 -06:00
Gilles Gouaillardet
9bcadbd51b coll/libnbc: fix the red_schain algo of ireduce with MPI_IN_PLACE
this fixes a regression introduced in open-mpi/ompi@045d0c5f4c

Fixes open-mpi/ompi#2879

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2017-01-30 14:19:45 +09:00
Yossi Itigin
13c3bf0dd7 yalla: fix memory leak with blocking non-contig send.
Signed-off-by: Yossi Itigin <yosefe@mellanox.com>
2017-01-29 18:51:43 +02:00
Ralph Castain
3440b46e5e Merge pull request #2820 from rhc54/topic/async
Per f2f meeting: if async modex is given, default to no MPI init barr…
2017-01-27 15:43:43 -08:00
Josh Hursey
f4a86904c4 Merge pull request #2813 from jjhursey/fix/ibm/comm-cleanup
communicator: Fix uninitialized variable
2017-01-26 14:35:32 -06:00
Josh Hursey
ebc90f926e Merge pull request #2806 from jjhursey/fix/ibm/aint-diff-type
Fix a minor error at MPI_AINT_DIFF.
2017-01-26 14:23:21 -06:00
Josh Hursey
0408c116eb Merge pull request #2805 from jjhursey/fix/ibm/base-allgatherv
coll/base: Allgatherv MPI_IN_PLACE Bug
2017-01-26 14:21:57 -06:00
Geoffrey Paulsen
d2527cff46 Fixing comment only in MPI_IN_PLACE case for ireduce in libnbc.
Signed-off-by: Geoffrey Paulsen <gpaulsen@us.ibm.com>
2017-01-26 10:58:51 -08:00
Geoffrey Paulsen
045d0c5f4c Fix for Ireduce + MPI_IN_PLACE.
Fixes a wrong answer from MPI_Ireduce when the red_sched_chain()
path was taken (which only happens for np<=4 and mesgsize>=64k).

The way libnbc treats MPI_IN_PLACE is to set sbuf == rbuf, and
whether an algorithm will work cleanly or not after that depends on the
details.

In this case the last steps of the algorithm amounted to
    (right neighbor is sending us reduction results from ranks 1..n-1)
    recv into rbuf from right neighbor
    add the contribution from our sbuf into rbuf
this would be fine in general, but if sbuf==rbuf, that recv overwrites
the sbuf. I changed it to recv into a tmpbuf if MPI_IN_PLACE was used.

Signed-off-by: Geoffrey Paulsen <gpaulsen@us.ibm.com>
2017-01-25 18:08:08 -08:00
Nysal Jan K.A
94f92f6b49 osc/base: Detect unsupported data types and abort
Using MPI_MINLOC or MPI_MAXLOC with the following data types
leads to data corruption:
 * MPI_DOUBLE_INT
 * MPI_LONG_INT
 * MPI_SHORT_INT
 * MPI_LONG_DOUBLE_INT

Detect this print a error message and abort.
This workaround should be removed once the following issue is resolved:
 * https://github.com/open-mpi/ompi/issues/1666

Signed-off-by: Joshua Hursey <jhursey@us.ibm.com>
2017-01-25 15:28:28 -06:00
Sameh S. Sharkawi
320ab3b84f pml/base: Expose some bsend varaibles so PMLs may reference them
Signed-off-by: Joshua Hursey <jhursey@us.ibm.com>
2017-01-25 15:21:53 -06:00
Ralph Castain
a7b8190fdc Per f2f meeting: if async modex is given, default to no MPI init barrier, letting the user override that if desired.
Signed-off-by: Ralph Castain <rhc@open-mpi.org>
2017-01-25 10:13:53 -08:00
Joshua Hursey
a2d45f6e9f communicator: Fix uninitialized variable
Signed-off-by: Joshua Hursey <jhursey@us.ibm.com>
2017-01-24 16:46:13 -06:00
Zhi Ming Wang
9718bbac82 Fix a minor error at MPI_AINT_DIFF.
Signed-off-by: Joshua Hursey <jhursey@us.ibm.com>
2017-01-24 16:06:14 -06:00
Mark Allen
a3452adfa9 coll/base: Allgatherv MPI_IN_PLACE Bug
MPI_Allgatherv with MPI_IN_PLACE reads data from wrong location.

They were locating the MPI_IN_PLACE send buffer as
```c
         send_buf = (char*)rbuf;
         for (i = 0; i < rank; ++i) {
             send_buf += ((ptrdiff_t)rcounts[i] * extent);
         }
```
when it should be
```c
         send_buf = (char*)rbuf;
         send_buf += ((ptrdiff_t)disps[rank] * extent);
```
because disps[] specifies where things are in the v-style buffers.

Signed-off-by: Joshua Hursey <jhursey@us.ibm.com>
2017-01-24 15:52:36 -06:00
Edgar Gabriel
cbb3cb9745 fs/ufs: avoid using the exclusive flag with shared file pointer
when a file is opened a second time for shared file pointer operations,
avoid setting the create and exclusive flag.

Signed-off-by: Edgar Gabriel <egabriel@central.uh.edu>
2017-01-24 12:11:29 -06:00
Edgar Gabriel
f5289a1803 common/ompio: store correctly the SHAREDFP_IS_SET flag
it looks like disabling the lazy_open flag for sharedfp components
revealead a bug that lead to a crash in file_close in some tests. Make
sure the SHAREDFP_IS_SET flag is correctly set (and not overwritten again),
and we use that to avoid a double-free of the communicator.

Signed-off-by: Edgar Gabriel <egabriel@central.uh.edu>
2017-01-24 12:09:56 -06:00
Gilles Gouaillardet
d5aa310884 mpiext/affinity: initialize all output variables of OMPI_Affinity_str()
Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2017-01-24 09:13:29 +09:00
Gilles Gouaillardet
501eb8dc7e ompio: plug misc memory leaks
Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2017-01-24 09:13:19 +09:00
Gilles Gouaillardet
d0629f18c2 coll/libnbc: optimize size one communicators
simply "return" with ompi_request_empty if the communicator size is 1

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2017-01-24 09:12:47 +09:00
Gilles Gouaillardet
6f2ca5809b man: fix a typo in MPI_Win_get_name()
Thanks Nicolas Joly for the report

Fixes open-mpi/ompi#2782

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2017-01-24 09:08:13 +09:00
Edgar Gabriel
4dc09de3b8 common/ompio: update comment based on the previsou commit.
No source code changed.

Signed-off-by: Edgar Gabriel <egabriel@central.uh.edu>
2017-01-23 13:38:05 -06:00
Edgar Gabriel
3eae0eecd0 io/ompio: change default for sharedfp_lazy_open parameter
Revert the logic of io_ompio_sharedfp_lazy_open. The user now has to explicitely
disable shared fp in order for the structures not to be allocated.
Otherwise, resetting the shared fp e.g. in case the file was opened
in append mode will not work correctly, the code could deadlock.

Signed-off-by: Edgar Gabriel <egabriel@central.uh.edu>
2017-01-23 08:59:22 -06:00
Edgar Gabriel
d3a8d38cc6 common/ompio: correctly position shared fp in append mode
Fixes a bug reported on the mailing list. ompio did only reposition the individual
file pointer when the file was opened in append mode. Set the shared file
pointer also to point to the end of the file, similarly to the individual
file pointer.

Signed-off-by: Edgar Gabriel <egabriel@central.uh.edu>
2017-01-23 08:59:05 -06:00
Nathan Hjelm
0497ec0b70 osc/rdma: fix typo in check for MPI_MODE_NOCHECK
This commit fixes two typos in the lock_all path that inverted the
MPI_MODE_NOCHECK flag.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2017-01-12 11:28:11 -07:00
Gilles Gouaillardet
4932391002 ompi/proc: fix ompi_proc_finalize()
revert bits of open-mpi/ompi@cf534d0c95
we cannot del_procs here since the pml framework has already been closed

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2017-01-12 11:41:35 +09:00
George Bosilca
c2cd717f82 Don't refcount the predefined datatypes.
Signed-off-by: George Bosilca <bosilca@icl.utk.edu>
2017-01-11 16:48:59 -05:00
Gilles Gouaillardet
2189c5bcc3 ompi/dpm: plug a memory leak in disconnect_waitall()
Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2017-01-06 15:38:44 +09:00
Gilles Gouaillardet
cf534d0c95 ompi/proc: plug a memory leak in ompi_proc_finalize()
Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2017-01-06 13:46:35 +09:00
Gilles Gouaillardet
1daa80d78f mtl/psm2: plug a memory leak in ompi_mtl_psm2_component_open()
Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2017-01-06 09:28:32 +09:00
Joshua Ladd
57c0c847d0 Merge pull request #2603 from xinzhao3/topic/revert-ucx-mt
Revert "PML/SPML/UCX: add UCX MT support to PML and SPML."
2017-01-04 11:50:37 -05:00
Ralph Castain
66131b4183 Remove the bcol, coll/ml, and sbgp code as stale and lacking a maintainer
Signed-off-by: Ralph Castain <rhc@open-mpi.org>
2017-01-03 19:32:48 -08:00
Ralph Castain
dadc6fbaf6 Merge pull request #2448 from thananon/remove_request_lock
Completely removed ompi_request_lock and ompi_request_cond
2017-01-03 19:31:46 -08:00
Jeff Squyres
33d2988985 Merge pull request #2647 from OMGtechy/master
Fixed -Wmisleading-indentation in ad_read_coll.c
2017-01-03 12:24:22 -05:00
Ralph Castain
fe68f23099 Only instantiate the HWLOC topology in an MPI process if it actually will be used.
There are only five places in the non-daemon code paths where opal_hwloc_topology is currently referenced:

* shared memory BTLs (sm, smcuda). I have added a code path to those components that uses the location string
  instead of the topology itself, if available, thus avoiding instantiating the topology

* openib BTL. This uses the distance matrix. At present, I haven't developed a method
  for replacing that reference. Thus, this component will instantiate the topology

* usnic BTL. Uses the distance matrix.

* treematch TOPO component. Does some complex tree-based algorithm, so it will instantiate
  the topology

* ess base functions. If a process is direct launched and not bound at launch, this
  code attempts to bind it. Thus, procs in this scenario will instantiate the
  topology

Note that instantiating the topology on complex chips such as KNL can consume
megabytes of memory.

Fix pernode binding policy

Properly handle the unbound case

Correct pointer usage

Do not free static error messages!

Signed-off-by: Ralph Castain <rhc@open-mpi.org>
2016-12-29 10:33:29 -08:00
Joshua Gerrard
94e87654c6 Fixed -Wmisleading-indentation in ad_read_coll.c
Signed-off-by: Joshua Gerrard <joshuagerrard+ompi-commit@protonmail.com>
2016-12-28 20:14:13 +00:00
Jeff Squyres
d772fcf8f1 Merge pull request #2509 from OMGtechy/master
Fixed memory leak and some -Werror=unused-result warnings
2016-12-27 17:13:23 -05:00
Nysal Jan K.A
25ba507ada mpit: Fix MPI_T_pvar_get_index
MPI_T_pvar_get_index was returning an incorrect index. The index
was never set correctly while registering the performance variables.
Additionally fix a missing case in the mca_base_var_type_t to MPI
datatype conversion. This type is currently used for control variables
registered by mxm, fca and hcoll components.

Signed-off-by: Nysal Jan K.A <jnysal@in.ibm.com>
2016-12-22 12:30:21 +05:30
Gilles Gouaillardet
773cad6b3e ompi/debugger: fix mqs_version_string()
Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2016-12-22 15:00:47 +09:00
Xin Zhao
2d77912c19 Revert "PML/SPML/UCX: add UCX MT support to PML and SPML."
This reverts commit 0ecf3c951c.

Signed-off-by: Xin Zhao <xinz@mellanox.com>
2016-12-19 18:57:48 +02:00
Joshua Gerrard
3332a7d630 Fixed memory leak and some -Werror=unused-result warnings
Signed-off-by: Joshua Gerrard <joshuagerrard+ompi-commit@protonmail.com>
2016-12-17 17:43:14 +00:00
Mark Allen
eec1d5bf2e osc/pt2pt: Fix hang with Put and Win_lock_all
* When using `MPI_Put` with `MPI_Win_lock_all` a hang is possible since
   the `put` is waiting on `eager_send_active` to become `true` but
   that variable might not be reset in the case of `MPI_Win_lock_all`
   depending on other incoming events (e.g., `post` or ACKs of lock
   requests.

Signed-off-by: Joshua Hursey <jhursey@us.ibm.com>
2016-12-16 11:52:53 -05:00
Mark Allen
0d1336b4a8 osc/pt2pt: Fix Lock/Unlock and Get wrong answer
* When using `MPI_Lock`/`MPI_Unlock` with `MPI_Get` and non-contiguous
   datatypes is is possible that the unlock finishes too early before
   the data is actually present in the recv buffer.
 * We need to wait for the irecv to complete before unlocking the target.
   This commit waits for the outgoing fragment counts to become equal
   before unlocking.

Signed-off-by: Joshua Hursey <jhursey@us.ibm.com>
2016-12-16 11:52:51 -05:00
Mark Allen
1ebf9fd3a4 osc/pt2pt: Fix PSCW after Fence wrong answer.
* If the user uses PSCW synchronization after a Fence then the previous
   epoch is not reset which can cause the PSCW to transfer data before
   it is ready leading to wrong answers.
 * This commit resets the `eager_send_active` in the start call.

Signed-off-by: Joshua Hursey <jhursey@us.ibm.com>
2016-12-16 11:52:49 -05:00
Xin Zhao
0ecf3c951c PML/SPML/UCX: add UCX MT support to PML and SPML.
Signed-off-by: Xin Zhao <xinz@mellanox.com>
2016-12-15 23:59:15 +02:00
Ralph Castain
585540bcee Reduce the flood of warnings due to uninitialized variables, mismatched types, and unused things to a more bearable trickle
Signed-off-by: Ralph Castain <rhc@open-mpi.org>
2016-12-14 16:33:50 -08:00
Ralph Castain
884fb7fcf2 Update the PMIx2 support to include the latest shared memory optimizations
Update ORTE support for dynamic PMIx operations e.g., PMIx_Spawn
Update to track master
Ensure that --disable-pmix-dstore actually disables the dstore. Sync to a few debugger updates

Signed-off-by: Ralph Castain <rhc@open-mpi.org>
2016-12-14 15:00:10 -08:00
Nathan Hjelm
8155124adc Merge pull request #2558 from hjelmn/datatype_fix
ompi/datatype: fix bug in darray that causes MPI/IO failures
2016-12-13 14:02:15 -07:00
Yossi
fa6e263821 Merge pull request #2537 from alinask/topic/pml-spml-ucx-api
PML/SPML/UCX: Adapt to the API changes in the UCX lib.
2016-12-13 20:01:47 +02:00
Nathan Hjelm
eb439228b1 ompi/datatype: fix bug in darray that causes MPI/IO failures
This commit fixes errors in the lb and extent of darray datatypes. For
these datatypes the lb should be the start offset of the rank's data
in the array and the extent should be the size of the entire
datatype. In master the lb was always 0 and the extent was always to
small. This commit updates the call to opal_datatype_resize to set the
correct lb and fixes the extent calculation.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2016-12-13 09:25:16 -07:00
Jeff Squyres
f9e8a55a0e Merge pull request #2543 from ggouaillardet/topic/dll_bit_reproducible
ompi/debuggers: make the binary bit reproducible
2016-12-09 06:35:47 -05:00
KAWASHIMA Takahiro
6510800c16 ompi/request: Fix a persistent request creation bug
According to the MPI-3.1 p.52 and p.53 (cited below), a request
created by `MPI_*_INIT` but not yet started by `MPI_START` or
`MPI_STARTALL` is inactive therefore `MPI_WAIT` or its friends
must return immediately if such a request is passed.

The current implementation hangs in `MPI_WAIT` and its friends
in such case because a persistent request is initialized as
`req_complete = REQUEST_PENDING`. This commit fixes the
initialization.

Also, this commit fixes internal requests used in `MPI_PROBE`
and `MPI_IPROBE` which was marked wrongly as persistent.

MPI-3.1 p.52:

We shall use the following terminology: A null handle is a handle
with value MPI_REQUEST_NULL. A persistent request and the handle
to it are inactive if the request is not associated with any ongoing
communication (see Section 3.9). A handle is active if it is neither
null nor inactive. An empty status is a status which is set to return
tag = MPI_ANY_TAG, source = MPI_ANY_SOURCE, error = MPI_SUCCESS, and
is also internally configured so that calls to MPI_GET_COUNT,
MPI_GET_ELEMENTS, and MPI_GET_ELEMENTS_X return count = 0 and
MPI_TEST_CANCELLED returns false. We set a status variable to empty
when the value returned by it is not significant. Status is set in
this way so as to prevent errors due to accesses of stale information.

MPI-3.1 p.53:

One is allowed to call MPI_WAIT with a null or inactive request
argument. In this case the operation returns immediately with empty
status.

Signed-off-by: KAWASHIMA Takahiro <t-kawashima@jp.fujitsu.com>
2016-12-08 21:42:05 +09:00
Alina Sklarevich
e9d2d029c6 PML/SPML/UCX: Adapt to the API changes in the UCX lib.
Signed-off-by: Alina Sklarevich <alinas@mellanox.com>
2016-12-08 11:33:29 +02:00
Gilles Gouaillardet
4d8f606420 ompi/debuggers: make the binary bit reproducible
instead of compilation date __DATE__, use a MPI_Get_library_version() like string

Thanks Alastair McKinstry for the report

Fixes open-mpi/ompi#2518

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2016-12-08 13:46:43 +09:00
Joshua Ladd
59f40e7cc5 Merge pull request #2500 from vspetrov/hcoll_ctx_free_detection
Detect hcoll_context_free at config
2016-12-05 22:39:40 -05:00
Jeff Squyres
40d94fdc5a Merge pull request #2422 from edgargabriel/pr/cycle-buf-default-val
io/ompio: change the default value of mca parameter
2016-12-05 15:33:52 -05:00
Jeff Squyres
6319332258 Merge pull request #2491 from OMGtechy/master
Swapped use of fprintf for opal_output_verbose
2016-12-03 07:32:03 -05:00
Valentin Petrov
e13e264185 Detect hcoll_context_free at config
Needed for better flexibility with versioning

Signed-off-by: Valentin Petrov <valentinp@mellanox.com>
2016-12-02 22:09:20 +02:00
Jeff Squyres
1504ffb18d ompi_file_delete: output a better error message
Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2016-12-02 11:08:04 -05:00
Joshua Gerrard
d5a45bc12e Swapped use of fprintf for opal_output_verbose
Signed-off-by: Joshua Gerrard <enquiries@joshuagerrard.com>
2016-12-01 19:56:06 +00:00
Gilles Gouaillardet
188b9668e4 ompi/attribute: plug a memory leak in set_value()
OBJ_RELEASE() the previous attribute value if any

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2016-12-01 14:24:30 +09:00
Gilles Gouaillardet
d94e8c97a0 ompi/runtime: release F90 types in ompi_mpi_finalize()
F90 types cannot be freed by the enduser as specified by the standard.
but since they are ompi_datatype_dup'ed from predefined datatypes,
they have to be explicitly free'd at finalize time in order
to avoid a memory leak.

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2016-12-01 14:24:30 +09:00
Gilles Gouaillardet
b2aca6c753 ompi/proc: plug a memory leak in ompi_proc_unpack()
Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2016-12-01 14:24:29 +09:00
Gilles Gouaillardet
ae278fd5df ompi/runtime: plug a memory leak
declare ompi_mpi_show_mca_params_file as NULL
so MPI_T_Init_thread() can be invoked without leaking memory

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2016-12-01 14:24:29 +09:00
Gilles Gouaillardet
43ee08b20e ompi/c: remove unused variable in [i]gatherv
Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2016-12-01 13:59:25 +09:00
Gilles Gouaillardet
fe4c4e95eb coll/libnbc: fix MPI_IN_PLACE handling in i{gather,scatter}[v]
MPI_IN_PLACE is only relevant on the root task, so only test is there

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2016-12-01 13:59:25 +09:00
Gilles Gouaillardet
1a8a276914 coll/libnbc: use zero-size messages in ibarrier
and silence a valgrind warning

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2016-12-01 13:59:25 +09:00
Gilles Gouaillardet
2eec6a08b5 coll/base: fix ompi_coll_base_reduce_scatter_intra_nonoverlapping() with MPI_IN_PLACE
invoke underlying scatterv with MPI_IN_PLACE when appropriate

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2016-12-01 13:59:24 +09:00
Gilles Gouaillardet
8b7999469b coll/base: fix MPI_IN_PLACE in ompi_coll_base_reduce_generic()
avoid copying data to itself when MPI_IN_PLACE is used

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2016-12-01 13:59:24 +09:00
Gilles Gouaillardet
3f1486a508 pml/ob1: initialize one more field in mca_pml_ob1_recv_request_progress_rget()
always initialize recvreq->req_rdma_offset to zero.

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2016-12-01 13:14:23 +09:00
Jeff Squyres
756d09fd6f Merge pull request #2457 from OMGtechy/master
Fixed -Werror=unused-result warnings in comm_cid.c by adding error checking
2016-11-30 20:41:55 -05:00
Gilles Gouaillardet
15098161a3 coll/libnbc: add some comments on how locks are used
no code change

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2016-11-30 17:29:51 +09:00
rhc54
d31f173744 Merge pull request #2476 from rhc54/topic/dbgupdate
Bring forward the debugger-related changes
2016-11-29 19:10:32 -08:00
Ralph Castain
d5fd635efe Bring forward the debugger-related changes
Refs https://github.com/open-mpi/ompi/pull/2425

Signed-off-by: Ralph Castain <rhc@open-mpi.org>
2016-11-29 13:15:20 -08:00
Joshua Gerrard
7cf5de12b9 Fixed -Werror=unused-result warnings in comm_cid.c by adding error checking
Signed-off-by: Joshua Gerrard <enquiries@joshuagerrard.com>
2016-11-29 21:08:12 +00:00
Ralph Castain
114e20ad66 Never collect data when doing the fence at the end of MPI_Init
Signed-off-by: Ralph Castain <rhc@open-mpi.org>
2016-11-29 08:31:35 -08:00
Valentin Petrov
4cdb8ecaad coll/hcoll: hcoll_context_free
Adds the new API hcoll_conetxt_free that resolves the issues
    observed with the ctx cache and group_destroy_notify.

Signed-off-by: Valentin Petrov <valentinp@mellanox.com>
2016-11-29 07:33:05 +02:00
Jeff Squyres
34ea3ce25a Merge pull request #1946 from thananon/romio-add-notes
romio: update REFRESH_NOTES to accommodate the random() patch.
2016-11-28 16:37:23 -05:00
KAWASHIMA Takahiro
9bfca8b274 pml/ob1: Reduce per-rank memory footprint slightly
`sturct mca_pml_ob1_comm_proc_t`, which is allocated per
connected rank in a communicator, had two paddings after
`expected_sequence` and `send_sequence` by alignments.
By changing the order of the members, the size of
`mca_pml_ob1_comm_proc_t` is reduced by 8 bytes on 64-bit
architectures.

Signed-off-by: KAWASHIMA Takahiro <t-kawashima@jp.fujitsu.com>
2016-11-28 19:20:48 +09:00
Edgar Gabriel
ebcfbbc045 Merge pull request #2456 from edgargabriel/pr/dynamic_gen2_uneven_distro_bug
fcoll/dynamic_gen2: fix bug exposed by uneven distribution of data
2016-11-24 16:34:19 -06:00
Edgar Gabriel
b10558c3da fcoll/dynamic_gen2: fix bug exposed by uneven distribution of data
This fixes a bug reported in-house occuring with this component. It is triggered if the data assigned to different aggregators is highly differing, leading to different number of internal iterations required to handle it.

Signed-off-by: Edgar Gabriel <egabriel@central.uh.edu>
2016-11-24 13:02:19 -06:00
Artem Polyakov
c660b9b445 Merge pull request #2401 from artpol84/lazy_wait_fix
ompi/init: always lazy-wait in ompi_mpi_init
2016-11-23 08:53:02 -08:00
Thananon Patinyasakdikul
6c5553c23c Removed the unused ompi_request_[waiting, completed, failed, poll] variable.
Signed-off-by: Thananon Patinyasakdikul <tpatinya@utk.edu>
2016-11-23 10:39:45 -05:00
Ralph Castain
1e2019ce2a Revert "Update to sync with OMPI master and cleanup to build"
This reverts commit cb55c88a8b.
2016-11-22 15:03:20 -08:00
Thananon Patinyasakdikul
b25a8c3fa5 Completely removed ompi_request_lock and ompi_request_cond as we dont need them anymore.
Signed-off-by: Thananon Patinyasakdikul <tpatinya@utk.edu>
2016-11-22 17:58:31 -05: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
2c94a3a6f3 coll/libnbc: fix race condition with multi threaded apps
protect the mca_coll_libnbc_component.active_requests list with
the new mca_coll_libnbc_component.lock mutex.

Thanks Jie Hu for the report

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2016-11-21 10:21:47 +09:00
Jijo Varghese
25e138ea1d error correction to the MPI_file operations thread safety lock
Signed-off-by: Jijo Varghese <jijo733@gmail.com>
2016-11-17 08:18:49 -05:00
Edgar Gabriel
26e9210b15 io/ompio: change the default value of mca parameter
change the default value of the mca_io_ompio_cycle_buffer_size parameter in order to avoid accidental truncation of a file for very large individual operations.
Thanks to @cniethammer for reporting it.

Signed-off-by: Edgar Gabriel <egabriel@central.uh.edu>
2016-11-15 10:09:43 -06:00
Gilles Gouaillardet
bd364d29f7 osc/sm: plug an other memory leak in ompi_osc_sm_free
Fixes open-mpi/ompi@f1b473ee63

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2016-11-14 23:19:07 -07:00
Gilles Gouaillardet
f1b473ee63 osc/sm: plug a memory leak in ompi_osc_sm_free
Thanks Joseph Schuchart for the report.

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2016-11-14 22:22:43 -07:00
Josh Hursey
bcc8230501 Merge pull request #2410 from jjhursey/topic/fix-dist-graph-coll
topo/base: Fix module reference in collective call
2016-11-14 14:29:00 -06:00
Howard Pritchard
fb5ccd3618 Merge pull request #2404 from osvegis/topic/java_paper
Update java paper reference.
2016-11-14 11:35:45 -07:00
Joshua Hursey
5a8b2f7431 topo/base: Fix module reference in collective call
Signed-off-by: Joshua Hursey <jhursey@us.ibm.com>
2016-11-14 11:34:54 -06:00
Jeff Squyres
8d2c98e616 Merge pull request #2408 from hppritcha/manpage_typo
fix minor typo in MPI_Comm_connect man page
2016-11-14 09:38:38 -07:00
Howard Pritchard
3923bf8151 fix minor type in MPI_Comm_connect man page
Signed-off-by: Howard Pritchard <howardp@lanl.gov>
2016-11-14 05:52:45 -07:00
Gilles Gouaillardet
fc776e3fa5 coll: code cleanup
- instead of coll_base_comm_get_reqs(2) for irecv/isend, use only
   one request allocated in the stack and do a irecv/send

 - instead of ompi_request_wait_all(2), simpy ompi_request_wait

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2016-11-13 22:35:33 -07:00
Gilles Gouaillardet
99d30353af coll: Don't allocate space for zero requests
Refs #2402

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2016-11-13 22:20:58 -07:00
Oscar Vega-Gisbert
891272f556 Update java paper reference.
Signed-off-by: Oscar Vega-Gisbert
2016-11-13 22:05:18 +01:00
George Bosilca
725277bc26 Don't allocate space for the requests if the
underlying topology has no neighbors.

This commit fixes issue #2402.

Signed-off-by: George Bosilca <bosilca@icl.utk.edu>
2016-11-12 18:01:09 -05:00
Artem Polyakov
06a73da5ea ompi/init: always lazy-wait in ompi_mpi_init
According to discussion in #2181 we don't need MCA
parameter any more.

Signed-off-by: Artem Polyakov <artpol84@gmail.com>
2016-11-12 07:54:48 +07:00
Gilles Gouaillardet
11dc86f26b cleanup: always #include <pthread.h>
pthreads are now mandatory, so there is no more need to

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2016-11-08 13:07:45 +09:00
Gilles Gouaillardet
023d18abae pml/ob1: mca_pml_ob1_recv must have memchecker mark the buffer as defined upon success
this is generally done in mca_pml_ob1_recv_request_free(), but this is not invoked
in via mca_pml_ob1_recv(), so do it manually

Thanks Yvan Fournier for the report

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2016-11-07 13:10:15 +09:00
Jeff Squyres
f11b0c7edf Merge pull request #2330 from jjhursey/topic/ibcast-non-uniform-dt-wa
coll/libnbc: Work around for non-uniform data types in ibcast
2016-11-05 10:26:04 -04:00
Joshua Hursey
350ef67fe0 coll/libnbc: Work around for non-uniform data types in ibcast
* If (legal) non-uniform data type signatures are used in ibcast
   then the chosen algorithm may fail on the request, and worst case
   it could produce wrong answers.
 * Add an MCA parameter that, by default, protects the user from this
   scenario. If the user really wants to use it then they have to
   'opt-in' by setting the following parameter to false:
   - `-mca coll_libnbc_ibcast_skip_dt_decision f`
 * Once the following Issues are resolved then this parameter can
   be removed.
   - https://github.com/open-mpi/ompi/issues/2256
   - https://github.com/open-mpi/ompi/issues/1763

Signed-off-by: Joshua Hursey <jhursey@us.ibm.com>
2016-11-01 13:33:23 -05:00
Yossi Itigin
17c8f76411 pml_ucx: fix uninitialized field req_status->_cancelled.
Signed-off-by: Yossi Itigin <yosefe@mellanox.com>
2016-11-01 17:02:22 +02:00
Thananon Patinyasakdikul
ea2d38de14 romio: update REFRESH_NOTES to accommodate the random() patch.
From patch: open-mpi/ompi@23b27c510c
Signed-off-by: Thananon Patinyasakdikul <tpatinya@utk.edu>
2016-10-31 16:08:08 -04:00
Joshua Ladd
d27b680de2 Merge pull request #2305 from vspetrov/hcoll_fortran_pair_types
coll/hcoll fortran pair types
2016-10-28 12:05:00 -04:00
Gilles Gouaillardet
efac15e9a1 ompi: use opal_setenv instead of putenv
this fixes a memory leak at finalize

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2016-10-28 09:32:30 +09:00
Gilles Gouaillardet
981dccab8d ompi: cleanup environment at finalize
Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2016-10-28 09:32:30 +09:00
Gilles Gouaillardet
af67183e2f pml/v: fix a memory leak
close the framework if no more component should be used

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2016-10-28 09:32:30 +09:00
Jeff Squyres
e9aab634af Merge pull request #2294 from ggouaillardet/topic/fortran_use_mpi_tkr
fortran/use-mpi-tkr misc fixes
2016-10-27 13:09:06 -04:00
Valentin Petrov
2b7e362e56 coll/hcoll fortran pair types
Adds mapping of the MPI Fortran pair types (2INTEGER, 2REAL, 2DBLPREC)
    to the corresponding hcoll dtypes.

Signed-off-by: Valentin Petrov <valentinp@mellanox.com>
2016-10-27 18:24:07 +03:00
Gilles Gouaillardet
ad7f3f93b0 mpi: support MPI_Dims_create(..., ndims=0, ...)
this is a bozo case, but it should not fail with MPI_ERR_DIMS

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2016-10-27 14:13:51 +09:00
Gilles Gouaillardet
bf789762a7 fortran/use-mpi-tkr: fix MPI_Sizeof handling
MPI_Sizeof related stuff has been moved to their own files.
Remove MPI_Sizeof from Fortran interfaces when it cannot be built
(e.g. stock gcc 4.8 on CentOS 7)

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2016-10-27 08:54:28 +09:00
Gilles Gouaillardet
1a16e68c26 fortran/use-mpi-trk: add PMPI_* interfaces in mpi module
Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2016-10-27 08:54:07 +09:00
Gilles Gouaillardet
8e26e78728 fortran/use-mpi-tkr: only build MPI_File support if requested
Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2016-10-27 08:54:07 +09:00
Gilles Gouaillardet
5543b19e9a fortran/use-mpi-tkr: rename mpi-f90-cptr-interfaces.F90 into mpi-f90-cptr-interfaces.h
this file is meant to be included and not compiled, so use a consistent naming

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2016-10-27 08:54:07 +09:00
Edgar Gabriel
2076622924 Merge pull request #2238 from edgargabriel/pr/delete-error-codes
update the error codes reported by file_delete
2016-10-25 12:38:03 -05:00
George Bosilca
028e747470 Do not alter ompi_coll_tuned_use_dynamic_rules.
This is set globally as an MCA parameter and should be never
altered based on a single communicator setting.
2016-10-25 12:17:25 -04:00
George Bosilca
253eb80e26 Code cleaning of the tuned module. 2016-10-25 12:17:25 -04:00
Edgar Gabriel
74441b960b update the error codes reported by file_delete 2016-10-25 10:15:14 -05:00
Gilles Gouaillardet
8e788b5aee pml/ob1: refactor append_recv_req_to_queue() to improve readability
and fix a typo in a comment

Thanks George for the patch
2016-10-25 10:50:40 +09:00
Gilles Gouaillardet
4a886ac4cc pml/ob1: correctly reset receive request type before init
recvreq->req_recv.req_base.req_type should always be set before invoking
MCA_PML_OB1_RECV_REQUEST_INIT(recvreq, ...) otherwise, the previous type
might be set, and you could end up with MPC_PML_REQUEST_IMPROBE when
MCA_PML_REQUEST_RECV is expected.

Thanks Chris Pattison for the report and test case.

Fixes open-mpi/ompi#2275
2016-10-24 16:50:23 +09:00
Gilles Gouaillardet
055df6f7c6 fortran: correctly defines MPI_DISPLACEMENT_CURRENT with KIND=MPI_OFFSET_KIND
and remove unused ompi/include/mpif-mpi-io.h
2016-10-24 09:53:53 +09:00
Gilles Gouaillardet
e2769e4343 fortran/use-mpi-ignore-tkr: fix typo in MPI_File_write_at_all_begin interface 2016-10-24 09:53:52 +09:00
Gilles Gouaillardet
e02dc1e637 fortran/use-mpi-ignore-trk: fix typo in MPI_File_read_ordered_begin interface 2016-10-24 09:53:52 +09:00
Gilles Gouaillardet
6714f6aee7 coll/libnbc: fix MPI_Ialltoallv with MPI_IN_PLACE and without MPI param check 2016-10-24 09:29:06 +09:00
Gilles Gouaillardet
98f62690f1 man: fix typos in MPI_Info_get_{nkeys,nthkey}
Thanks Nicolas Joly for the patch
2016-10-24 09:04:29 +09:00
Josh Hursey
d1ecc83e14 Merge pull request #2245 from jjhursey/topic/libnbc-error-path
coll/libnbc: Fix error path on internal error
2016-10-21 13:27:17 -05:00
Joshua Hursey
8748e54c11 coll/libnbc: Fix error path on internal error
* If an error is detected internal to libnbc (e.g., PML truncation error)
   this patch makes sure that the request is completed and the `MPI_ERROR`
   field is set approprately.
 * Make an attempt to cleanup outstanding requests before returning.
   - This is a "best attempt" since not all PMLs support canceling requests.
2016-10-21 11:41:08 -04:00
Gilles Gouaillardet
45336d0bea libnbc: fix iallgather[v]
In order to optimize for MPI_IN_PLACE, data is sent from the receive buffer.
consequently, it should be sent with the receive type and count.

Thanks Josh Hursey for the report and test case

Refs open-mpi/ompi#2256
2016-10-21 10:24:25 +09:00
Gilles Gouaillardet
e78fcc4db9 coll/base: fix ompi_coll_base_{gather,scatter}_intra_binomial
receive type is only relevant for root with gather,
send type is only relevant for root with scatter,
so do not access these types on a non root task
2016-10-19 14:05:22 +09:00
Gilles Gouaillardet
cb76d93b4e ompi_wrapper_script: fix $extra_ldflags
use @OMPI_PKG_CONFIG_LDFLAGS@ instead of @OMPI_WRAPPER_EXTRA_LDFLAGS@
so @{libdir} is substitued with ${libdir}

Thanks Manesh Nanavalla for the report
2016-10-19 09:57:55 +09:00
Ralph Castain
7910aa23eb Set lazy_wait_in_init "on" by default for test in master 2016-10-18 08:47:04 -07:00
Gilles Gouaillardet
1e3191115b Merge pull request #2172 from ggouaillardet/topic/ialltoall_in_place
support MPI_IN_PLACE in MPI_Ialltoall*
2016-10-17 17:00:47 +09:00
Gilles Gouaillardet
c530b0a07c mpi/cxx: remove duplicate and now useless typedef 2016-10-15 14:30:00 +09:00
Joshua Ladd
64a15188bd Merge pull request #2199 from vspetrov/coll_hcoll_ialltoallv
coll/hcoll: ialltoallv interface
2016-10-14 07:59:23 -06:00
Gilles Gouaillardet
9389de4199 topo/treematch: fix displacements in mca_topo_treematch_dist_graph_create() 2016-10-14 17:16:49 +09:00
Joshua Ladd
b661307e6f Merge pull request #2218 from yosefe/topic/ucx-pml-spml-update
ucx: adapt pml_ucx and spml_ucx to new UCX APIs
2016-10-13 09:23:37 -04:00
Gilles Gouaillardet
958e29f929 osc/rdma: silence a warning
declare a local variable volatile and silence CID 1372692
2016-10-13 16:10:07 +09:00
Yossi Itigin
05ca466c6b ucx: adapt pml_ucx and spml_ucx to new UCX APIs
- pass field_mask to ucp_init().
- use non-blocking disconnect.
- recv() with pre-allocated request.
- call opal_progress() from iprobe() and improbe().
- use shift pattern in connect/disconnect.
2016-10-12 23:45:45 +03:00
Nathan Hjelm
1b01b6db4f Merge pull request #2213 from hjelmn/osc_rdma
osc/rdma: fix warnings
2016-10-12 13:13:27 -06:00
Nathan Hjelm
ab0a005c95 mpi/cxx: fix warnings
Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2016-10-12 11:30:36 -06:00
Nathan Hjelm
e8ef503bee osc/rdma: fix warnings
Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2016-10-12 10:17:25 -06:00
Gilles Gouaillardet
974dd64293 ompi/errhandler: remove useless include file
and avoid #includ'ing stuff that breaks C++ compilers
2016-10-12 14:49:31 +09:00
Ralph Castain
a2919174d0 Bring the RML modifications across. This is the first step in a revamp of the ORTE messaging subsystem to support fabric-based communications during launch and wireup phases. When completed, the grpcomm and plm frameworks will each have their own "conduit" for communication - each conduit corresponds to a particular RML messaging transport. This can be the active OOB-based component, or a provider from within the RML/OFI component. Messages sent down the conduit will flow across the associated transport.
Multiple conduits can exist at the same time, and can even point to the same base transport. Each conduit can have its own characteristics (e.g., flow control) based on the info keys provided to the "open_conduit" call. For ease during the transition period, the "legacy" RML interfaces remain as wrappers over the new conduit-based APIs using a default conduit opened during orte_init - this default conduit is tied to the OOB framework so that current behaviors are preserved. Once the transition has been completed, a one-time cleanup will be done to update all RML calls to the new APIs and the "legacy" interfaces will be deleted.

While we are at it: Remove oob/usock component to eliminate the TMPDIR length problem - get all working, including oob_stress
2016-10-11 16:01:02 -07:00
Nathan Hjelm
432d79046b Merge pull request #2197 from tkordenbrock/topic/master/osc-rdma.put.use.true_extent
osc-rdma: fix datatype lower bound errors in ompi_osc_rdma_master()
2016-10-11 10:42:02 -06:00
Valentin Petrov
9747a9ea9b coll/hcoll: ialltoallv interface 2016-10-10 15:09:07 +03:00
Todd Kordenbrock
05f86b5df7 osc-rdma: fix datatype lower bound errors in ompi_osc_rdma_master()
Instead of ompi_datatype_get_extent(), use ompi_datatype_get_true_extent()
to get the local and remote lower bound.  For derived types like
subarray, true_lb is the correct offset for RDMA operations.
2016-10-10 06:45:28 -05:00
Todd Kordenbrock
cc863ff9fb osc-portals4: fix datatype errors in put()
Instead of ompi_datatype_get_extent(), use ompi_datatype_get_true_extent()
to get the origin and target lower bound.  For derived types like
subarray, true_lb is the correct offset for RDMA operations.  Also,
instead of the extent use the size of the datatype.
2016-10-10 06:45:14 -05:00
Gilles Gouaillardet
7cae36f5ab ompi: accept MPI_IN_PLACE in MPI_Ialltoall* 2016-10-08 19:47:25 +09:00
Gilles Gouaillardet
1e0f591811 coll/libnbc: implement support for MPI_IN_PLACE in MPI_Ialltoall*
Thanks Chris Ward for the report

Many thanks to George for the guidance
2016-10-08 19:44:01 +09:00
Gilles Gouaillardet
315a622723 ompi: invokes opal_cleanup() if ompi_mpi_finalize() when possible
As long as it is illegal to call MPI_T_init_thread() after MPI_Finalize(),
be gentle and release as much memory as possible in MPI_Finalize().
opal_cleanup() will be invoked again by the OPAL destructor, but will
do nothing since classes was set to NULL
2016-10-08 16:58:20 +09:00
Gilles Gouaillardet
1ef2ad029f fs: do not build the fs components configured with --disable-io-ompio 2016-10-07 13:15:04 +09:00
Gilles Gouaillardet
6c6e35bb40 ompi/communicator: silence warnings 2016-10-06 15:03:06 +09:00
Gilles Gouaillardet
b95e243f83 ompi/errhandler: silence warnings
ISO C forbids mixing object pointer and function pointer
2016-10-06 13:20:51 +09:00
Gilles Gouaillardet
95e63d7803 cxx bindings: fix support for --disable-mpi-io configure option
Fixes open-mpi/ompi#2179
2016-10-06 09:53:59 +09:00
Todd Kordenbrock
54c46ca14e Merge pull request #2156 from tkordenbrock/topic/raccumulate.offset.fix
osc-portals4: fix offset bug in raccumulate()
2016-10-04 20:11:54 -05:00
Nathan Hjelm
c6464cae37 mpi/cxx: isolate internal headers from C++ bindings
This commit adds some glue code to support the C++ bindings and
updates the bindings to use the new glue code. This protects our
internal headers (which are C99) from C++. This is done as a quick
workaround to compilation errors when the legacy C++ bindings are
requested.

Fixes open-mpi/ompi#2055

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2016-10-04 11:13:25 -06:00
Todd Kordenbrock
c536e11cf3 osc-portals4: fix offset bug in raccumulate()
This commit fixes a bug where the remote offset was used as both
the local and remote offset.

Thanks to @PDeveze for the patch.
2016-10-04 09:09:17 -05:00
Joshua Hursey
fc3cf994db build: Custom libmpi_FOO name fix for wrapper compilers
* In open-mpi/ompi@f6f24a4f67 I missed
   updating the library references for the wrapper compilers.
 * Fixes the CXX wrapper compiler and CXX library is renamed as needed.
 * Fixes the Java wrapper compiler and the Java library is renamed as needed.
2016-09-30 16:40:56 -05:00
Joshua Hursey
f6f24a4f67 build: Custom libmpi(_FOO) name option in configure
* Add a configure time option to rename libmpi(_FOO).*
   - `--with-libmpi-name=STRING`
 * This commit only impacts the installed libraries.
   Internal, temporary libraries have not been renamed to limit the
   scope of the patch to only what is needed.

For example:
```shell
shell$ ./configure --with-libmpi-name=wookie
...
shell$ find . -name "libmpi*"
shell$ find . -name "libwookie*"
./lib/libwookie.so.0.0.0
./lib/libwookie.so.0
./lib/libwookie.so
./lib/libwookie.la
./lib/libwookie_mpifh.so.0.0.0
./lib/libwookie_mpifh.so.0
./lib/libwookie_mpifh.so
./lib/libwookie_mpifh.la
./lib/libwookie_usempi.so.0.0.0
./lib/libwookie_usempi.so.0
./lib/libwookie_usempi.so
./lib/libwookie_usempi.la
shell$
```
2016-09-29 21:47:24 -05:00
Joshua Ladd
4b0b7fd18e Merge pull request #2089 from artpol84/fix_pmix_barrier
ompi/mpi_init: fix barrier
2016-09-27 09:43:25 -04:00
Gilles Gouaillardet
80beb30c58 coll/sync: plug a memory leak 2016-09-27 16:29:57 +09:00