The installation requires:
- CMake
- C++ compiler with C++14 support. We regularly test with GCC, but Intel and Clang have also worked.
- Internet connection (we will download external libraries)
Optionally, Phoebe can also use MPI, OpenMP and CUDA, as described below.
Two executables will be created:
- phoebe
- runTests (for developers)
git submodule update --init
mkdir build
cd build
cmake ..
make -j$(nproc)
This will build a basic version of Phoebe, with MPI if available.
git submodule update --init
mkdir build
cd build
cmake .. -DKokkos_ENABLE_OPENMP=ON -DOMP_AVAIL=ON
make -j$(nproc)
git submodule update --init
mkdir build
cd build
cmake .. -DKokkos_ENABLE_CUDA=ON -DKokkos_ARCH_VOLTA70=ON
make -j$(nproc)
Replace VOLTA70
(which is for V100s) with the arch of your GPU.
Phoebe utilizes Kokkos to generate either OpenMP or CUDA code to accelerate parts of the code.
Thus Phoebe accepts all the CMake arguments of Kokkos, which can improve performance.
For example, you should specify -DKokkos_ARCH_KNL=ON
when building for Knight's Landing nodes.
In order to compile the documentation, you need to have installed:
- doxygen
- graphviz Then type
make doc
There can be trouble linking to the libgfortran files required by scalapack. If libgfortran is not found, try adding it specifically to LD_LIBRARY_PATH:
export LIBRARY_PATH=/path/to/libgfortran/
If using homebrew installed gcc, you might need to add the cellar copy rather than the one located with gcc:
export LIBRARY_PATH=/usr/local/Cellar/gcc/9.3.0_1/lib/gcc/9/