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

30050 Коммитов

Автор SHA1 Сообщение Дата
Jeff Squyres
c85d591b51 config/Makefile.am: ensure getdate.sh is in dist tarball
Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
(cherry picked from commit 91a5af83cd)
2020-11-05 12:16:08 -08:00
Jeff Squyres
6bb3ef4d1c
Merge pull request #8172 from jsquyres/pr/v4.1.0/NEWS-updates
NEWS: More updates for v4.1.0
2020-11-02 17:14:52 -05:00
Jeff Squyres
8133adfae3 NEWS: More updates for v4.1.0
Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2020-11-02 13:00:49 -08:00
Jeff Squyres
40e104d087
Merge pull request #8123 from jjhursey/v4.1-pmix-v3.2
v4.1.x: Update Internal PMIx to OpenPMIx v3.2.1rc1
2020-11-02 15:29:17 -05:00
Jeff Squyres
8c1d8305b4
Merge pull request #8148 from jsquyres/pr/v4.1.x/reproducible-build
v4.1.x: reproducible builds + portability fix
2020-11-01 07:23:37 -05:00
Jeff Squyres
71ee907b0b
Merge pull request #8164 from jsquyres/pr/v4.1.x/keyval-parse-tweaks
v4.1.x: Keyval parse tweaks
2020-10-31 13:18:55 -04:00
Jeff Squyres
c10a85eea3 keyval_parse.c: update whitespace/comments
Slightly improve comments and update some whitespace.

No code or logic changes.

Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
(cherry picked from commit 8ed1d28fb4)
2020-10-31 06:48:14 -07:00
Jeff Squyres
19c863b6fb keyval_parse.c: ensure to init values
Coverity complained about uninitialized variables; ensure that they
are initialized to 0 in all cases.

Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
(cherry picked from commit eac0ab5c3a)
2020-10-31 06:48:10 -07:00
Jeff Squyres
391ae585d6
Merge pull request #8160 from jsquyres/pr/v4.1.x/trivial-coll-and-han-warning-fixes
v4.1.x: coll/adapt and coll/han: fix trivial compiler warnings
2020-10-30 19:50:20 -04:00
Jeff Squyres
bed022dbbd
Merge pull request #8155 from devreal/fix_opal_add_to_env_str_alloc_v4.1.x
OPAL: fix string buffer allocation for large env variables [v4.1.x]
2020-10-30 16:44:32 -04:00
Jeff Squyres
55af867133 coll/adapt and coll/han: fix trivial compiler warnings
Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
(cherry picked from commit ee405ccaa5)
2020-10-30 14:36:50 -04:00
Joshua Hursey
60ee133255
Disable man pages for internal OpenPMIx
Signed-off-by: Joshua Hursey <jhursey@us.ibm.com>
2020-10-30 13:19:01 -05:00
Joshua Hursey
be86f87b92
Update Internal PMIx to OpenPMIx v3.2.1rc1
Signed-off-by: Joshua Hursey <jhursey@us.ibm.com>
2020-10-30 13:14:37 -05:00
Joseph Schuchart
09b873673b OPAL: fix string buffer allocation for large env variables
Signed-off-by: Joseph Schuchart <schuchart@icl.utk.edu>
(cherry picked from commit 320a9a1660)
2020-10-30 16:01:06 +01:00
Jeff Squyres
e7f829bbb0 getdate.sh: make the date(1) usage more portable
There are several different flavors of date(1) out there.  Try a few
different CLI options for date(1) to see which one works.

Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
(cherry picked from commit 89920bac4c)
2020-10-29 08:17:26 -07:00
Jeff Squyres
234356a128 configure.ac: Add workaround on MacOS for "readlink -f"
MacOS does not have "readlink -f" or "realpath", so use the
MacOS-provided Python, which we know has os.path.realpath().

Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
(cherry picked from commit ddf216b0a3)
2020-10-29 08:17:26 -07:00
Gilles Gouaillardet
35e7d86eb1 configury: make build Reproducible
If defined, use SOURCE_DATE_EPOCH environment variable; make the build
Reproducible by forcing timestamps.  See
https://reproducible-builds.org/docs/source-date-epoch/ for more
information.

