This repo holds the custom network stack that can be LD_PRELOAD into unmodified application. Implementations can be any of standard socket, MPI, DPDK, etc. The repo is organized as follows:
src
: includes all source code:script
: includes script wrappers to run programsbuild
: default CMake output directory (it'sgit
-ignored)docs
: includes documentation
MPI transport is currently being developed, which is on feature/mpi_transport
branch.
This project is CMake-based, so cmake
is required to build it.
I tested all programs on Ubuntu 18.04 machines, with Mallenox OFED v4.4.
To get started, go to script
directory and run build.sh
-f
(subsequent builds can omit the -f
flags, see below). This will generate outputs in build
directory, following CMake output format.
build.sh
runscmake
andmake
for you. Here are the flags:-f
: removes everything underbuild
folder and re-generatecmake
output. This is needed for the first time.-d
: setscmake
build type to DEBUG. Must be used with-f
.-c
: runsmake clean
beforemake
.
- MPI is required to build MPI code:
setup-mpi.sh
loads the MPI library.- OpenMPI is used by default, and is included with OFED v4.4 (installed at
/usr/mpi/gcc/openmpi-3.1.1rc1
). - HPC-X can also be used by changing the flag in the script, but the default OpenMPI is recommended.
- Configuration files:
config
files underscript
and sub-directories set up environment variables.hosts.config
is a plaintext list of hostnames, used for launching parallel ssh and MPI commands.
- Miscellaneous files:
install-tools.sh
includes the packages needed.setup-host.sh
includes end host setup script for HPC environment.