Comments (3)
Good catch, thank you.
Although the scope-based mechanism does lead to somewhat convoluted code, I think it is the more general solution. This way the non-blocking operations can still be used on borrowed buffers and thus the same buffer can be used in more than one send operation, or can be involved in a send operation and read from at the same time. Using the existing guard based design with owned buffers would likely require Arq
and friends to make this work, not sure one could get the C code that actually fulfils the request to uphold the exclusivity constraints though.
I still have to think some more about whether it is possible to carry over the freedom of when exactly one wants to wait for a specific request (or even cancel it) into the scope based design. Only being able to wait for all operations initiated within a scope at its exit seems like a restriction. But then again, this might be what is necessary to actually provide a safe API in the Rust sense of the word.
Currently, I do not have huge amounts of free time on my hands, would you be willing to do some work on this issue?
from rsmpi.
Can't promise I'll have time to work on it either, but I'll think about it.
from rsmpi.
Should be fixed by #18.
from rsmpi.
Related Issues (20)
- Worlds and Universes: MPI_FINALIZE HOT 5
- Support for unit testing HOT 4
- Immediate send/recvs hang when the packets being sent are large HOT 16
- Can I send heap allocated data structures with the UserDataType API?
- Using dynamic reference to communicator HOT 12
- Implement Equivalence trait for complex types HOT 2
- Incorrect parsing of `-L` and `-I` paths in build-probe-mpi
- Support `MaybeUninit` HOT 3
- Why I can not compile “mpi-sys”? HOT 2
- Unstable with openmpi in Arch Linux, yet stable with MPICH from conda HOT 4
- clippy lint for derived `Equivalence` of struct with tuple fields HOT 2
- Cannot open include file: 'fficonfig.h' while building with msvc and ms-mpi HOT 10
- Example of using rsmpi across two or more nodes HOT 2
- Problems compiling crates.io version on Arch HOT 3
- push a release with updated bindgen? HOT 1
- Improving ergonomics of sending arrays/vectors HOT 5
- MPI_File support HOT 1
- MPI Communication Analysis possible? HOT 4
- Should ready send be unsafe? HOT 2
- README example fails do build on windows with MS-MPI HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rsmpi.