Skip to content

Support of some NBCs and better error handling #14

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

Merged
merged 4 commits into from
May 5, 2022

Conversation

dssgabriel
Copy link
Contributor

Description

This PR adds support for the following Non-Blocking Collectives (NBCs) and closes #1:

  • MPI_Ibcast;
  • MPI_Igather;
  • MPI_Ireduce;
  • MPI_Iscatter.
    Support for other NBCs is planned (MPI_Iall* and MPI_I*v variants) but is not implemented yet.

Support for automatic merging and parallel sorting of the traces has also been added, along with a complete rewrite of the error handling for a more idiomatic implementation and a cleaner output.

dssgabriel and others added 4 commits May 3, 2022 21:07
Work needed before making a PR to upstream:
- Write `register_*` functions for NBS;
- Rework error handling to factor code out and do everything in `register_mpi_call`'s API.
- Custom error type `InterpolError` and `InterpolErrorKind`, with automatic type conversion using the `From` trait for cleaner outputs and idiomatic error handling.
Also implemented the `impl_builder_error` macro to easily implement the `From` trait on each `Mpi*BuilderError` type;
- Implemented the `impl_register` macro to reduce the amount of boilerplate code;
- Completed dispatch of MPI calls intercepted from **interpol-c**;
- Separated serialization role from `register_finalize` for more flexible usage. It will make possible to serialize the contents of the static vector at any point in the program, e.g. when an error occurs;
- Implemented helper FFI function that allows to deserialize all traces, sort them and reserialize into a single file.
@dssgabriel dssgabriel merged commit fdb0286 into async-mpi-benchmarks:main May 5, 2022
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.

Support MPI Non-Blocking Collectives
1 participant