One-sided communication #181
DaveLanday
started this conversation in
General
Replies: 1 comment 12 replies
-
Good question. Are you only needing Are you familiar with MPI one-sided synchronization modes? https://enccs.github.io/intermediate-mpi/one-sided-sync/ |
Beta Was this translation helpful? Give feedback.
12 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
First, I must preface I am a novice user of MPI.
I am using CRDTs (conflict-free replicated data types) in an application and I want to pass data (either a commutative operation in the case of operations based CRDTs or the the entire state of the CRDT in the case of state-based CRDTs) between processes. The beauty of a CRDT is that it's merge semantics are implicit to the data structure and I would like to exploit the properties of CRDTs in an MPI application using One-Sided communication (i.e: RMA). My intuition tells me that I need only One-sided communication since the merge semantics are implicit (i.e: just make a
put
request to add new data to a remote CRDT, and the merge is automatically handled by the owner of the data. Given the "strong eventual consistency" guarantees of CRDTs, and as long as I have configured all host files in a way which creates a network of processes that can reach all other processes given enoughput
s (i.e: a graph with cycles), I only needput
behavior).It says in the README.md that One-sided communication (RMA) is not yet implemented in rsmpi and I was wondering if that was an active area of work / focus for the rsmpi team right now, or if it is low-hanging fruit.
If it is a long way off, are there any potential work arounds? i.e: use rust data types and abstractions specific to sharing data between threads and processes (i.e: Arc, channels, mpsc) to share data to processes on the same node, and rely on two-sided communication methods that rsmpi does already implement for communication between remote nodes?
If I am not thinking about the problem correctly, please let me know, but I would love to hear thoughts. Thanks!
Beta Was this translation helpful? Give feedback.
All reactions