Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/laekov/UCWO

UCX Wrapper for One-sideds
https://github.com/laekov/UCWO

Last synced: 2 months ago
JSON representation

UCX Wrapper for One-sideds

Awesome Lists containing this project

README

        

# UCWO: UCX Wrapper for One-sideds

A CPP wrapper based on MPI and UCX to conveniently conduct one-sided communication.

## Terms

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.

## Usage

* A `World` is a thread-safe base class to provide connection and memory mapping. It is binded to an MPI comm.
* A `World` can `expose` multiple memory blocks.
* Multiple `Worker` instances are created by a `World` to conduct parallel communication.
* Each worker independently initiate `put`, `get`, or `flush` operations.

## Notes

* A worker itself is not thread-safe.
* `newWorker` routine of `World` is a collective operation that involves all processes to involve. Only workers in the same `newWorker` call are connected. (Maybe optimize this in the future)