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
Worldis a thread-safe base class to provide connection and memory mapping. It is binded to an MPI comm. - A
Worldcanexposemultiple memory blocks. - Multiple
Workerinstances are created by aWorldto conduct parallel communication. - Each worker independently initiate
put,get, orflushoperations.
- A worker itself is not thread-safe.
newWorkerroutine ofWorldis a collective operation that involves all processes to involve. Only workers in the samenewWorkercall are connected. (Maybe optimize this in the future)