1
1

10954 Коммитов

Автор SHA1 Сообщение Дата
Josh Hursey
8c89e3c621
Merge pull request #8313 from jjhursey/prot-enum
Update hook component to use enum MCA parameter
2021-01-11 13:29:16 -06:00
Jeff Squyres
8115bd29b7
Merge pull request #8322 from bosilca/topic/portable_avx
Allow fallback to a lesser AVX support during make
2021-01-10 11:03:07 -05:00
Joshua Hursey
ed0697f01e Update hook component to use enum MCA parameter
* `--mca ompi_display_comm VALUE` where `VALUE` is one or more of:
   - `mpi_init` : Display during `MPI_Init`
   - `mpi_finalize` : Display during `MPI_Finalize`
 * hook/comm_method: Use enum flags to select protocols

Signed-off-by: Joshua Hursey <jhursey@us.ibm.com>
2021-01-08 12:25:42 -05:00
Jeff Squyres
debea778d7
Merge pull request #8342 from AboorvaDevarajan/fix_comm_errhandler
ompi/errhandler: fix comm errhandler issue
2021-01-07 17:20:40 -05:00
Aboorva Devarajan
a242fa1362 ompi/errhandler: fix comm errhandler issue
Signed-off-by: Aboorva Devarajan <abodevar@in.ibm.com>
2021-01-07 11:24:40 -08:00
Aboorva Devarajan
dfc6ffa51a ompi/errhandler: remove stale cxx bindings
Signed-off-by: Aboorva Devarajan <abodevar@in.ibm.com>
Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2021-01-07 11:24:40 -08:00
Jeff Squyres
7ec2a403c5 ompi/op: remove C++ function pointers
Remove some left-over infrastructure for handling callbacks into the
MPI C++ bindings (which were removed long ago -- this code is now
stale).

Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2021-01-07 10:44:42 -08:00
Jeff Squyres
65d7846485
Merge pull request #8347 from bosilca/fix/8340
A started generalized request should be marked as pending.
2021-01-07 08:53:32 -05:00
George Bosilca
434a2515f8 A started generalized request should be marked as pending.
Fixes #8340

Signed-off-by: George Bosilca <bosilca@icl.utk.edu>
2021-01-06 13:31:26 -05:00
Goldman, Adam
1e64da9a84 mtl/ofi: Add mising cq_data_size in hints for ofi mtl
Fixes #8305
Signed-off-by: Goldman, Adam <adam.goldman@intel.com>
2021-01-06 10:12:28 -05:00
bosilca
a7e91d8257
Merge pull request #8065 from devreal/fix_spc_mpit
SPC: allow starting through MPI_T without explicitly setting MCA parameter
2021-01-04 14:22:53 -05:00
George Bosilca
fcf2766a03
AVX code generation improvements
1. Allow fallback to a lesser AVX support during make

Due to the fact that some distro restrict the compiule architecture
during make (while not setting any restrictions during configure) we
need to detect the target architecture also during make in order to
restrict the code we generate.

2. Add comments and better protect the arch specific code.

Identify all the vectorial functions used and clasify them according to
the neccesary hardware capabilities.
Use these requirements to protect the code for load and stores (the rest
of the code being automatically generated it is more difficult to
protect).

3. Correctly check for AVX* support.

Signed-off-by: George Bosilca <bosilca@icl.utk.edu>
2021-01-04 13:43:18 -05:00
George Bosilca
31068e063b
Major update to the AVX* detection and support
1. Consistent march flag order between configure and make.

2. op/avx: give the option to skip some tests

it is possible to skip some intrinsic tests by setting some environment variables to "no" before invoking configure:
 - ompi_cv_op_avx_check_avx512
 - ompi_cv_op_avx_check_avx2
 - ompi_cv_op_avx_check_avx
 - ompi_cv_op_avx_check_sse41
 - ompi_cv_op_avx_check_sse3

3. op/avx: update AVX512 flags

try
-mavx512f -mavx512bw -mavx512vl -mavx512dq
instead of
-march=skylake-avx512

since the former is less likely to conflict with user provided CFLAGS
(e.g. -march=...)

Thanks Bart Oldeman for pointing this.

4. op/avx: have the op/avx library depend on libmpi.so

