diff --git a/README.md b/README.md index e7a5478f1f1e72a3ccb8bff57e0affb2f88f85ec..fa882155bb308ca6397d47ce0cb2924e1810fcab 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,7 @@ ## Modules needed OPENMP build +``` cmake/3.25.2 openmpi/4.1.5_slurm @@ -25,20 +26,58 @@ gtest/1.13.0-1 hdf5/1.10.8_slurm gnutls/3.5.19 +``` + ## Clone repo and build opal-x with OPENMP -% git clone git@gitlab.psi.ch:OPAL/opal-x/src.git opal-x +``` +$ git clone git@gitlab.psi.ch:OPAL/opal-x/src.git opal-x + +$ cd opal-x + +$ ./gen_OPALrevision +``` + + +### To compile for OPENMP: +``` +$ mkdir build_openmp && cd build_openmp +$ cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_STANDARD=20 -DENABLE_SOLVERS=ON -DENABLE_FFT=ON -DIPPL_PLATFORMS=openmp +``` + + +### To compile for GPU, for example Amper80 on Gwendolen +``` +$ mkdir build_cuda && cd build_cuda +``` + +in debug mode: -% cd opal-x +``` +$ cmake .. -DCMAKE_BUILD_TYPE=Debug -DIPPL_PLATFORMS=CUDA -DKokkos_ARCH_AMPERE80=ON -DCMAKE_CXX_STANDARD=20 -DENABLE_FFT=ON -DENABLE_SOLVERS=ON +``` -% ./gen_OPALrevision +and release (optimized) mode: +``` +$ cmake .. -DCMAKE_BUILD_TYPE=Release -DIPPL_PLATFORMS=CUDA -DKokkos_ARCH_AMPERE80=ON -DCMAKE_CXX_STANDARD=20 -DENABLE_FFT=ON -DENABLE_SOLVERS=ON +``` -% mkdir build_openmp && cd build_openmp +### To compile for other GPU architecture, like Pascal on the Merlin's login node +``` +$ mkdir build_cuda_login && cd build_cuda_login +``` -% cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_STANDARD=20 -DENABLE_SOLVERS=ON -DENABLE_FFT=ON -DIPPL_PLATFORMS=openmp +in debug mode: +``` +$ cmake .. -DCMAKE_BUILD_TYPE=Debug -DIPPL_PLATFORMS=CUDA -DKokkos_ARCH_PASCAL61=ON -DCMAKE_CXX_STANDARD=20 -DENABLE_FFT=ON -DENABLE_SOLVERS=ON +``` +and release (optimized) mode: +``` +$ cmake .. -DCMAKE_BUILD_TYPE=Release -DIPPL_PLATFORMS=CUDA -DKokkos_ARCH_PASCAL61=ON -DCMAKE_CXX_STANDARD=20 -DENABLE_FFT=ON -DENABLE_SOLVERS=ON +``` The documentation has been moved to the [Wiki](https://gitlab.psi.ch/OPAL/src/wikis/home).