uiuc-hpc / lci

Implementation of a cool communication layer
Other
10 stars 5 forks source link

Lightweight Communication Interface (LCI)

Implementation of a cool communication layer.

Authors

Overview

The Lightweight Communication Interface (LCI) is designed to be an efficient communication library for multithreaded, irregular communications. It is a research tool to explore design choices for such libraries. It has the following major features:

Currently, LCI is implemented as a mix of C and C++ libraries. Lightweight Communication Tools (LCT) is a C++ library providing basic tools that can be used across libraries. Lightweight Communication Interface (LCI) is a C library implementing communication-related features.

Currently, the functionalities in the LCT library include:

The actual API and (some) documentation are located in lct.h and lci.h.

Installation

cmake .
make
make install

Important CMake variables

Run LCI applications

We use the same mechanisms as MPI to launch LCI processes, so you can use the same way you run MPI applications to run LCI applications. Typically, it would be mpirun or srun. For example,

mpirun -n 2 ./hello_world

or

srun -n 2 ./hello_world

Write an LCI program

See examples and tests for some example code.

See lci/api/lci.h for public APIs.

doxygen for a full documentation.

LICENSE

See LICENSE file.