Thanks Bernhard M. Wiedemann for bringing this to our attention.

Fixes open-mpi/ompi#3759

**NOTE:** This was cherry-picked from master, and slightly modified /
  amended for the v4.1.x branch.

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
Signed-off-by: Bernhard M. Wiedemann <bwiedemann@suse.de>
Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
(cherry picked from commit 7b4e8ba4aa)
2020-10-29 08:17:26 -07:00
Jeff Squyres
fa3211a7a6 opal_functions.m4: remove redundant code
This code was invoked twice.  Leave it solely in OPAL_CONFIGURE_SETUP,
which is invoked before OPAL_BASIC_SETUP.

Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
(cherry picked from commit 7c36b45847)
2020-10-29 08:17:26 -07:00
Jeff Squyres
96ba8b7279
Merge pull request #8142 from AboorvaDevarajan/fix_zero_byte_v4.1.x
[v4.1.x] pml/ucx: fix zero sized datatype transfers
2020-10-29 11:05:43 -04:00
Jeff Squyres
087a67245d
Merge pull request #7945 from bosilca/4.1/han
Import the HAN collective into 4.1
2020-10-29 11:05:16 -04:00
George Bosilca
9d4e3b1649 Fix HAN issues reported by Coverity.
Signed-off-by: George Bosilca <bosilca@icl.utk.edu>
2020-10-28 18:43:54 -04:00
Aboorva Devarajan
3518ebf94f pml/ucx: fix zero sized datatype transfers
Signed-off-by: Aboorva Devarajan <aburvadevarajan@gmail.com>
(cherry picked from commit 202b81d95c)
2020-10-27 10:38:07 -04:00
George Bosilca
1264b672fd Fix partial packing of non data elements.
There was a bug allowing for partial packing of non-data elements (such as loop
and end_loop markers) during the exit condition of a pack/unpack call. This has
basically no meaning. Prevent this bug from happening by making sure the element
point to a data before trying to partially pack it.

Signed-off-by: George Bosilca <bosilca@icl.utk.edu>
2020-10-26 21:38:27 -04:00
George Bosilca
6d735ba052 A complete overhaul of the HAN code.
Among many other things:
- Fix an imbalance bug in MPI_allgather
- Accept more human readable configuration files. We can now specify
  the collective by name instead of a magic number, and the component
  we want to use also by name.
- Add the capability to have optional arguments in the collective
  communication configuration file. Right now the capability exists
  for segment lengths, but is yet to be connected with the algorithms.
- Redo the initialization of all HAN collectives.

Cleanup the fallback collective support.
- In case the module is unable to deliver the expected result, it will fallback
  executing the collective operation on another collective component. This change
  make the support for this fallback simpler to use.
- Implement a fallback allowing a HAN module to remove itself as
  potential active collective module, and instead fallback to the
  next module in line.
- Completely disable the HAN modules on error. From the moment an error is
  encountered they remove themselves from the communicator, and in case some
  other modules calls them simply behave as a pass-through.

Communicator: provide ompi_comm_split_with_info to split and provide info at the same time
Add ompi_comm_coll_preference info key to control collective component selection

COLL HAN: use info keys instead of component-level variable to communicate topology level between abstraction layers
- The info value is a comma-separated list of entries, which are chosen with
  decreasing priorities. This overrides the priority of the component,
  unless the component has disqualified itself.
  An entry prefixed with ^ starts the ignore-list. Any entry following this
  character will be ingnored during the collective component selection for the
  communicator.
  Example: "sm,libnbc,^han,adapt" gives sm the highest preference, followed
  by libnbc. The components han and adapt are ignored in the selection process.
- Allocate a temporary buffer for all lower-level leaders (length 2 segments)
- Fix the handling of MPI_IN_PLACE for gather and scatter.

COLL HAN: Fix topology handling
 - HAN should not rely on node names to determine the ordering of ranks.
   Instead, use the node leaders as identifiers and short-cut if the
   node-leaders agree that ranks are consecutive. Also, error out if
   the rank distribution is imbalanced for now.

