0402 Compilation INMOST Linux

Kirill Terekhov edited this page Sep 22, 2015 · 6 revisions

Compiling basic version of INMOST on Linux

We advise to define the folder where you want to place INMOST and other optional libraries:

export INMOST_ROOT="/home/user/inmost-root"

If it doesn't already exist, create this directory:

mkdir -p "$INMOST_ROOT"

Download and unpack INMOST archive:

cd "$INMOST_ROOT"
wget "https://github.com/INMOST-DEV/INMOST/archive/v0.1.tar.gz"
tar zxf v0.1.tar.gz

alternatively you can git clone INMOST repository. Make sure you installed git.

cd "$INMOST_ROOT"
git clone https://github.com/INMOST-DEV/INMOST.git INMOST-0.1

We will create separate directory for INMOST compilation, and configure INMOST with minimal features enabled:

cd "$INMOST_ROOT"
mkdir -p INMOST-build
cd INMOST-build
cmake -DUSE_AUTODIFF=OFF -DUSE_MPI=OFF ../INMOST-0.1
make all

After successful compilation the INMOST library will be created in the current directory.

You can switch between Debug and Release build types using CMake option CMAKE_BUILD_TYPE:

cmake -DCMAKE_BUILD_TYPE=Release ../INMOST-0.1
make all

Optionally we can compile included examples (COMPILE_EXAMPLES=ON) and tests (COMPILE_TESTS=ON):

cmake -DCOMPILE_EXAMPLES=ON -DCOMPILE_TESTS=ON ../INMOST-0.1
make all
make test

Adding MPI support

MPI support is already enabled by default and CMake will auto-detect your MPI installation. Enable USE_MPI option if you previously disabled it.

cmake -DUSE_MPI=ON ../INMOST-0.1
make all

If you need to provide specific paths to MPI wrappers, you can do this using MPI_<lang>_COMPILER options, e.g.:

cmake -DUSE_MPI=ON -DMPI_C_COMPILER=/usr/local/bin/mpicc -DMPI_CXX_COMPILER=/usr/local/bin/mpicxx ../INMOST-0.1/
make all

If your MPI implementation does not support MPI-IO, you should explicitly disable USE_MPI_FILE option:

cmake -DUSE_MPI=ON -DUSE_MPI_FILE=OFF ../INMOST-0.1
make all

Changing default compilers

If you want to use different compilers, you should provide them using CMake parameters CMAKE_C_COMPILER and CMAKE_CXX_COMPILER:

cmake -DCMAKE_C_COMPILER=icc -DCMAKE_CXX_COMPILER=icpc ../INMOST-0.1/
make all
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.