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

30018 Коммитов

Автор SHA1 Сообщение Дата
Jeff Squyres
a4e8655fbe opal_get_version.m4: properly quote dir args
Make sure to surround directory variables with quotes so that they
function properly, even if there's spaces in the directory name.

While Open MPI doesn't generally support directory names with spaces,
this fix at least allows `autogen.pl` to complete successfully.

Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
(cherry picked from commit 8f13c3b587)
2020-10-24 10:32:40 -07:00
Brian Barrett
94384991f5
Merge pull request #8119 from rajachan/empty-error-cq-41x
[v4.1.x] mtl/ofi: Do not fail if error CQ is empty
2020-10-22 16:57:03 -07:00
Raghu Raja
b41680783f mtl/ofi: Do not fail if error CQ is empty
In multi-threaded scenarios, any thread that attempts to read a CQ
when there's a pending error CQ entry gets an -FI_EAVAIL. Without
any serialization here (which is okay, since libfabric will protect
access to critical CQ objects), all threads proceed to read from the
error CQ, but only one thread fetches the entry while others get
-FI_EAGAIN indicating an empty queue, which is not erroneous.

Signed-off-by: Raghu Raja <craghun@amazon.com>
(cherry picked from commit 415dddb9af)
2020-10-22 18:57:12 +00:00
Jeff Squyres
984d64c34c
Merge pull request #8115 from bwbarrett/dist/v4.1.x
add blurb about issue 7968 to the README
2020-10-22 07:29:34 -04:00
Howard Pritchard
1afc78aa3f add blurb about issue 7968 to the README
related to #7968

Signed-off-by: Howard Pritchard <howardp@lanl.gov>
(cherry picked from commit 04f853d53d657b14f055c4d87a031829015a6929)
Signed-off-by: Brian Barrett <bbarrett@amazon.com>
(cherry picked from commit 2a606fbde3)
2020-10-22 00:03:29 +00:00
Brian Barrett
b9474b96ef
Merge pull request #8111 from bwbarrett/dist/v4.1.x
NEWS and VERSION updates for v4.1.x branch
2020-10-21 09:10:20 -07:00
Brian Barrett
3e51dcf9ac dist: Bump version after releasing 4.1.0rc2
Also fix a probably harmless but definitely wrong missing comment
character in the copyright header.

Signed-off-by: Brian Barrett <bbarrett@amazon.com>
2020-10-21 14:53:07 +00:00
Brian Barrett
595e1900b7 dist: Add NEWS items for recent commits in v4.1.x series
Signed-off-by: Brian Barrett <bbarrett@amazon.com>
2020-10-21 14:51:32 +00:00
Brian Barrett
1b04342270 dist: Update NEWS file from branches
Add the 4.0.5 release notes to the NEWS file and clean up some
of the formatting in recent releases to match previous updates.

Signed-off-by: Brian Barrett <bbarrett@amazon.com>
(cherry picked from commit 5d42272605)
2020-10-21 14:45:01 +00:00
Brian Barrett
8ee95136c9
Merge pull request #8082 from markalle/exported_symbol_names_v41x
v4.1.x: symbol pollution
2020-10-21 07:42:18 -07:00
Brian Barrett
aa996b89c7
Merge pull request #8094 from dancejic/include-v4.1.x
v4.1.x: Adding ofi include to CPPFLAGS so that configure can check fabric.h
2020-10-21 07:41:54 -07:00
Brian Barrett
b3487eb82e
Merge pull request #8095 from markalle/maintain_extent_markers_v41x
v4.1.x: make Type_create_resized set FLAG_USER_UB
2020-10-21 07:41:30 -07:00
Jeff Squyres
39fe0127da
Merge pull request #8101 from ggouaillardet/topic/v4.1.x/fortran_sizeof_int_integer
fortran.m4: reword error message when sizeof(int) != sizeof(INTEGER)
2020-10-19 13:32:49 -04:00
Gilles Gouaillardet
af54e86670 fortran.m4: reword error message when sizeof(int) != sizeof(INTEGER)
Reword the error message to suggest only the Fortran INTEGER size
can be changed via adhoc compiler flags.