Refs. open-mpi/ompi#8323

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
Signed-off-by: George Bosilca <bosilca@icl.utk.edu>
2021-01-04 13:41:39 -05:00
Joshua Hursey
185a459995
Fix PGI compiler error with compare arg
* PGI was throwing the following error.
```
NVC++-S-0103-Illegal operand types for comparison operator (osc_rdma_frag.h: 75)
NVC++/power Linux 20.11-0: compilation completed with severe errors
```
 * It must not have liked the inline declaration of the NULL pointer.
   - So replace with a variable, as we do in other places in the code base.

Signed-off-by: Joshua Hursey <jhursey@us.ibm.com>
2020-12-30 11:37:39 -06:00
Ralph Castain
194e66b3e2 Silence warnings
Signed-off-by: Ralph Castain <rhc@pmix.org>
2020-12-27 12:18:40 -08:00
Edgar Gabriel
38e3936721
Merge pull request #8293 from edgargabriel/topic/lustre-perf-fix
Topic/lustre perf fix
2020-12-17 14:22:45 -06:00
Edgar Gabriel
56dbd096d3 io/ompio: remove the special handling of Lustre in the selection logic
ompio is now the default on Lustre as well

Signed-off-by: Edgar Gabriel <egabriel@central.uh.edu>
2020-12-17 13:26:51 -06:00
Edgar Gabriel
aa2d21ee50 lustre_file_open: avoid explicit locking on lustre file systems
Signed-off-by: Edgar Gabriel <egabriel@central.uh.edu>
2020-12-17 12:22:54 -06:00
Edgar Gabriel
2c61074739 dynamic_gen2: code cleanup
remove now unused mca parameter, get rid of an unnecesary if-else part,
and move setting the flag outside of the while loop.

Signed-off-by: Edgar Gabriel <egabriel@central.uh.edu>
2020-12-17 11:43:23 -06:00
Edgar Gabriel
d65480df35 fbtl_posix_pwritev: add datasieving support for write
its however restricted to collective I/O operations, at this point
only from vulcan and dynamic_gen2. required some more infrastructure
to be added to recognize individual I/O and multi-threaded environments.

Signed-off-by: Edgar Gabriel <egabriel@central.uh.edu>
2020-12-16 15:34:45 -06:00
Edgar Gabriel
90d8c8c39c fbtl_posix_preadv: limit the size of the temporary buffer
when using data sieving.

Signed-off-by: Edgar Gabriel <egabriel@central.uh.edu>
2020-12-16 11:17:15 -06:00
Edgar Gabriel
dbf0d6e5a3 fbtl_posix: add control logic for data sieving
only implemented for read at the moment, but the parameters
for write are also in place.

Signed-off-by: Edgar Gabriel <egabriel@central.uh.edu>
2020-12-15 18:12:07 -06:00
Gilles Gouaillardet
6f282bd385 do not include automatically generated file into the dist tarball
- ompi/mpi/fortran/use-mpi-f08/mod/mpi-f08-interfaces.h
 - ompi/mpiext/shortfloat/c/mpiext_shortfloat_c.h
 - ompi/mpiext/shortfloat/mpif-h/mpiext_shortfloat_mpifh.h
 - ompi/mpiext/shortfloat/use-mpi-f08/mpiext_shortfloat_usempif08.h

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2020-12-11 16:01:33 +09:00
Edgar Gabriel
5385e5f85f fbtl/posix/preadv.c: first cut on adding data sieving
the lack of performing data sieving has been identified as a main reason for the poor performance in some instances on the Lustre file system. This commit introduces the fundamental ability to perform data sieving for read operations (which should not be controversial). The code itself is correct, what is still lacking is a) the logic when and how to activate data sieving and b) the logic to limit the size of the temporary buffer when doing data sieving.

Signed-off-by: Edgar Gabriel <egabriel@central.uh.edu>
2020-12-10 14:16:07 -06:00
Edgar Gabriel
f70bb4774a dynamic_gen2/file_write_all: fix chunk assignment per stride
the dynamic_gen_file_write_all component distinguishes between the amount of data communicated
to aggregators, and the amount of data written in a cycle by the aggregator (in contrary e.g. to the vulcan component).
There was a bug in calculating which chunks have to be written in a cycle by an aggregator: we added as many elements into the
io_array until we filled one stripe. Unfortuantely, the metric used was the amount of data instead of ensuring that all offsets
fall within a single stripe. This commit fixes this issue. Note, the bug did not create a correctness problem, just a performance
problem in case there were gaps in the file view.

