1
1

30015 Коммитов

Автор SHA1 Сообщение Дата
Wei-keng Liao
56f45b2aeb stride size should be 4 x 16, as extent of oldtype is 16 bytes
Signed-off-by: wkliao
2019-07-12 13:55:22 -05:00
Brian Barrett
e5b7101a95
Merge pull request #6805 from wckzhang/reachable
Reachable
2019-07-12 09:35:43 -07:00
Ralph Castain
6f1fa35432
Merge pull request #6807 from ggouaillardet/topic/ess_base_leak
ess/base: fix a misc memory leak in orte_ess_base_proc_binding()
2019-07-12 07:03:31 -07:00
Gilles Gouaillardet
24f2961156 ess/base: fix a misc memory leak in orte_ess_base_proc_binding()
Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2019-07-12 17:01:04 +09:00
Gilles Gouaillardet
0fe756d416 mpi: retain operation and datatype in non blocking collectives
MPI standard states a user MPI_Op and/or user MPI_Datatype can be free'd
after a call to a non blocking collective and before the non-blocking
collective completes.
Retain user (only) MPI_Op and MPI_Datatype when the non blocking call is
invoked, and set a request callback so they are free'd when the MPI_Request
completes.

Thanks Thomas Ponweiser for reporting this

Fixes open-mpi/ompi#2151
Fixes open-mpi/ompi#1304

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2019-07-12 09:15:45 +09:00
William Zhang
c0c3e1b540 reachable: Update documentation on reachable function
Added information on the type of objects provided in the list as well as
the required fields for them.

Signed-off-by: William Zhang <wilzhang@amazon.com>
2019-07-11 21:36:12 +00:00
William Zhang
c9214cc53e reachable: Change list name from *_if to *_ifs
The parameter names were misleading due to implying a single interface
instead of a list. This will provide more clarity in distinguishing the
list of interfaces from each individual interface.

Signed-off-by: William Zhang <wilzhang@amazon.com>
2019-07-11 21:33:24 +00:00
George Bosilca
aa17392309
Optimize the pack/unpack.
Start optimizing the code.

This commit divides the operations in 2 parts, the first, outside the
critical part, deals with partial blocks of predefined elements, and the
second, inside the critical path, only deals with full blocks of
elements. This reduces the number of expensive operations in the
critical path and results in a decent performance increase.

Signed-off-by: George Bosilca <bosilca@icl.utk.edu>
2019-07-11 14:49:29 -04:00
Gilles Gouaillardet
d0dc6218ba
Merge pull request #6709 from ggouaillardet/topic/opal_output_verbose
opal/util: revamp opal_output_verbose()
2019-07-11 11:12:03 +09:00
George Bosilca
3562d70679
Get rid of the division in the critical path.
Amazing how a bad instruction scheduling can have such a drastic impact
on the code performance. With this change, the get a boost of at least
50% on the performance of data with a small blocklen and/or count.

Signed-off-by: George Bosilca <bosilca@icl.utk.edu>
2019-07-10 00:28:29 -04:00
Jeff Squyres
07c722e2c8
Merge pull request #6802 from jsquyres/pr/trivial-gethostname-unification
opal/if/linux_ipv6: unify gethostname() call behavior
2019-07-09 15:06:02 -04:00
George Bosilca
a80255235a
Rework the datatype commit.
Optimize contiguous loops by collapsing them into a single element.
During datatype optimization collapse similar elements into larger
blocks.

Signed-off-by: George Bosilca <bosilca@icl.utk.edu>
2019-07-09 14:50:09 -04:00
George Bosilca
9ff15efac8
Optimize the position placement.
Upon detecting a datatype loop representation skip the entire loop
according the the remaining space.

Signed-off-by: George Bosilca <bosilca@icl.utk.edu>
2019-07-09 14:50:09 -04:00
George Bosilca
0a24f0374e
Small improvements on the test.
Rework the to_self test to be able to be used as a benchmark.