Signed-off-by: Xi Luo <xluo12@vols.utk.edu>
Signed-off-by: Joseph Schuchart <schuchart@icl.utk.edu>
Signed-off-by: George Bosilca <bosilca@icl.utk.edu>

Conflicts:
	ompi/mca/coll/adapt/coll_adapt_ibcast.c
2020-10-26 21:38:00 -04:00
bsergentm
94c817ceff Coll/han Bull
* first import of Bull specific modifications to HAN

* Cleaning, renaming and compilation fixing Changed all future into han.

* Import BULL specific modifications in coll/tuned and coll/base

* Fixed compilation issues in Han

* Changed han_output to directly point to coll framework output.

* The verbosity MCA parameter was removed as a duplicated of coll verbosity

* Add fallback in han reduce when op cannot commute and ppn are imbalanced

* Added fallback wfor han bcast when nodes do not have the same number of process

* Add fallback in han scatter when ppn are imbalanced

+ fixed missing scatter_fn pointer in the module interface

Signed-off-by: Brelle Emmanuel <emmanuel.brelle@atos.net>
Co-authored-by: a700850 <pierre.lemarinier@atos.net>
Co-authored-by: germainf <florent.germain@atos.net>
2020-10-26 21:35:12 -04:00
Xi Luo
feb5a7113c Initial import of the HAN collective module
a hierarchical, architecture-aware collective communication module.

Add Reduce and remove up_seg_size and low_seg_size in Bcast
Increase HAN's priority

Signed-off-by: Xi Luo <xluo12@vols.utk.edu>
Signed-off-by: George Bosilca <bosilca@icl.utk.edu>
2020-10-26 21:35:12 -04:00
Brian Barrett
5c16e968b1
Merge pull request #8122 from jjhursey/v4.1-fix-cpulist
Fix cpu-list for non-uniform nodes
2020-10-26 16:40:02 -07:00
Brian Barrett
03e10c5dc9
Merge pull request #8138 from rajachan/peek-probe-errorflow-41x
[v4.1.x] mtl/ofi: Fix erroneous FI_PEEK/FI_CLAIM usage
2020-10-26 16:38:59 -07:00
Raghu Raja
c55d3d3469 mtl/ofi: Fix erroneous FI_PEEK/FI_CLAIM usage
The current iprobe/improbe implementations merely checks the return
code on the posted receive operation to tell if there is a match or
not. This commit moves the check to the probe's error callback
instead. Per the semantics defined in libfabric, the peek operation is
asynchronous and the results are to be fetched from the completion
queue. If no message is found matching the tags specified in the peek
request, then a completion queue error entry with err field set to
FI_ENOMSG will be available.

Signed-off-by: Raghu Raja <craghun@amazon.com>
(cherry picked from commit 39f8a86b65)
2020-10-26 17:48:21 +00:00
Jeff Squyres
83f2ffae71
Merge pull request #8130 from jsquyres/pr/4.1.x/in-space-no-one-hears-you-scream
v4.1.x: Check for spaces in prefix, srcdir, and builddir
2020-10-24 17:14:31 -04:00
Jeff Squyres
2e1808203b configure: abort if dirs with spaces are used
Abort early if the source directory, build directory, or prefix
contains spaces (either the supplied directory, or the canonicalized
version of the directory).  This prevents users from getting cryptic
errors later in configure and/or make.

Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
(cherry picked from commit 8841b12489)
2020-10-24 12:19:48 -07:00
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
Joshua Hursey
7c67fb36b3
Fix cpu-list for non-uniform nodes
* The `--cpu-list` argument restricts the hwloc topology. When that topology is
   sent from the remote daemon back to the HNP it is packed as XML. This packing
   results in the loss of the applied cpu-list. Mapping will then be using
   the full topology instead of the restricted topology when mapping the
   processes. When the launch command reaches the remote node it will not
   be congruent with the remote node's view of the topology leading to a
   launch failure especially if the HNP and remote node have differing
   topologies.
   - The solution is to make sure that the HNP re-applies the cpu-list to
     the incomming topology from the remote node. This way the HNP and the
     remote node are using the same restricted topology.

Signed-off-by: Joshua Hursey <jhursey@us.ibm.com>
2020-10-22 20:10:49 -05: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