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

Sierra #4

Merged
merged 36 commits into from
Apr 11, 2024
Merged

Sierra #4

merged 36 commits into from
Apr 11, 2024

Commits on Jun 8, 2023

  1. Wrapper script cleanup.

    - The --version argument is now passed down to the "real" mpi wrapper,
      which is then passed on to the serial compiler.
    - The mpif77 and mpif90 wrappers are removed, and replaced with the
      mpifort wrapper.
    - mpiCC and mpic++ are installed as symlinks to mpicxx
    - mpif77 and mpif90 are installed as symlinks to mpifort
    selamberson committed Jun 8, 2023
    Configuration menu
    Copy the full SHA
    bf8e7f1 View commit details
    Browse the repository at this point in the history
  2. Add some missing constants and functions.

    - Add missing constant MPI_MAX_LIBRARY_VERSION_STRING
    - Add missing constant MPI_ERRCODES_IGNORE
    - Add missing function MPI_Comm_spawn
    selamberson committed Jun 8, 2023
    Configuration menu
    Copy the full SHA
    f577749 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    e7acfc8 View commit details
    Browse the repository at this point in the history
  4. Make YogiMPI version discoverable at compile time

    - Added "YogiMPI_VERSION_STR" to yogimpi.h and mpif.h, which should be
      set to the version of YogiMPI used at compile time.
    - Added "make dist" target, which will create a yogimpi-<VERSION>.tar.gz
      file, where <VERSION> is determined by $(git describe --tags).
    selamberson committed Jun 8, 2023
    Configuration menu
    Copy the full SHA
    9afbddb View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    01531a3 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    3ee4a3f View commit details
    Browse the repository at this point in the history
  7. Add some const-correctness stuff.

    By inspection, there is more to do here.
    selamberson committed Jun 8, 2023
    Configuration menu
    Copy the full SHA
    eb44d80 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    0a716a8 View commit details
    Browse the repository at this point in the history
  9. Remove debug prints.

    selamberson committed Jun 8, 2023
    Configuration menu
    Copy the full SHA
    f64944a View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    2049028 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    9c7d92e View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    8d914ee View commit details
    Browse the repository at this point in the history
  13. Wrap some function pointers passed to MPI

    Before this commit, when client code would pass a copy or delete
    callback to MPI_Comm_create_keyval, if the callbacks had any MPI calls
    inside them then the code would segfault.  The segfault was due to the
    native MPI passing in the native MPI_Comm to the callback, and then
    YogiMPI would segfault when tyring to covert the comm to a MPI_Comm
    because Yogi did not know the comm was already converted.
    
    This change captures the callback functions and wraps them in lambdas
    that un-converts the comm back to a YogiMPI_Comm so it is safe for the
    callbacks to contain MPI calls.
    
    There are likely other failure modes associated with user-supplied
    callbacks to MPI routines.  Hopefully this will be a good pattern to
    repeat if we find similar issues with other callbacks.
    selamberson committed Jun 8, 2023
    Configuration menu
    Copy the full SHA
    a9bf7ae View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    1f0ea28 View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    b585f85 View commit details
    Browse the repository at this point in the history
  16. Fix debug builds.

    selamberson committed Jun 8, 2023
    Configuration menu
    Copy the full SHA
    3780738 View commit details
    Browse the repository at this point in the history
  17. Configuration menu
    Copy the full SHA
    cb6a955 View commit details
    Browse the repository at this point in the history
  18. Configuration menu
    Copy the full SHA
    4901ece View commit details
    Browse the repository at this point in the history

Commits on Jun 16, 2023

  1. Add a callDepth tracking mechanism.

    This commit wraps almost every single native MPI call with a callDepth
    increment/decrement.  Currently this is only used for indenting calls in
    the yogimpi.log.* files.
    
    There are a certain class of problems that are hard to diagnose, and the
    commonality is that YogiMPI has called the native MPI and then that MPI
    has called a callback that was wrapped by YogiMPI.  Adding this
    callDepth and indenting the log file based on callDepth makes it much
    easier to diagnose the problem.
    selamberson committed Jun 16, 2023
    Configuration menu
    Copy the full SHA
    50e943d View commit details
    Browse the repository at this point in the history
  2. Wrap MPI_User_functions passed to MPI.

    This commit wraps MPI_User_functions in lambdas, so we can revert the
    MPI_Datatype back to a YogiMPI_Datatype before passing it to the
    callback so that the callback can be called from the native MPI routines
    (e.g. MPI_Reduce, MPI_Scan, etc.).
    selamberson committed Jun 16, 2023
    Configuration menu
    Copy the full SHA
    de7576f View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    c4d3dba View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    6b92964 View commit details
    Browse the repository at this point in the history

Commits on Jun 17, 2023

  1. Add another missing const

    selamberson committed Jun 17, 2023
    Configuration menu
    Copy the full SHA
    7e995f3 View commit details
    Browse the repository at this point in the history

Commits on Sep 15, 2023

  1. Revert "Wrap MPI_User_functions passed to MPI."

    This reverts commit de7576f.
    selamberson committed Sep 15, 2023
    Configuration menu
    Copy the full SHA
    53c3c0c View commit details
    Browse the repository at this point in the history
  2. Revert "Wrap some function pointers passed to MPI"

    This reverts commit a9bf7ae.
    selamberson committed Sep 15, 2023
    Configuration menu
    Copy the full SHA
    cc8ec8d View commit details
    Browse the repository at this point in the history

Commits on Dec 14, 2023

  1. Configuration menu
    Copy the full SHA
    5cb3f28 View commit details
    Browse the repository at this point in the history

Commits on Dec 28, 2023

  1. Configuration menu
    Copy the full SHA
    10b4690 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    c467791 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    6556240 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    375c775 View commit details
    Browse the repository at this point in the history

Commits on Dec 30, 2023

  1. Configuration menu
    Copy the full SHA
    53d24ee View commit details
    Browse the repository at this point in the history

Commits on Feb 22, 2024

  1. Configuration menu
    Copy the full SHA
    b8a83c5 View commit details
    Browse the repository at this point in the history
  2. Revert "Revert "Wrap MPI_User_functions passed to MPI.""

    This reverts commit 53c3c0c.
    selamberson committed Feb 22, 2024
    Configuration menu
    Copy the full SHA
    dc58318 View commit details
    Browse the repository at this point in the history

Commits on Feb 25, 2024

  1. WIP ... Attempt to fix performance problem.

    Still have more testing to do and a bit more cleanup, but I need to move
    my exploration to another machine.
    selamberson committed Feb 25, 2024
    Configuration menu
    Copy the full SHA
    17bef3b View commit details
    Browse the repository at this point in the history

Commits on Mar 8, 2024

  1. Switch most calls back to insertIntoPool

    Now only datatypes are using the new insertIntoPoolIfNotExists call.
    
    When using the new call for comms and requests things stop working for
    some reason I don't yet understand, so I'm only using the new call for
    the datatype which was causing the most issues (I think ...).
    selamberson committed Mar 8, 2024
    Configuration menu
    Copy the full SHA
    9755159 View commit details
    Browse the repository at this point in the history

Commits on Mar 15, 2024

  1. Configuration menu
    Copy the full SHA
    c98a691 View commit details
    Browse the repository at this point in the history