Project

General

Releases

3.1 (2023-12-13): source (11 MB). manual
3.0.9 (2022-08-24): source (11 MB). manual
2.7 (2020-08-31): source (11 MB). manual

Linux binary packages

For testing purposes (functional, but potentially 2-4x slower than optimally compiled) via Open Build Service .
If you miss your distribution of choice, please contact .

Impressum

This site is operated by Max-Planck-Institut für Nachhaltige Materialien GmbH, and forms part of its internet presence. See also the full impressum according to German law.

Contact

Christoph Freysoldt

Wiki

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 over 6 years ago · 17 revisions