This is a one-off commit for the release branches, master does
it differently (and breaks ABI).

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2020-10-19 10:06:28 +09:00
Mark Allen
9618859abd make Type_create_resized set FLAG_USER_UB
In the below type creation sequence
    MPI_Type_create_resized(MPI_INT, 0, 6, &mydt1);
    MPI_Type_contiguous(1, mydt1, &mydt2);
I think both mydt1 and mydt2 should have extent 6.

The Type_create_resized would add an UB marker into the type map,
and the definition of Type_contiguous would maintain the same
markers in the new map.

The only counter argument I can think of to the above is if
we declared that mydt1 is illegal because it's putting data
on addresses that don't satisfy the alignment requirement.

But in my interpretation of the standard the term "alignment
requirement" is a property of the system memory, and MPI defines
"extent" in a way to make it easy to create MPI datatypes that
support the system's alignment requirements.  But the standard
isn't saying it's illegal to make MPI datatypes that don't satisfy
the system's alignment requirements.  I think this is true also
because the MPI datatypes might be used in file IO where the
requirements are different, so that's my long winded explanation
for why I don't think we can declare mydt1 illegal.

Complete example:
    #include <stdio.h>
    #include <mpi.h>
    int main() {
        MPI_Datatype mydt1, mydt2;
        MPI_Aint lb, ext;
        MPI_Init(0, 0);
        MPI_Type_create_resized(MPI_INT, 0, 6, &mydt1);
        MPI_Type_commit(&mydt1);
        MPI_Type_contiguous(1, mydt1, &mydt2);
        MPI_Type_commit(&mydt2);

        MPI_Type_get_extent(mydt1, &lb, &ext);
        printf("mydt1 extent %d\n", (int)ext);
        MPI_Type_get_extent(mydt2, &lb, &ext);
        printf("mydt2 extent %d\n", (int)ext);

        MPI_Type_free(&mydt1);
        MPI_Type_free(&mydt2);
        MPI_Finalize();
        return(0);
    }
% mpicc -o x test.c
% mpirun -np 1 ./x
Without this PR the output is
> mydt1 extent 6
> mydt2 extent 8
With this PR both extents are 6.

Fwiw I also tested with mpich and they give 6 for both extents.

Signed-off-by: Mark Allen <markalle@us.ibm.com>
(cherry picked from commit bca3c0ed17)
2020-10-15 23:48:45 -05:00
Nikola Dancejic
787f4f55b1 Adding ofi include to CPPFLAGS so that configure is able to check fabric.h
configure was previously failing to check for the fi_info.nic struct because
fabric.h relied on other header files in the ofi/include dir. This adds that
include to CPPFLAGS before running that check so that configure can check for
the struct.

Signed-off-by: Nikola Dancejic <dancejic@amazon.com>
(cherry picked from commit 08e8205fb7)
2020-10-15 13:11:46 -07:00
Jeff Squyres
3670d763ca
Merge pull request #8088 from nariba-fj/pr/v4.1.x/fix-typo-in-opal-util-stacktrace
v4.1.x: opal/util: Fix typo
2020-10-12 09:44:30 -04:00
NARIBAYASHI Akira
4ce2f96c10 opal/util: Fix typo
Signed-off-by: NARIBAYASHI Akira <a.naribayashi@fujitsu.com>
(cherry picked from commit 3dc3bbc1b1)
2020-10-12 16:19:38 +09:00
Mark Allen
994186fa00 symbol pollution
Made a couple vars static if they didn't look like they were used
more than one place, and added prefixes to a few.

