Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mschaara/adio merge main #62

Merged
merged 818 commits into from
Apr 12, 2022
Merged

Mschaara/adio merge main #62

merged 818 commits into from
Apr 12, 2022

Conversation

mchaarawi
Copy link
Collaborator

Pull Request Description

Author Checklist

  • Provide Description
    Particularly focus on why, not what. Reference background, issues, test failures, xfail entries, etc.
  • Commits Follow Good Practice
    Commits are self-contained and do not do two things at once.
    Commit message is of the form: module: short description
    Commit message explains what's in the commit.
  • Passes All Tests
    Whitespace checker. Warnings test. Additional tests via comments.
  • Contribution Agreement
    For non-Argonne authors, check contribution agreement.
    If necessary, request an explicit comment from your companies PR approval manager.

zhenggb72 and others added 30 commits February 7, 2022 11:18
Coll: Add CVAR to select composition for a few blocking collectives
We have been manually setting MPI error class index in
src/mpi/errhan/baseerrnames.txt, and it has been out-of-sync with the
values defined in mpi.h. This commit does following:

* Remove the index from baseerrnames.txt and directly load the defined
  value from mpi.h instead.

* Add UNKNOWN entry to map the missing entries in baseerrnames.txt.

* When autogen.sh fails to extract error messages, do not generate dummy
  defmsg.h, fail instead. The dummy header will break the error class
  message translation anyway.
Add some indentation to the generated src/mpi/errhan/defmsg.h.
Re-initializing %KnownErrRoutines for every line of the source code is
waste of time. Just load once can make the script run much faster --
from 3 seconds to a fraction of a second.
Use strict prevents misuse of global variables in Perl scripts.
maint: fix and cleanup maint/extracterrmsgs

Approved-by: Ken Raffenetti
Sometime user may want to disable f08 even when their compiler passes
the PAC_FC_2008_SUPPORT test. Add explicit --disable-f08 option for
that.
The test suite is now configured independently and no longer need these
variables.
Now we only use a single $FC compiler, there isn't a need to check
compatibility between F77 and FC.
By default we will build all Fortran interfaces. However, sometime user
may desire disable certain interface. Use separate options so user can
easily do so.

Currently the f90 interface depends on f77 interface. But it should be
possible to only build f77, or only build f08, or build f77 + f08.

Remove and replace the variable enable_fc from configure since it is ambiguous
whether it refers to the FC compiler or the interface features.
config/fortran: clean up Fortran binding config options

Approved-by: Ken Raffenetti
Adding --enable-g to the configure line was ignored. Make it is a
synonym for --enable-g=all.
Only consider the nodes used in a launch as part of the total core
count. See pmodels#5835.
hydra: Fix spawn when specifying launch hosts

Approved-by: Hui Zhou <[email protected]>
…llgatherv

mpi/coll: add TSP-based scatter/ring-based-allgather algorithm for Ibcast
submodule: Update UCX to v1.12.0

Approved-by: Hui Zhou <[email protected]>
Left over from previous commits.
Remove the AC_MSG_ERROR on needing the Fortran mismatch flag and add the
flag to the mpif77 wrapper.

This will not affect users of modern Fortran MPI applications who are
likely to use `mpifort` or `mpif90` and uses the mpi module interface.

Users who use `mpif77` is likely to use `mpif.h` interface and will
require the ignore-mismatch compiler flags to compile their MPI
applications.

By adding the extra flags to mpif77 wrapper only, we hope to strike a
balance of convenience and impact.
fortran: remove fortran mismatched arg check

Approved-by: Ken Raffenetti
When testsuite autogen is run outside mpich, supply an empty
mtest_mpix.h so the testing can proceed. The header files is for mpich
specific extension and will fail with non-mpich implementation anyway.
The empty stub will allow strict testing to proceed.

The regular mpich testing is not affected since mpich's top level
autogen will always supply this file.
test: supply empty mtest_mpix.h

Approved-by: Ken Raffenetti
Routine to select only gentran-based algorithm for iallreduce.
Routine to select only gentran-based algorithm for ibcast.
Routine to select only gentran-based algorithm for ibarrier.
hzhou and others added 27 commits April 6, 2022 15:34
release.pl: add creation of libpmi tarball

Approved-by: Ken Raffenetti
Add a signaure to the first packet when proxy first connect to server.
This guards against random connection and port scans.
hydra: enhance proxy initial handshake

Approved-by: Ken Raffenetti
It should allocate a buffer size of true_lb + true_extent rather than
just true_extent.
romio: fix MPIU_external32_buffer_setup

Approved-by: Ken Raffenetti
Add the same --with-thread-package options as in MPL for consistent
thread support. This fixes compile error when MPL is configured with
--with-thread-package=none
pmi: add configure option to disable threads

Approved-by: Ken Raffenetti
Signed-off-by: Mohamad Chaarawi <[email protected]>
Signed-off-by: Mohamad Chaarawi <[email protected]>
Multi-leaders based composition: It has `num_leaders` per node,
which reduce the data within sub-node_comm. It is followed by
intra_node reduce and inter_node allreduce on the piece of data
the leader is responsible for. A shared memory buffer is
allocated per leader. If size of message exceeds this shm buffer,
the message is chunked.
Constraints: For a comm, all nodes should have same number
of ranks per node, op should be commutative.

Co-authored-by: Surabhi Jain <[email protected]>
coll: Add multileader allreduce composition
Signed-off-by: Mohamad Chaarawi <[email protected]>
The header file simple_pmiutil.h was in src/pmi/simple and it is now
being refactored. It is still needed by gforker and remshell. This
commit restore the file into src/pm/util where it belongs. This fixes
the build for gforker and remshell.
pm/util: restore simple_pmiutil.h

Approved-by: Ken Raffenetti
test on an MPI request should not block when using the daos driver as
the event API has a mode to make progress without waiting. Fix the issue
in the poll callback to use the NOWAIT option on event test.

Signed-off-by: Mohamad Chaarawi <[email protected]>
adio/daos: make daos_event_wait non-blocking

Approved-by: Rob Latham
@mchaarawi
Copy link
Collaborator Author

@mchaarawi mchaarawi merged commit 868ee10 into daos_adio-rpm Apr 12, 2022
@mchaarawi mchaarawi deleted the mschaara/adio_merge_main branch April 12, 2022 18:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.