Signed-off-by: Edgar Gabriel <egabriel@central.uh.edu>
2020-12-10 08:53:11 -06:00
Rainer Keller
3202a16e7d Fix man-page for MPI_File_set_view
The datarep may not be NULL, as check was added in ba955883329.

Signed-off-by: Rainer Keller <rainer.keller@hs-esslingen.de>
2020-12-04 22:05:53 +01:00
Jeff Squyres
a8f883a73a
Merge pull request #8250 from devreal/fix-han-commselect-new
coll/han: fix coll preference selection in mca_coll_han_comm_create_new
2020-11-24 09:21:57 -05:00
Joseph Schuchart
33105b031b coll/han: fix coll preference selection in mca_coll_han_comm_create_new
Exclude HAN, don't include it.

Signed-off-by: Joseph Schuchart <schuchart@icl.utk.edu>
2020-11-24 10:09:14 +01:00
Jeff Squyres
3edd62e568
Merge pull request #8203 from jsquyres/pr/fix-warnings
Fix many compiler warnings
2020-11-23 10:15:15 -05:00
Raghu Raja
38d2f12112
Merge pull request #8220 from devreal/fix-coll-base-preference
Fix preference treatment in coll/base
2020-11-20 08:14:37 -08:00
Julien EMMANUEL
7d493c6bcd Uniform conditions in ob1 recv
In ob1 we have four similar conditions but they are not written
in a uniform way

Signed-off-by: Julien EMMANUEL <julien.emmanuel@inria.fr>
2020-11-19 22:27:49 +01:00
Joseph Schuchart
1cdc85564e coll/han: reduce default segment size for reduce/allreduce to 64k
This has shown to be more effective in achieving overlap
of inter- and intra-node communication and reduces the inital
delay before hitting the network.

Signed-off-by: Joseph Schuchart <schuchart@icl.utk.edu>
2020-11-19 19:23:32 +01:00
Joseph Schuchart
971d58c524 coll/han: remove references to experimental solo and shared collective components
Also make coll/tuned the default for shared memory communication
as coll/sm has shown performance issues that need investigation.

Signed-off-by: Joseph Schuchart <schuchart@icl.utk.edu>
2020-11-19 19:22:06 +01:00
Joseph Schuchart
09c2f4af94 coll/[sm|han|adapt]: don't disqualify on priority 0
Signed-off-by: Joseph Schuchart <schuchart@icl.utk.edu>
2020-11-19 19:10:09 +01:00
Joseph Schuchart
dd54af9450 coll/base: Fix collective module selection preference treatment
The selectable list is sorted with lowest to highest priority so the
user-defined preferences should be appended to the list.
The preference treatment should also maintain the order provided by the user
(first item has highest priority) so switch the loop order.

Signed-off-by: Joseph Schuchart <schuchart@icl.utk.edu>
2020-11-19 19:06:28 +01:00
Julien EMMANUEL
208c2d270b Typo in ob1 comments
Seems like a copy/pasted typo in ob1 comments

Signed-off-by: Julien EMMANUEL <julien.emmanuel@inria.fr>
2020-11-19 16:50:29 +01:00
Jeff Squyres
12796a4aad
Merge pull request #8209 from devreal/fix-tuned-allgatherv
COLL TUNED: Use per-rank data size instead of total size for decision in allgatherv
2020-11-17 11:46:35 -05:00
Jeff Squyres
282be20e6f
Merge pull request #8210 from vspetrov/master
coll/hcoll: svatterv inplace fix
2020-11-14 10:25:25 -05:00
Jeff Squyres
14aa5fae3c Fix many compiler warnings:
- Add some missing AC_CHECK_SIZEOF's in configure.ac
- Remove some unused variables
- Initialize some variables
- Fix some parameter types
- Cast where appropriate/safe to fix warnings
- Move ompi/mca/common/monitoring Fortran bindings to a separate .c
  file so that they can use different #define's than the C bindings,
  and therefore compile properly / without warnings.
- Fix signedness discrepancies
- Who knew?  Separated these into multiple #if's, instead:
  ```
  // This is undefined behavior
  #define HAVE_FOO defined(FOO)
  #define YOW (HAVE_FOO && defined(BAR))
  ```
