Skip to content
/ fmi Public
forked from spcl/fmi

Function Message Interface (FMI): library for message-passing and collective communication for serverless functions.

Notifications You must be signed in to change notification settings

Stazz0/fmi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

91 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Serverless Message Interface

Dependencies

  • C++17 or higher
  • Boost
  • AWS SDK for C++
  • hiredis

Installation (C++)

  • Clone this repository
  • Add to your CMakeLists.txt:
add_subdirectory(path_to_repo/SMI/)

target_link_libraries(${PROJECT_NAME} PRIVATE SMI)
target_include_directories(${PROJECT_NAME} PRIVATE ${SMI_INCLUDE_DIRS})
  • Integrate the library into your project:
#include <Communicator.h>
...
SMI::Communicator comm(peer_id, num_peers, "config/smi.json", "MyApp", 512);

Installation (Python)

  • Clone this repository
cd python
mkdir build
cd build
cmake ..
make
  • smi.so gets created in the python/build directory. You can copy it into your Python module path or include the build directory via PYTHONPATH. The library can then be integrated into your project:
import smi
comm = smi.Communicator(peer_id, num_peers, "config/smi.json", "MyApp", 512);

Docker Container

The Docker containers SMI-build-docker contain all necessary dependencies and set up the environment for you. See the repo for details.

Examples

C++ sample code for the library is available at tests/communicator.cpp, the usage from Python is demonstrated in python/tests/client.py.

About

Function Message Interface (FMI): library for message-passing and collective communication for serverless functions.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 91.5%
  • Python 4.7%
  • CMake 1.9%
  • Makefile 1.8%
  • C 0.1%