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.shrunscmakeandmakefor you. Here are the flags:-f: removes everything underbuildfolder and re-generatecmakeoutput. This is needed for the first time.-d: setscmakebuild type to DEBUG. Must be used with-f.-c: runsmake cleanbeforemake.
- MPI is required to build MPI code:
setup-mpi.shloads 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:
configfiles underscriptand sub-directories set up environment variables.hosts.configis a plaintext list of hostnames, used for launching parallel ssh and MPI commands.
- Miscellaneous files:
install-tools.shincludes the packages needed.setup-host.shincludes end host setup script for HPC environment.