Signed-off-by: Mark Allen <markalle@us.ibm.com>
(cherry picked from commit 34b42b1b09)
2020-10-07 14:07:55 -04:00
Brian Barrett
31496e28e6
Merge pull request #8062 from brminich/topic/shmem_scoll_fix_4.1.x
SHMEM/SCOLL: Fix inplace reductions - v4.1.x
2020-10-01 12:37:19 -07:00
Brian Barrett
51dc13d9b8
Merge pull request #8071 from wzamazon/v4.1.x_fix_oob_tcp
oob/tcp: fix a race condition on stop_thread pipe
2020-10-01 12:30:17 -07:00
Brian Barrett
2486c75475
Merge pull request #8073 from bwbarrett/dist/v4.1.x
Prep for 4.1.0rc2 release
2020-10-01 12:28:52 -07:00
Brian Barrett
af3113d797 dist: Update NEWS for 4.1.0
Signed-off-by: Brian Barrett <bbarrett@amazon.com>
2020-10-01 15:52:41 +00:00
Brian Barrett
d68ec2c35d dist: Update version to 4.1.0rc2
Signed-off-by: Brian Barrett <bbarrett@amazon.com>
2020-10-01 15:45:55 +00:00
Wei Zhang
48cca8ab83 oob/tcp: fix a race condition on stop_thread pipe
This patch fix a race condition, which caused the main thread
to sometimes write to a closed pipe.

The following are details:

Currently, during shut down, the main thread will do the following:

1. set listen_thread_action to false.
2. write to stop_thread pipe to tell the listener thread to exit.

The listener thread do the following:

1. call select() to listen to a set of file descriptors with
   a maximum wait time.

2. check listen_thread_action. If it is false, close the stop_thread
   pipe.

The main thread will write to closed pipe, when

1. listener's call to select() finished because maximum wait time reached.

2. main thread set listen_thread_action to false

3. listener thread check listen_thread_action and closed the pipe

4. main thread write to the closed pipe.

This patch address the issue by having the main thread close the pipe
after the listener thread has been joined. This way, main thread
will both write and close the thread, so there is no conflict.

Note This patch was opened directly against v4.1.x branch because
the orte/mca/oob/tcp directory has been removed from master branch.

Signed-off-by: Wei Zhang <wzam@amazon.com>
2020-09-30 18:22:53 +00:00
Mikhail Brinskii
0f6dd8f2a5 SHMEM/SCOLL: Fix inplace reductions
Signed-off-by: Mikhail Brinskii <mikhailb@nvidia.com>
(cherry picked from commit dfe20e0472)
2020-09-26 14:16:48 +03:00
Jeff Squyres
edf03e52f3
Merge pull request #7944 from bosilca/4.1/adapt
Import the ADAPT collective into the 4.1
2020-09-23 16:42:49 -04:00
Xi Luo
e65fa4ff5c Bring ADAPT collective to 4.1
This is a meta commit, that encapsulate all the ADAPT commits in the master
into a single PR for 4.1. The master commits included here are:
fe73586, a4be3bb, d712645, c2970a3, e59bde9, ee592f3 and c98e387.

Here is a detailed list of added capabilities:
* coll/adapt: Fix naming conventions and C11 atomic use
* coll/adapt: Remove unused component field in module
* Consistent handling of zero counts in the MPI API.
* Correctly handle non-blocking collectives tags
  * As it is possible to have multiple outstanding non-blocking collectives
    provided by different collective modules, we need a consistent
    mechanism to allow them to select unique tags for each instance of a
    collective.
