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>
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>
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>
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>
Add a line that was accidentally left out that includes the generated
nroff pages (from the Markdown pages) in the dist tarball.
The lack of these files in the dist tarball was causing configure to
fail a test and therefore conclude that we need to have pandoc
installed. Put differently: it's a specific goal that we do not want
end users to have to have Pandoc installed -- all Markdown files must
generate their nroff equivalents and have those nroff files included
in the distribution tarball.
Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
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>
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>
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>
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>
related to #7968
Signed-off-by: Howard Pritchard <howardp@lanl.gov>
(cherry picked from commit 04f853d53d657b14f055c4d87a031829015a6929)
Signed-off-by: Brian Barrett <bbarrett@amazon.com>