A CPP wrapper based on MPI and UCX to conveniently conduct one-sided communication.
A block of local memory on each process can be exposed so that it can be accessed remotely from another process. On each process, blocks are sequentially numbered according to the order when they are exposed. Other processes are able to visit these blocks using the index.
- A
World
is a thread-safe base class to provide connection and memory mapping. It is binded to an MPI comm. - A
World
canexpose
multiple memory blocks. - Multiple
Worker
instances are created by aWorld
to conduct parallel communication. - Each worker independently initiate
put
,get
, orflush
operations.
- A worker itself is not thread-safe.
newWorker
routine ofWorld
is a collective operation that involves all processes to involve. Only workers in the samenewWorker
call are connected. (Maybe optimize this in the future)