- Fix some typos in OMPI_BUILD_HOST logic
- Don't "2>/dev/null" in OMPI_BUILD_HOST logic; it just hides errors

Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2020-11-14 07:20:30 -08:00
Jeff Squyres
67421c5d23
Merge pull request #8207 from ggouaillardet/topic/retain_datatypes_w
coll/base: do not drop const qualifier
2020-11-14 09:21:37 -05:00
Artem Polyakov
f9ef4b4ac0
Merge pull request #7632 from devreal/osc-ucx-progress
UCX osc: make progress on idle worker if none are active
2020-11-13 13:27:31 -08:00
Valentin Petrov
9fa00155f3 coll/hcoll: scatterv inplace fix
Signed-off-by: Valentin Petrov <valentinp@nvidia.com>
2020-11-13 19:15:37 +02:00
Joseph Schuchart
f670364d76 COLL TUNED: Use per-rank data size instead of total size for decision
The total size depends on number of ranks so the usual ranges don't work.
Thus, use the average across all ranks to make a decision.

Signed-off-by: Joseph Schuchart <schuchart@icl.utk.edu>
2020-11-13 12:18:42 +01:00
Gilles Gouaillardet
c49e5e5c4a coll/base: do not drop const qualifier
MPI_Ialltoallw() and friends take a const MPI_Datatype types[] argument.
In order to be able to call OBJ_RELEASE(types[0]), we used to simply
drop the const modifier. This change make it right by introducing the
OBJ_RELEASE_NO_NULLIFY(object) macro that no more set object = NULL
if the object is freed.

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2020-11-13 17:31:04 +09:00
Raghu Raja
b7b9254488
Merge pull request #8178 from rajachan/whack-remote-cq-data-query
mtl/ofi: Check cq_data_size without querying providers again
2020-11-12 13:00:10 -08:00
Joseph Schuchart
d11f625ed5 SPC: allow counters to be attached solely through MPI_T and reduce overhead
- only make MCA parameters available if SPC is enabled

- do not compile SPC code if SPC is disabled

- move includes into ompi_spc.c

- allow counters to be enabled through MPI_T without setting MCA parameter

- inline counter update calls that are likely in the critical path

- fix test to succeed even if encountering invalid pvars

- move timer_[start|stop] to header and move attachment info into ompi_spc_t

There is no need to store the name in the ompi_spc_t struct too, we can use that space
for the attachment info instead to avoid accessing another cache line.

- make timer/watermark flags a property of the spc description

This is meant to making adding counters easier in the future by
centralizing the necessary information. By storing a copy of these flags
in the ompi_spc_t structure (without adding to its size) reduces
cache pollution for timer/watermark events.

- allocate ompi_spc_t objects with cache-alignment

This prevents objects from spanning multiple cache lines and thus
ensures that only one cache line is loaded per update.

- fix handling of timer and timer conversion

- only call opal_timer_base_get_cycles if necesary to reduce overhead

- Remove use of OPAL_UNLIKELY to improve code generated by GCC

It appears that GCC makes less effort in optimizing the unlikely path
and generates bloated code.

- Allocate ompi_spc_events statically to reduce loads in critical path

- duplicate comm_world only when dumping is requested

Signed-off-by: Joseph Schuchart <schuchart@icl.utk.edu>
2020-11-12 21:17:56 +01:00
Raghu Raja
30831fb7f0
Merge pull request #8186 from devreal/fix-tuned-dynamic
Fix some issues with dynamic algorithm selection in coll/tuned
2020-11-12 11:20:57 -08:00
Joseph Schuchart
581478dc91 UCX osc: make progress on default worker if none are active
Signed-off-by: Joseph Schuchart <schuchart@hlrs.de>
2020-11-11 23:23:31 +01:00
Joseph Schuchart
a15e5dc7f0 COLL TUNED: remove stray selection of linear algs for alreduce and allgather
These selections seem harmful in my measurements and don't seem to be
motivated by previous measurement data.

Signed-off-by: Joseph Schuchart <schuchart@icl.utk.edu>
2020-11-11 18:40:24 +01:00
Ralph Castain
2f7f1feca5
Fix confusion between cpuset and locality
Ensure we correctly collect and save the cpuset of the process
separately from its locality string. Ensure we use the correct one when
computing things like relative locality between processes.

Signed-off-by: Ralph Castain <rhc@pmix.org>
2020-11-10 16:41:00 -08:00