Signed-off-by: George Bosilca <bosilca@icl.utk.edu>
2019-07-09 14:50:09 -04:00
George Bosilca
75a53976a3
Disable checksum.
Signed-off-by: George Bosilca <bosilca@icl.utk.edu>
2019-07-09 14:50:09 -04:00
George Bosilca
46ddf5460d
Clean and sync the pack and unpack functions.
- optimize handling of contiguous with gaps datatypes.
- fixes a performance issue for all datatypes with a count of 1.
- optimize the pack/unpack of contiguous with gaps datatype.
- optimize the case of blocklen == 1

Signed-off-by: George Bosilca <bosilca@icl.utk.edu>
2019-07-09 14:50:09 -04:00
George Bosilca
d335eea18f
Optimize the raw representation.
Merge contiguous iov in order to minimize the number of returned iovec.

Signed-off-by: George Bosilca <bosilca@icl.utk.edu>
2019-07-09 14:50:08 -04:00
George Bosilca
f25674291b
Optimized datatype description.
Move toward a base type of vector (count, type, blocklen, extent, disp)
with disp and extent applying toward the count repertition and blocklen
being a contiguous memory of type type.
Implement 2 optimizations on this description used during type_commit:
- collapse: successive similar datatype descriptions are collapsed
together with an increased count.
- fusion: fuse successive datatype descriptions in order to minimize the
number of resulting memcpy during pack/unpack.

Fixes at the OMPI datatype level including:
 - Fix the create_hindexed and vector creation.
 - Fix the handling of [get|set]_elements and _count.
 - Correctly compute the dispacement for block indexed types.
 - Support the MPI_LB and MPI_UB deprecation, aka. OMPI_ENABLE_MPI1_COMPAT.

Signed-off-by: George Bosilca <bosilca@icl.utk.edu>
2019-07-09 14:50:08 -04:00
Jeff Squyres
650dd3e4cf opal/if/linux_ipv6: unify gethostname() call behavior
Unfortunately, https://github.com/open-mpi/ompi/pull/6797 was merged
before all feedback was received (39b799d936).  This PR is a minor
addendum to that commit.

This PR simply removes a meaningless `= {0}` operation.

The use of gethostname() here -- and many other places in the code
base -- is technically unsafe.  See
https://github.com/open-mpi/ompi/issues/6801 for a further description
of the issue and a suggested fix.  But the risk is quite low;
real-world hostnames are usually much shorter than
OPAL_MAXHOSTNAMELEN.  Hence, this PR just removes the meaningless
operation and leaves a real fix for gethostname() usage to a potential
future PR.

Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2019-07-09 10:38:24 -07:00
Howard Pritchard
29468ec03f
Merge pull request #6797 from orivej/fix-if_linux_ipv6-addrstr
Fix if_linux_ipv6 verbose output of interface addresses
2019-07-09 09:08:03 -06:00
Jeff Squyres
506d0b104d
Merge pull request #6793 from jmbr/patch-1
Add missing argument name.
2019-07-09 11:00:09 -04:00
Orivej Desh
39b799d936 Fix if_linux_ipv6 verbose output of interface addresses
Previously the verbose output of if_linux_ipv6_open looked like this:

    found interface ab c: 0ab: a b: abc: 0 0: a 0🔡 0 0 scope 0

This changes the output to:

    found interface eth0 inet6 ab0c🆎a0b🔤0:a00:abcd:0 scope 0

Signed-off-by: Orivej Desh <orivej@gmx.fr>
Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2019-07-09 05:45:15 -07:00
Gilles Gouaillardet
d2876fa4fd opal/util: revamp opal_output_verbose()
A typical parameter of opal_output_verbose() is ORTE_NAME_PRINT(...),
which is an expensive macro.
Most of the time, this is unnecessary since the verbosity level is too high.

