Andrew Gaspar
Andrew Gaspar
**12/6/2019**: May be overzealous to make everything unsafe. Tentatively, we just need to make it `unsafe` to receive into types with invalid bit patterns, like `bool` and structs. We could...
The current mechanism for creating `LocalScope`s relies on a function and closures. This change adds a macro named `mpi::define_scope!` for defining the `LocalScope` instead, which allows the user to stay...
I added two new traits inspired by this [Pre-RFC](https://internals.rust-lang.org/t/pre-rfc-v2-safe-transmute/11431): `ToBytes` and `FromAnyBytes`. `ToBytes` can be safely applied to any type with deterministic layout that has no internal padding (and therefore...
rsmpi does not currently support multi-language MPI programs very well. This issue is tracking the work needed to make it more embed-able. Outstanding Issues: - [ ] Expose `mpi::is_initialized` -...
Here is an incomplete list of features I'd like for 0.7. All require breaking changes: - https://github.com/rsmpi/rsmpi/issues/12 - https://github.com/rsmpi/rsmpi/issues/32 - https://github.com/rsmpi/rsmpi/issues/59 - https://github.com/rsmpi/rsmpi/issues/86 @adamreichold
See: https://github.com/rsmpi/rsmpi/pull/96#issuecomment-718845063 Deprecate `UserOperation` at the same time.
`MPI_Comm_spawn` and `MPI_Comm_spawn_multiple` are portable methods for allowing an MPI program to launch subprograms and communicate with them via the returned inter-communicator. This is useful for "job launch"-style MPI programs....
The code currently operates under the assumption that all communicators are intra-communicators, but inter-communicators have slightly different semantics that should be captured in the type system. There are places we...
rsmpi should have a prelude module. Currently we recommend writing `use mpi::traits::*;` at the top of any file that is using rsmpi, but `use mpi::prelude::*;` is more conventional.
Try as I might, I cannot use `nonstd::visit` on C++14 to mutate the item currently stored in a variant. If I change to `-std=c++17` (and therefore use `std::variant`), it works....