Configuration

Your environmental settings, compiler choice can be considered when running ./configure script. You can check available options by executing ./configure --help command. Some frequently used options are also listed in the bottom of this page.

If the configure or make command fails, please check the error message carefully. In many cases, errors are caused by invalid path of compilers and libraries. To solve such problems, you should specify the path explicitly in the configure option or in your .bashrc.

In some systems, you may need to run commands such asmodule load XXX” before configure, which are often used in supercomputer systems.

Example Configurations

Standard case for CPU only (double precision, without GPU)
$ ./configure
Standard case on CPU+GPU hybrid environment (single precision, with CUDA)
$ ./configure --enable-single --enable-gpu

Note that only spdyn will be compiled and installed in this case. If you wanna use analysis tools, you should prepare another GENESIS directory and configure WITHOUT ‘--enable-single‘. Single precision version of analysis tools are not available now.

CPU+GPU hybrid environment, with non-default CUDA location (single precision, with CUDA)
$ ./configure --enable-single --with-cuda=/usr/local/cuda-8.0

Note that nvcc must exist in “(specified directory)/bin/nvcc“.

Debug build
$ ./configure --enable-debug=3

This enables runtime checking. You can also add --enable-single or/and --enable-gpu in this case. But runtime check of GPU code is not activated now; only CPU code might be checked.

K-computer, FX10, or FX100 environment
 $ ./configure --host=k

Note that parallel-io tool prst_setup won’t be compiled in this configuration. Fujitsu compiler has a trouble in compiling prst_setup, though MD runs using the output of this tool (i.e. parallel-io run) work fine at those supercomputers. If you wanna use parallel-io scheme at K-computer, please prepare the tool and input files elsewhere. Sorry for inconvenience.

Specify non-default compilers
$ ./configure FC="/gwfefs/opt/x86_64/intel/impi_5.0.2/bin64/mpiifort" CC="/gwfefs/opt/x86_64/intel/impi_5.0.2/bin64/mpiicc" F77="/gwfefs/opt/x86_64/intel/impi_5.0.2/bin64/mpiifort"

List of some useful options

--prefix=PREFIX         : install architecture-independent files in PREFIX
--exec-prefix=EPREFIX   : install architecture-dependent files in EPREFIX
--program-prefix=PREFIX : PREFIX to installed program names
--program-suffix=SUFFIX : SUFFIX to installed program names
--enable-debug=LEVEL    : enable debugging (time consuming)
                          1 = without optimization
                          2 = with debug information (-g) & -DDEBUG
                          3 = LEVEL=2 with memory check
--enable-single         : single precision real numbers are used for calculation
--enable-gpu            : use NVIDIA GPU for real space non-bonded interaction
                          (OpenACC is not supported currently)
--disable-openmp        : disable OpenMP parallelization
--disable-parallel_IO   : disable the installation of prst_setup
--with-cuda=PATH        : specify CUDA path (such as /usr/local/cuda-8.0)
--with-lapack           : use LAPACK (default)
--host=host             : specify cross compiling environment
FC                      : Fortran compiler command
CC                      : C compiler command
FCFLAGS                 : Fortran compiler flags
CFLAGS                  : C compiler flags
LAPACK_PATH             : LAPACK library path (e.g., -L<lapack dir>)
LAPACK_LIBS             : LAPACK library files (e.g., -l<lapack library>)