CommLib
|
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.
** 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
Download Paho MQTT Cpp from github: https://github.com/eclipse/paho.mqtt.cpp
** 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.