Bcast: scatter_allgather and scatter_allgather_ring expect N_elem >= N_procs
Allreduce: rabenseifner expects N_elem >= pow2 nearest to N_procs
In all cases, the implementations will fall back to a linear implementation,
which will most likely yield the worst performance (noted for 4B bcast on 128 ranks)
Signed-off-by: Joseph Schuchart <schuchart@icl.utk.edu>
The mca parameters coll_tuned_*_algorithm are ignored unless coll_tuned_use_dynamic_rules is true so mention that in the description.
Signed-off-by: Joseph Schuchart <schuchart@icl.utk.edu>
PGI (20.4) compiler do not define this intrinsic, so only build
AVX512 support if _mm512_mullo_epi64() intrisic is defined.
Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
If PMIX_PACKAGE_RANK is available, uses this value to select between multiple
NIC of equal distance between the current process. If this value is not
available, try to calculate it by getting the locality string from each local
process and assign a package_rank. If everything fails, fall back to using
process_id.rank to select the NIC. This last case is not ideal, but has a small
chance of occuring, and causes an output to be displayed to notify that this is
occuring.
Signed-off-by: Nikola Dancejic <dancejic@amazon.com>
I ran into this exact case on MacOS (the C and Fortran compiler have
different default linker search paths). Technically, we've always had
this problem, but it has just become a bit more likely for real people
to run into because we're now preferring the system-installed
Libevent.
Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
A recent commit made the use_mpi_f08 bindings sym link into their
profile directory (just like we do for C and other bindings) instead
of having standalone PMPI-ized copies of the bindings. Make sure to
.gitignore the sym linked files.
Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
Coverity complained about uninitialized variables; ensure that they
are initialized to 0 in all cases.
Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
have this file generated at configure time and use the
@OMPI_FORTRAN_IGNORE_TKR_PREDECL@ and @OMPI_FORTRAN_IGNORE_TKR_TYPE@
variable for buffer definitions
Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
- via the OMPI_BUILD_MPI_PROFILING macro, avoid the need to have two distinct
source files for MPI_* and PMPI_* bindings.
- move the PMPI bindings into ompi/mpi/fortran/use-mpi-f08/profile.
- remove an useless dependency to mpi-f08.lo
- share most of mod/[p]mpi-f08-interfaces.F90 code in a single mod/mpi-f08-interfaces.h
Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
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>
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>
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.
Fixesopen-mpi/ompi#3759
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>