Project

General

Profile

Actions

Quick build

For users on 100% compatible systems (system-wide mkl, netcdf)

We assume that you have successfully and unpacked the package.

   cd sphinx
   ./configure --disable-debug --enable-mkl --with-mklpath=/opt/intel/mkl --enable-mklfft
   make all
   make install

If this does not work, please read the rest of this page.

You may want to run the testbed after compilation.

Prerequisites

  • C++ compiler
  • automake
  • libtool
  • flex, bison
  • Additional libraries
    • BLAS+LAPACK library
      • ATLAS+LAPACK or
      • mkl or
      • acml or
      • libGOTO or
      • ESSL
    • FFT library
      • FFTW (recommended)
      • ACML (we encountered many bugs...)
      • mkl
    • netCDF
Fedora yum install gcc-c++, gcc-gfortran, automake, libtool, flex, bison,netcdf-devel
Debian apt-get install g++ gfortran automake libtool flex bison libnetcdf-dev libnetcdf13
MacOS X 10.6 X-Code (install from Apple installation DVD) netcdf

Building

Depending on the scope of your work with S/PHI/nX please choose the best fitting building approach:
Users Testers Developers
build S/PHI/nX release once once frequently
build S/PHI/nX debug once frequently
build SxAccelerate once - frequently
build numlibs once - rarely
  • On machines with N CPUs: you may use parallel make via make -j 2N

configure options (selection)

--disable-atlas --disable-lapack --enable-mkl --with-mklpath=... use MKL for BLAS/LAPACK (support for selected versions)
--disable-atlas --disable-lapack --enable-acml use ACML for BLAS/LAPACK
--enable-fftw use FFTW for FFT
--enable-mklfft use mkl for FFT (don't combine with openmp=> bad performance)
--enable-mpi compile MPI version (experimental)
--enable-openmp compile using openmp, try to use openmp numerical libraries
--with-numlibs=... all external numerical libraries can be found in these paths (/path/1/:/path/2/:/path/3/)
--without-numlibs external numerical libraries can be found in standard paths or via specified LDFLAGS and CPPFLAGS
CXX=... set C++ compiler
CXXFLAGS=... set additional C++ compiler flags
LDFLAGS=... set additional linker flags (see compiler/linker docu)
CPPFLAGS=... set additional preparser flags (see compiler docu)
CPPFLAGS='-I...' set additional search path for external includes

S/PHI/nX users

(Build S/PHI/nX only once to create an optimized executable.)

  1. cd sphinx
  2. ./configure --disable-debug --prefix=/instpath/to/sphinx [options...]
  3. make all install

If --prefix=/instpath/to/sphinx is omitted, SPHInX will be installed into the current directory.

More configure options (for developers)

If you get the code via git, run once in the top-level folder to initialize the automake system

./setup

Then use separate build directories for compiling a debug and release version from the same source code.

--enable-debug compile in debug mode (default)
--disable-debug compile in release mode
--enable-shared/--disable-shared enable/disable shared objects/linkage (default: enable)
--enable-static/--disable-static enable/disable static objects/linkage (default: disable)
--enable-numlibschecks check the numlibs install

Updated by Christoph Freysoldt almost 2 years ago · 17 revisions