Massively Parallel Trotter-Suzuki Solver 1.6.1
Download the latest stable release here. The development version is on GitHub. If you are interested in the Python version, refer to Read the Docs. If you encounter problems or a bug, please open an issue on GitHub.
The code was tested with the GNU Compiler Chain (GCC), Clang, Intel compilers, and with Visual Studio. For the distributed variant, you need an MPI installation; OpenMPI and MPICH were tested. The unit testing framework requires CppUnit to compile. To use the GPU-accelerated version, CUDA and a GPU with at least Compute Cabapility 2.0 are necessary.
If you clone the git repository, first run
Then follow the standard procedure:
$ ./configure [options] $ make $ make install
To compile and run the unit tests, enter
$ make test $ test/unittest
If you prefer the Intel compilers you have to set the following variables, so mpic++ will invoke icpc instead of the default compiler:
$ export CC=/path/of/intel/compiler/icc $ export CXX=/path/of/intel/compiler/icpc $ export OMPI_CC=/path/of/intel/compiler/icc $ export OMPI_CXX=/path/of/intel/compiler/icpc
If you compile it on OS X and your Clang version does not support OpenMP, then install GCC first with brew, and then set the environment variables to point to this compiler chain:
$ export CC=/usr/local/bin/gcc $ export CXX=/usr/local/bin/g++ $ export CPP=/usr/local/bin/cpp $ export LD=/usr/local/bin/gcc $ alias c++=/usr/local/bin/c++ $ alias g++=/usr/local/bin/g++ $ alias gcc=/usr/local/bin/gcc $ alias cpp=/usr/local/bin/cpp $ alias ld=/usr/local/bin/gcc $ alias cc=/usr/local/bin/gcc
Note that GCC is no longer supported by NVCC on OS X, therefore you have to choose between multicore execution and GPU support at compile time if your Clang version does not support OpenMP.
Options for configure
--prefix=PATH Set directory prefix for installation
By default, the executable is installed into /usr/local. If you prefer a different location, use this option to select an installation directory.
--with-mpi=MPIROOT Use MPI root directory. --with-mpi-compilers=DIR or --with-mpi-compilers=yes use MPI compiler (mpicxx) found in directory DIR, or in your PATH if =yes --with-mpi-libs=LIBS MPI libraries [default "-lmpi"] --with-mpi-incdir=DIR MPI include directory [default MPIROOT/include] --with-mpi-libdir=DIR MPI library directory [default MPIROOT/lib]
The above flags allow the identification of the correct MPI library the user wishes to use. The flags are especially useful if MPI is installed in a non-standard location, or when multiple MPI libraries are available.
--with-cuda=/path/to/cuda Set path for CUDA
The configure script looks for CUDA in /usr/local/cuda. If your installation is elsewhere, then specify the path with this parameter. If you do not want CUDA enabled, set the parameter to