Software Installation
GronOR can be downloaded from the GitLab repository:
git clone git@gitlab.com:gronor/gronor.git
On systems where ssh cannot be used (e.g. JFZ’s Juwels) use https instead:
git clone https://gitlab.com/gronor/gronor.git
The initial directory structure is as follows:
gronor
|- src
(source directory with sub-directories)
|- include
(directory with a small number of include files)
|- scripts
(directory with scripts)
|- aux
(directory with auxiliary programs)
|- molcas
(directory with OpenMolcas interfaced programs)
|- examples
(directory with full OpenMolcas/GronOR examples)
|- CMakeLists.txt
(the cmake build file)
|- CTestConfig.cmake
(ctest configuration file)
To build the code, do the following in the top-level gronor directory
1.
mkdir build
2.
cd build
3.
cmake [flags] ../
4.
make -j 10
This will expand the directory structure as follows:
gronor
|- src
(source directory with sub-directories)
|- include
(directory with a small number of include files)
|- scripts
(directory with scripts)
|- aux
(directory with auxiliary programs)
|- molcas
(directory with OpenMolcas interfaced programs)
|- examples
(directory with full OpenMolcas/GronOR examples)
|- CMakeLists.txt
(the cmake build file)
|- build ----|- bin
(directory with the gronor binary)
|- lib
(directory with the gronor libraries)
|- CMakeFiles
(cmake files crated during build)
|- CTestConfig.cmake
(ctest configuration file)
The scripts sub-directory contains compile scripts specific to certain computer systems:
juwels_compile
JSC Juwels-Booster compile script
linux_compile
Generic Linuc Workstation compile script
maginet_compile
URV Maginet compile script
summit_compile
OLCF Summit compile script
vega_compile
IZUM Vega compile script
The following rules need to be followed for the src sub-directories:
1.
program main source code in a sub-directory with the same name as the program
2.
library files in a sub-directory will be in a single library file
Build flags are any of the following
-DMPI=ON is the default as GronOR requires a minimum of two MPI ranks to run
-DOMP=ON will activate OpenMP directives
-DACC=ON will activate OpenACC directives
-DOMPTGT=ON will activate OpenMP offload directives
-DCUSOLVER=ON will activate the CUSOLVER QR solvers and requires -DACC=ON (NVIDIA devices only)
-DCUSOLVERJ=ON will activate the CUSOLVER QR and Jacobi solvers and requires -DACC=ON (NVIDIA devices only)
-DMKL=ON will enable the Intel MKL library
-DLAPACK=ON will enable LAPACK solvers from available library
JSC Juwels-Booster specific setup requirements:
module load CMake
module load NVHPC
module load CUDA
module load ParaStationMPI
export FC=mpif90
export CC=mpicc
export CXX=mpic++
CSCS Piz Daint specific setup requirements:
module swap PrgEnv-gnu PrgEnv-pgi
export CUDAHOME=/opt/nvidia/cudatoolkit10.2/10.2.89_3.28-7.0.2.1_2.17__g52c0314
export CUDA_HOME=/opt/nvidia/cudatoolkit10.2/10.2.89_3.28-7.0.2.1_2.17__g52c0314
OLCF Summit specific setup requirements:
module load cmake
module swap xl pgi
module load cuda
setenv MPI_INCLUDE $MPI_ROOT/include
setenv MPI_LIB $MPI_ROOT/lib
setenv LD_LIBRARY_PATH $MPI_ROOT/lib:$LD_LIBRARY_PATH
OLCF Frontier specific setup requirements:
module load PrgEnv-cray-amd
module load craype-accel-amd-gfx90a
module load rocm
module load cmake
setenv OLCF_HIPFORT_ROOT /lustre/orion/world-shared/stf006/reubendb/sw/frontier/hipfort/cce_15.0.1-rocm_5.3.0
setenv PE_MPICH_GTL_DIR_amd_gfx90a "-L${CRAY_MPICH_ROOTDIR}/gtl/lib"
setenv PE_MPICH_GTL_LIBS_amd_gfx90a "-lmpi_gtl_hsa"
setenv CRAY_CPU_TARGET "x86-64"
setenv LD_LIBRARY_PATH ${CRAY_LD_LIBRARY_PATH}:${LD_LIBRARY_PATH}
GronOR has been built and tested with the following compilers:
Cray 8.3.3
GCC 8.5.0
IBM XL 16.1.1
Intel 19.1.2, 2024.0, 2024.1, 2024.2
NVIDIA HPC-SDK 20.7, 20.9, 20.11, 22.07, 22.09, 23.11, 24.1, 24.5, 24.9
PGI 19.9, 19.10, 20.1
GronOR is interfaced to OpenMolcas for multi-reference fragment wave functions and integrals. OpenMolcas