* Add support for fallback to previous coll module on non-commutative operations (#30)
* Replace mutexes by atomic operations.
* Use the correct nbc request type (for both ibcast and ireduce)
  * coll/base: document type casts in ompi_coll_base_retain_*
* add module-wide topology cache
* use standard instead of synchronous send and add mca parameter to control mode of initial send in ireduce/ibcast
* reduce number of memory allocations
* call the default request completion.
  * Remove the requests from the Fortran lookup conversion tables before completing
    and free it.
* piggybacking Bull functionalities

Signed-off-by: Xi Luo <xluo12@vols.utk.edu>
Signed-off-by: George Bosilca <bosilca@icl.utk.edu>
Signed-off-by: Marc Sergent <marc.sergent@atos.net>
Co-authored-by: Joseph Schuchart <schuchart@hlrs.de>
Co-authored-by: Lemarinier, Pierre <pierre.lemarinier@atos.net>
Co-authored-by: pierrele <31764860+pierrele@users.noreply.github.com>
2020-09-23 11:45:45 -04:00
Jeff Squyres
3ec835d697
Merge pull request #8048 from wckzhang/v4.1.x
v4.1.x: coll/tuned: Fix dynamic message size for gather and scatter
2020-09-16 09:10:51 -04:00
William Zhang
7922430c66 coll/tuned: Fix dynamic message size for gather and scatter
The gather and scatter operations did not use the correct message size
(Only did datatype size * com size). This did not correctly reflect the
total message size and prevents fine tuning within a com size. This
patch multiplies the value by the number of elements sent.

Signed-off-by: William Zhang <wilzhang@amazon.com>
(cherry picked from commit 50823fe9a9)
2020-09-15 08:56:56 -07:00
Jeff Squyres
abfc6ba931
Merge pull request #8025 from hppritcha/topic/suppress_icc_no_long_double_v41x
suppress icc long double message
2020-09-14 09:39:05 -04:00
Jeff Squyres
1d8caab4f5
Merge pull request #8027 from hppritcha/topic/patch_ofi_mtl_for_gni_prov_v41x
OFI: patch OFI MTL for GNI provider
2020-08-31 09:30:37 -04:00
Howard Pritchard
fae374ce54 OFI: patch OFI MTL for GNI provider
Uncovered a problem using the GNI provider with the OFI MTL.
See https://github.com/ofiwg/libfabric/issues/6194.

Related to #8001

Signed-off-by: Howard Pritchard <hppritcha@gmail.com>
(cherry picked from commit d6ac41cbbd)
2020-08-28 14:30:31 -06:00
Brian Barrett
8b2bcbc9ca
Merge pull request #8021 from wckzhang/v4.1.x
coll/tuned: Revert RSB and RS default algorithms
2020-08-27 10:33:42 -07:00
Howard Pritchard
c4128b21a0 suppress icc long double message
improve configury to check whether icc is handling no long double.
This prevents seeing 100s of messages like this:

icc: command line warning #10148: option '-Wno-long-double' not supported

A similar patch will be needed for pmix.

Signed-off-by: Howard Pritchard <hppritcha@gmail.com>
(cherry picked from commit 6df0e53421)
2020-08-27 16:04:50 +00:00
William Zhang
dceea5ad87 coll/tuned: Revert RSB and RS default algorithms
Reduce scatter block and reduce scatter algorithms were hitting
correctness issues for non commutative strided tests. We will revert to
the original default algorithms for those two collectives (basic linear
and non overlapping respectively) in the non commutative op case.

See #8010

Signed-off-by: William Zhang <wilzhang@amazon.com>
(cherry picked from commit 57b95bcb45)
2020-08-25 15:48:45 -07:00
Jeff Squyres
c4eb2fe40a
Merge pull request #8014 from hppritcha/topic/fix_ofi_mtl_mrecv_v41x
ofi mtl: fix problem with mrecv
2020-08-19 13:50:25 -04:00
Howard Pritchard
833f8b2b41 ofi mtl: fix problem with mrecv
the ofi mtl mrecv was not properly setting the message in/out
arg to MPI_MRECV to MPI_MESSAGE_NULL.

Signed-off-by: Howard Pritchard <hppritcha@gmail.com>
(cherry picked from commit e6f81ed6d6)
2020-08-19 10:22:37 -06:00
Brian Barrett
f63d6e2335
Merge pull request #7998 from wckzhang/v4.1.x
V4.1.x btl/ofi backport disabling EFA and ofi_rxm providers
2020-08-17 12:12:07 -07:00
Jeff Squyres
2a0757f997
Merge pull request #8006 from bosilca/fix/smcuda_alignment
Fix the cacheline usage in the CUDA BTL.
2020-08-17 15:08:42 -04:00
George Bosilca
a81c16b9d0 Fix the cacheline usage in the CUDA BTL.
Signed-off-by: George Bosilca <bosilca@icl.utk.edu>
2020-08-14 14:36:33 -04:00
William Zhang
27c252e211 btl/ofi: Disable ofi_rxm provider
The ofi_rxm provider is dependent upon the underlying hardware for its
implementation of FI_DELIVERY_COMPLETE. Since this can lead to early
completions, we disable the provider to avoid correctness issues.

This is not an issue in the mtl/ofi as it does not require
FI_DELIVERY_COMPLETE.

Signed-off-by: William Zhang <wilzhang@amazon.com>
(cherry picked from commit 41acfee2bb)
2020-08-12 14:03:08 -07:00
William Zhang
357ac2e2f5 btl/ofi: Disable EFA provider in versions earlier than libfabric 1.12.0
EFA incorrectly implements FI_DELIVERY_COMPLETE in earlier libfabric
versions. While FI_DELIVERY_COMPLETE would be advertised by the
provider, completions would return too early by not accounting for
bounce buffers on the receive side. This would cause the BTL
to receive early completions that lead to correctness issues.

This is not an issue in the mtl/ofi as it does not require
FI_DELIVERY_COMPLETE.

Signed-off-by: William Zhang <wilzhang@amazon.com>
(cherry picked from commit a7dcfd9874)
2020-08-12 14:02:51 -07:00
Jeff Squyres
e7b5e2550b
Merge pull request #7997 from bwbarrett/backports/v4.1.x-7957
Use the unaligned SSE memory access primitive.
2020-08-12 10:12:44 -04:00
George Bosilca
c20626e60d Check unaligned ops for correctness.
Signed-off-by: George Bosilca <bosilca@icl.utk.edu>
(cherry picked from commit c4e88a43a3)
Signed-off-by: Brian Barrett <bbarrett@amazon.com>
2020-08-12 02:32:10 +00:00
George Bosilca
eb9ced786a Use the unaligned SSE memory access primitive.
Alter the test to validate misaligned data.

Fixes #7954.

Signed-off-by: George Bosilca <bosilca@icl.utk.edu>
(cherry picked from commit b6d71aa893)
Signed-off-by: Brian Barrett <bbarrett@amazon.com>
2020-08-12 02:32:01 +00:00
Brian Barrett
22163d37b5
Merge pull request #7991 from wckzhang/v4.1.x
v4.1.x: btl/ofi: Use common provider include/exclude list
2020-08-11 11:21:07 -07:00
Brian Barrett
ec04896d70
Merge pull request #7995 from mkurnosov/fix-parsing-locality-strng
v4.1.x: opal/hwloc: fix a typo in parsing locality string: L0 changed to L1
2020-08-11 11:20:08 -07:00
Mikhail Kurnosov
11620038f9 Fix a typo in parsing locality string: L0 changed to L1
(`prte_hwloc_base_get_locality_string` never returns locality string with L0).

Signed-off-by: Mikhail Kurnosov <mkurnosov@gmail.com>
(cherry picked from commit 4708458d6b)
2020-08-11 22:35:00 +07:00
William Zhang
abe3aaa4a7 btl/ofi: Use common provider include/exclude list
The btl/ofi does not currently utilize the common ofi include/exclude
list. Added verification code similar to the mtl/ofi that will check if
the info object is in the include or exclude list. If it isn't in the
include list or is in the exclude list, validate_info will return
OPAL_ERROR. The btl/ofi will no longer pass a provider name as a hint
when calling getinfo, instead filtering the provider during
validate_info.

This patch also moves the is_in_list MTL function into common code and
adds additional debugging output to the BTL to match the MTL standard.

Signed-off-by: William Zhang <wilzhang@amazon.com>
(cherry picked from commit 9b8f463a76)
2020-08-10 14:28:59 -07:00