Make opal_output_verbose() a macro so such arguments are only evaluated if the
verbosity is low enough.

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2019-07-09 11:24:31 +09:00
Juan M. Bello-Rivas
24c018fa22 Add missing argument name.
Signed-off-by: Juan M. Bello-Rivas <jbellorivas@rigetti.com>
2019-07-08 17:00:09 -07:00
Jeff Squyres
b738fa295d
Merge pull request #6796 from orivej/fix-tcp_component_close-segfault
Fix oob_tcp tcp_component_close segfault with active listeners
2019-07-08 18:13:52 -04:00
Ralph Castain
1eb6dda404
Merge pull request #6781 from orivej/ORTE_FORCED_TERMINATE
Fix ORTE_FORCED_TERMINATE message
2019-07-08 12:13:43 -07:00
Gilles Gouaillardet
66bb26c7a5
Merge pull request #6798 from ggouaillardet/topic/man_allgather
man: fix MPI_Allgather[v] man pages
2019-07-08 13:50:12 +09:00
Gilles Gouaillardet
db760c508d man: fix MPI_Allgather[v] man pages
- remove incorrect reference to MPI_ROOT
 - fix MPI_IN_PLACE description

no code change

[skip ci]

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2019-07-08 13:45:35 +09:00
Gilles Gouaillardet
c2d35aaadc
Merge pull request #6790 from ggouaillardet/topic/ompi_comm_spawn_f
fortran/mpif-h: correctly handle array_of_errcodes in ompi_comm_spawn…
2019-07-08 09:06:21 +09:00
Orivej Desh
78b7e342bd Fix oob_tcp tcp_component_close segfault with active listeners
oob_tcp in non-HNP mode shares libevent event_base with oob_base [1].
orte_oob_base_close calls:
(1) oob_tcp component_shutdown, then
(2) opal_progress_thread_finalize, then
(3) oob_tcp tcp_component_close [2].
opal_progress_thread_finalize calls tracker_destructor [3] that frees the
event_base [4]. If any oob_tcp event listeners are active at this time, oob_tcp
will crash trying to delete them at [5] [6].

This change moves oob_tcp event listener cleanup from component_close to
component_shutdown so that it happens before the event_base is freed.

[1] https://github.com/open-mpi/ompi/blob/v4.0.1/orte/mca/oob/tcp/oob_tcp_listener.c#L160
[2] https://github.com/open-mpi/ompi/blob/v4.0.1/orte/mca/oob/base/oob_base_frame.c#L95
[3] https://github.com/open-mpi/ompi/blob/v4.0.1/opal/runtime/opal_progress_threads.c#L232
[4] https://github.com/open-mpi/ompi/blob/v4.0.1/opal/runtime/opal_progress_threads.c#L65
[5] https://github.com/open-mpi/ompi/blob/v4.0.1/orte/mca/oob/tcp/oob_tcp_component.c#L192
[6] https://github.com/open-mpi/ompi/blob/v4.0.1/orte/mca/oob/tcp/oob_tcp_listener.c#L955

Signed-off-by: Orivej Desh <orivej@gmx.fr>
2019-07-04 20:45:47 +00:00
Nysal Jan K A
5d51b2310d
Merge pull request #6791 from nysal/ucx_maxtag_fix
pml/ucx: Fix the max tag and context id values
2019-07-03 19:04:39 +05:30
Nysal Jan K.A
fe4ef147f8 pml/ucx: Fix the max tag and context id values
Signed-off-by: Nysal Jan K.A <jnysal@in.ibm.com>
2019-07-03 14:33:01 +05:30
Gilles Gouaillardet
07830d05a7 fortran/mpif-h: correctly handle array_of_errcodes in ompi_comm_spawn[_multiple]_f
Since array_of_errcodes is only allocated when MPI_ERRCODES_IGNORE is not used,
it should not be cleaned when MPI_ERRCODES_IGNORE is used.

Correctly allocate array_of_errcodes with the right size (e.g. maxprocs).

