Skip to content

ParaGroup/MTCL

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Multi Transport Communication Library (MTCL)

The MTCL library aims to provide a common (and simple enough) interface for several back-end communication libraries. Currently we support TCP/IP, MPI, MPIP2P (i.e., dynamic MPI), UCX, MQTT. The Shared Memory (SHM) support is still experimental.

Dependencies

  • ** MPI ** (OPTIONAL) :

    OpenMPI is required for using the MPI library as transport protocol. By default, it is disabled. It can be enabled by defining the environmental variable TPROTOCOL=MPI and by properly setting MPI_HOME to point to the OpenMPI install dir.

  • ** MQTT ** (OPTIONAL) :

    For using the MQTT protocol as transport layer, Paho MQTT Cpp and a MQTT broker/server are needed. By default, MQTT is disabled. It can be enabled by defining the environmental variable TPROTOCOL=MQTT and by properly setting MQTT_HOME to point to the Paho MQTT Cpp install dir. As MQTT broker/server Mosquitto is one of the options. Under Linux Ubuntu it can be installed using 'sudo apt install mosquitto'.

    --- How to compile and install Paho MQTT Cpp ----

    Download Paho MQTT C from github: https://github.com/eclipse/paho.mqtt.c

      export MQTT_HOME=<where-you-want-to-install-paho>
      cd paho.mqtt.c
      prefix=${MQTT_HOME} make install
    

    Download Paho MQTT Cpp from github: https://github.com/eclipse/paho.mqtt.cpp

      cd paho.mqtt.cpp
      cmake -Bbuild -H. -DCMAKE_INSTALL_PREFIX=${MQTT_HOME} \
                        -DCMAKE_PREFIX_PATH=${MQTT_HOME}
      cd build
      make install
    
  • ** UCX ** (OPTIONAL) :

    Download UCX from github: https://github.com/openucx/ucx

    --- How to compile and install UCX ---

    $ export UCX_HOME=<ucx-install-path>
    $ ./autogen.sh
    $ ./contrib/configure-release --prefix=${UCX_HOME} --enable-mt
    $ make -j8
    $ make install
    
  • ** UCC ** (OPTIONAL, requires UCX):

    Download UCC from github: https://github.com/openucx/ucc

    --- How to compile and install UCC ---

    $ export UCC_HOME=<ucc-install-path>
    $ ./autogen.sh
    $ ./configure --prefix=${UCC_HOME} --with-ucx=<ucx-install-path> [--with-rocm=no --with-ibverbs=no --with-cuda=no]
    $ make
    
  • ** RapidJSON **

    We use RapidJSON to parse configuration files. If you do not want to use the config file you don't need to install it.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published