Thanks Gyevi-Nagy Laszlo for reporting this issue.

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2019-07-03 09:53:46 +09:00
Geoff Paulsen
f1b2a09675
Merge pull request #6649 from devreal/rdma-fetchop-local
OSC rdma: make sure accumulating in shared memory is safe
2019-06-28 14:46:21 -05:00
bosilca
7005e46eed
Merge pull request #6782 from ggouaillardet/topic/neighbor_alltoallv
mpi/c: fix param checks in [I]Neighbor_alltoall{v,w}
2019-06-28 11:02:18 -04:00
Gilles Gouaillardet
5655d64bd3 mpi/c: fix param checks in [I]Neighbor_alltoall{v,w}
do not check some input parameters when an {in,out}degree is zero

Thanks Junchao Zhang for analyzing and reporting this issue.

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2019-06-28 13:39:28 +09:00
Orivej Desh
de522545c0 Fix ORTE_FORCED_TERMINATE message
The format string expects to see the file and line before the error text and code.

Signed-off-by: Orivej Desh <orivej@gmx.fr>
2019-06-28 00:46:55 +00:00
Gilles Gouaillardet
5cb393292e
Merge pull request #6780 from ggouaillardet/topic/pmix_refresh
pmix/pmix4x: refresh to the latest PMIx master
2019-06-27 03:43:44 +02:00
Gilles Gouaillardet
63aa156bb0 pmix/pmix4x: refresh to the latest PMIx master
refresh to pmix/pmix@99971222ce

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2019-06-27 09:35:49 +09:00
Gilles Gouaillardet
f1ae036466
Merge pull request #6771 from ggouaillardet/topic/pmix_refresh
pmix/pmix4x: refresh to the latest PMIx master
2019-06-24 04:12:24 +02:00
Gilles Gouaillardet
5679a88867 pmix/pmix4x: refresh to the latest PMIx master
refresh to pmix/pmix@f67efc835c

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2019-06-24 10:17:23 +09:00
Artem Polyakov
6433da7ba8
Merge pull request #6754 from artpol84/osc/fixes_all
OSC/UCX: Fix early cleanup + race conditions
2019-06-21 18:45:37 -07:00
Artem Polyakov
6678ac0f55 osc/ucx: Fix possible win creation/destruction race condition
To avoid fully initializing the osc/ucx component for MPI application
that are not using One-Sided functionality, the initialization happens
at the first MPI window creation.

This commit ensures atomicity of global state modifications.

Signed-off-by: Artem Polyakov <artpol84@gmail.com>
2019-06-20 09:05:03 -07:00
Artem Polyakov
0857742624 osc/ucx: Fix worker pool finalization
Signed-off-by: Artem Polyakov <artpol84@gmail.com>
2019-06-20 09:05:03 -07:00
Ralph Castain
fd27d76130
Merge pull request #6764 from rhc54/topic/flux
Fix finalize of flux component
2019-06-19 05:58:48 -07:00
Ralph Castain
d4070d5f58
Fix finalize of flux component
Per patches from @SteVwonder and @garlick

Signed-off-by: Ralph Castain <rhc@pmix.org>
2019-06-18 21:14:04 -07:00
Nathan Hjelm
560886f095
Merge pull request #6746 from devreal/osc_winalloc_err
OSC rdma win allocate: propagate errors to avoid deadlocks
2019-06-18 17:57:53 -07:00
Edgar Gabriel
d621e3f0bb
Merge pull request #6759 from haraldkl/ompi_aggregators-cost_calc_intfix
Suggestion to fix division by zero in file view.
2019-06-18 09:55:11 -05:00
Geoffrey Paulsen
54a286ee9d Revert "ompi_info: report MPI1 compat is disabled"
This reverts commit 61ccc653020a4f7821eeaf022586f17037b821a0.

Signed-off-by: Geoffrey Paulsen <gpaulsen@us.ibm.com>
2019-06-14 13:22:21 -05:00
Geoffrey Paulsen
76dfaceedc Revert "configury: Remove --enable-mpi1-compatibility"
This reverts commit 6f904aff2c5c791af55223a9db56c5ce2fed53ef.

Signed-off-by: Geoffrey Paulsen <gpaulsen@us.ibm.com>
2019-06-14 13:22:21 -05:00