diff --git a/host-configs/CVX/CPU-NOOPT-Hypre-GCC-ompi_hpcx-OMP.cmake b/host-configs/CVX/CPU-NOOPT-Hypre-GCC-ompi_hpcx-OMP.cmake new file mode 100644 index 00000000000..4fd65f30307 --- /dev/null +++ b/host-configs/CVX/CPU-NOOPT-Hypre-GCC-ompi_hpcx-OMP.cmake @@ -0,0 +1,159 @@ +# CVX .cmake for Intel 1-API compilers and MPI +# +# file: CPU-GCC_10.2.0-ompi_hpcx.cmake +# +# Michael E. Thomadakis michael.thomadakis@chevron.com + +# detect host and name the configuration file +site_name(HOST_NAME) +# set(CONFIG_NAME "CPU-NOOPT0-Hypre-GCC_10.2.0-ompi_hpcx" CACHE PATH "") +# message("## CVX CONFIG_NAME = ${CONFIG_NAME}") + +message("## CVX CMAKE_CURRENT_LIST_DIR = ${CMAKE_CURRENT_LIST_DIR}") + +# Default is ON +set(ENABLE_WARNINGS_AS_ERRORS OFF CACHE BOOL "") + + +# # Local mtml settings +# set(sroot "/data/saet/mtml/src" CACHE PATH "") +# set(iroot "/data/saet/mtml/software/x86_64/RHEL7" CACHE PATH "") +# set(P "GEOSX" CACHE PATH "") +# set(VER "0.2.0" CACHE PATH "") + +# # define the path to your compiled installation directory + +# if(NOT DEFINED GEOSX_TPL_DIR) +# set(GEOSX_TPL_ROOT_DIR "${sroot}/${P}/thirdPartyLibs" CACHE PATH "" FORCE) +# else() +# set(GEOSX_TPL_ROOT_DIR "${iroot}/${P}TPL/${VER}" CACHE PATH "" FORCE) +# endif() +# set(GEOSX_TPL_DIR ${GEOSX_TPL_ROOT_DIR}/install-${CONFIG_NAME}-release CACHE PATH "" FORCE) +set(GEOSX_TPL_DIR "$ENV{GEOSX_TPL_DIR}" CACHE PATH "" FORCE) +set(GEOS_TPL_DIR "$ENV{GEOSX_TPL_DIR}" CACHE PATH "" FORCE) +set(GEOSX_DIR "$ENV{GEOSX_DIR}" CACHE PATH "" FORCE) +message("## GEOSX_TPL_DIR = ${GEOSX_TPL_DIR}") +message("## GEOS_TPL_DIR = ${GEOS_TPL_DIR}") +message("## GEOSX_DIR = ${GEOSX_DIR}") + +# set paths to C, C++, and Fortran compilers. Note that while GEOSX does not contain any Fortran code, +# some of the third-party libraries do contain Fortran code. Thus a Fortran compiler must be specified. +set(CMAKE_C_COMPILER "$ENV{GEOSX_CC}" CACHE PATH "") +set(CMAKE_C_FLAGS_RELEASE " -Wno-error -pthread -fno-fast-math -DNDEBUG " CACHE STRING "") +set(CMAKE_C_FLAGS_RELWITHDEBINFO "-g ${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_C_FLAGS_DEBUG "-O0 -g" CACHE STRING "") + +set(CMAKE_CXX_COMPILER "$ENV{GEOSX_CXX}" CACHE PATH "") +set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-g ${CMAKE_CXX_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g" CACHE STRING "") +set(CMAKE_CXX_STANDARD 17 CACHE STRING "") + +set(CMAKE_Fortran_COMPILER "$ENV{GEOSX_FORT}" CACHE PATH "") +set(CMAKE_Fortran_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(ENABLE_FORTRAN OFF CACHE BOOL "" FORCE) + +# enable MPI and set paths to compilers and executable. +# Note that the MPI compilers are wrappers around standard serial compilers. +# Therefore, the MPI compilers must wrap the appropriate serial compilers specified +# in CMAKE_C_COMPILER, CMAKE_CXX_COMPILER, and CMAKE_Fortran_COMPILER. +set(ENABLE_MPI ON CACHE BOOL "") +set(MPI_C_COMPILER "$ENV{GEOSX_MPICC}" CACHE PATH "") +set(MPI_CXX_COMPILER "$ENV{GEOSX_MPICXX}" CACHE PATH "") +set(MPI_Fortran_COMPILER "$ENV{GEOSX_MPIFORT}" CACHE PATH "") +set(MPIEXEC "$ENV{GEOSX_MPIRUN}" CACHE PATH "") + +# # C options +# set(CMAKE_C_COMPILER ${HOST_COMPILER_PATH}/$ENV{GEOSX_CC} CACHE PATH "") +# set(CMAKE_C_FLAGS_RELEASE "-O3 -DNDEBUG -mcpu=power9 -mtune=power9" CACHE STRING "") +# set(CMAKE_C_FLAGS_RELWITHDEBINFO "-g ${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +# set(CMAKE_C_FLAGS_DEBUG "-O0 -g" CACHE STRING "") + +# # C++ options +# set(CMAKE_CXX_COMPILER ${HOST_COMPILER_PATH}/$ENV{GEOSX_CXX} CACHE PATH "") +# set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG -mcpu=power9 -mtune=power9" CACHE STRING "") +# set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-g ${CMAKE_CXX_FLAGS_RELEASE}" CACHE STRING "") +# set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g" CACHE STRING "") +# set(CMAKE_CXX_STANDARD 14 CACHE STRING "") + +# # Fortran options +# set(CMAKE_Fortran_COMPILER ${HOST_COMPILER_PATH}/$ENV{GEOSX_FORT} CACHE PATH "") +# set(CMAKE_Fortran_FLAGS_RELEASE "-O3 -DNDEBUG -mcpu=power9 -mtune=power9" CACHE STRING "") +# #set(FORTRAN_MANGLE_NO_UNDERSCORE ON CACHE BOOL "") + +# # OpenMP options +# set(ENABLE_OPENMP ON CACHE BOOL "" FORCE) +# #set(OpenMP_Fortran_FLAGS "-qsmp=omp" CACHE STRING "") +# #set(OpenMP_Fortran_LIB_NAMES "" CACHE STRING "") + +# # MPI options +# set(ENABLE_MPI ON CACHE BOOL "") +# set(MPI_ROOT /data_local/sw/spectrum_mpi/10.03.01.00rtm5-rh7_20191114 CACHE PATH "") +# set(MPI_C_COMPILER ${MPI_ROOT}/bin/$ENV{GEOSX_MPICC} CACHE PATH "") +# set(MPI_CXX_COMPILER ${MPI_ROOT}/bin/$ENV{GEOSX_MPICXX} CACHE PATH "") +# set(MPI_Fortran_COMPILER ${MPI_ROOT}/bin/mpifort CACHE PATH "") +# set(MPIEXEC ${MPI_ROOT}/bin/$ENV{GEOSX_MPIRUN} CACHE STRING "") +# set(MPIEXEC_NUMPROC_FLAG -np CACHE STRING "") +# set(ENABLE_WRAP_ALL_TESTS_WITH_MPIEXEC ON CACHE BOOL "") + +# set(ENABLE_MKL ON CACHE BOOL "") +# set(INTEL_ROOT "$ENV{INTEL_DIR}" ) +# set(MKL_ROOT "$ENV{MKLROOT}/mkl" ) +# set(MKL_INCLUDE_DIRS ${MKL_ROOT}/include CACHE STRING "") +# set(MKL_LIBRARIES ${MKL_ROOT}/lib/intel64/libmkl_intel_lp64.so +# ${MKL_ROOT}/lib/intel64/libmkl_gnu_thread.so +# ${MKL_ROOT}/lib/intel64/libmkl_core.so +# ${INTEL_ROOT}/compiler/lib/intel64_lin/libiomp5.so +# CACHE STRING "") + +# MikeT : Check if there is value to enable these +# set(ENABLE_GTEST_DEATH_TESTS ON CACHE BOOL "" FORCE) +# set(ENABLE_CALIPER ON CACHE BOOL "") + + + +# disable CUDA and OpenMP +set(CUDA_ENABLED OFF CACHE BOOL "" FORCE) +set(ENABLE_OPENMP ON CACHE BOOL "" FORCE) + +# disable PAMELA and enable PVTPackage +set(ENABLE_PAMELA OFF CACHE BOOL "" FORCE) +set(ENABLE_PVTPackage ON CACHE BOOL "" FORCE) + +set(ENABLE_SPHINX_EXECUTABLE OFF CACHE BOOL "") +set(ENABLE_UNCRUSTIFY ON CACHE BOOL "") +set(ENABLE_DOXYGEN OFF CACHE BOOL "") + +set(ENABLE_VALGRIND OFF CACHE BOOL "") +set(ENABLE_CALIPER ON CACHE BOOL "") + +# Hypre ON +if(NOT DEFINED ENABLE_HYPRE) + set(ENABLE_HYPRE ON CACHE BOOL "" FORCE) + # set(ENABLE_TRILINOS OFF CACHE BOOL "" FORCE) + set(ENABLE_TRILINOS "$ENV{ENABLE_TRILINOS}" CACHE BOOL "" FORCE) +endif() +if(ENABLE_HYPRE) + set(GEOSX_LA_INTERFACE "Hypre" CACHE STRING "" FORCE) +else() + set(ENABLE_HYPRE OFF CACHE BOOL "" FORCE) +endif() + +if( (ENABLE_HYPRE AND ENABLE_TRILINOS) OR (NOT ENABLE_TRILINOS AND NOT ENABLE_HYPRE)) + MESSAGE(SEND_ERROR "Exactly one of ENABLE_HYPRE and ENABLE_TRILINOS must be defined.") + MESSAGE(SEND_ERROR "ENABLE_HYPRE = ${ENABLE_HYPRE}.") + MESSAGE(SEND_ERROR "ENABLE_TRILINOS = ${ENABLE_TRILINOS}.") +endif() + +MESSAGE(STATUS "## GEOSX_LA_INTERFACE = ${GEOSX_LA_INTERFACE}") + +# disable Doxygen +set(ENABLE_DOXYGEN OFF CACHE PATH "") + +# enable tests +set(ENABLE_GTEST_DEATH_TESTS ON CACHE BOOL "" FORCE ) + +# let GEOSX define some third party libraries information for you +message("## CMAKE_CURRENT_LIST_DIR/tpls.cmake = ${CMAKE_CURRENT_LIST_DIR}/../tpls.cmake") +include(${CMAKE_CURRENT_LIST_DIR}/../tpls.cmake) +message("## CMAKE_CURRENT_LIST_DIR = ${CMAKE_CURRENT_LIST_DIR}") diff --git a/host-configs/CVX/CPU-NOOPT-Hypre-GCC_10.2.0-ompi_hpcx-OMP.cmake b/host-configs/CVX/CPU-NOOPT-Hypre-GCC_10.2.0-ompi_hpcx-OMP.cmake new file mode 120000 index 00000000000..28b9fd9f382 --- /dev/null +++ b/host-configs/CVX/CPU-NOOPT-Hypre-GCC_10.2.0-ompi_hpcx-OMP.cmake @@ -0,0 +1 @@ +CPU-NOOPT-Hypre-GCC-ompi_hpcx-OMP.cmake \ No newline at end of file diff --git a/host-configs/CVX/CPU-NOOPT-Hypre-GCC_13.2.0-ompi_hpcx-OMP.cmake b/host-configs/CVX/CPU-NOOPT-Hypre-GCC_13.2.0-ompi_hpcx-OMP.cmake new file mode 120000 index 00000000000..28b9fd9f382 --- /dev/null +++ b/host-configs/CVX/CPU-NOOPT-Hypre-GCC_13.2.0-ompi_hpcx-OMP.cmake @@ -0,0 +1 @@ +CPU-NOOPT-Hypre-GCC-ompi_hpcx-OMP.cmake \ No newline at end of file diff --git a/host-configs/CVX/CPU-OPTO1-Hypre-GCC-ompi_hpcx-OMP.cmake b/host-configs/CVX/CPU-OPTO1-Hypre-GCC-ompi_hpcx-OMP.cmake new file mode 100644 index 00000000000..e93b808dab3 --- /dev/null +++ b/host-configs/CVX/CPU-OPTO1-Hypre-GCC-ompi_hpcx-OMP.cmake @@ -0,0 +1,144 @@ +# CVX .cmake for Intel 1-API compilers and MPI +# +# file: CPU-GCC_10.2.0-ompi_hpcx.cmake +# +# Michael E. Thomadakis michael.thomadakis@chevron.com + +# detect host and name the configuration file +site_name(HOST_NAME) +# set(CONFIG_NAME "CPU-OPTO1-Hypre-GCC_10.2.0-ompi_hpcx-OMP" CACHE PATH "") +# message("## CVX CONFIG_NAME = ${CONFIG_NAME}") + +message("## CVX CMAKE_CURRENT_LIST_DIR = ${CMAKE_CURRENT_LIST_DIR}") + +# Default is ON +set(ENABLE_WARNINGS_AS_ERRORS OFF CACHE BOOL "") + +set(GEOSX_TPL_DIR "$ENV{GEOSX_TPL_DIR}" CACHE PATH "" FORCE) +set(GEOS_TPL_DIR "$ENV{GEOSX_TPL_DIR}" CACHE PATH "" FORCE) +set(GEOSX_DIR "$ENV{GEOSX_DIR}" CACHE PATH "" FORCE) +message("## GEOSX_TPL_DIR = ${GEOSX_TPL_DIR}") +message("## GEOS_TPL_DIR = ${GEOS_TPL_DIR}") +message("## GEOSX_DIR = ${GEOSX_DIR}") + +# set paths to C, C++, and Fortran compilers. Note that while GEOSX does not contain any Fortran code, +# some of the third-party libraries do contain Fortran code. Thus a Fortran compiler must be specified. +set(CMAKE_C_COMPILER "$ENV{GEOSX_CC}" CACHE PATH "") +set(CMAKE_C_FLAGS_RELEASE " -Wno-error -pthread -O1 -fno-fast-math -DNDEBUG " CACHE STRING "") +set(CMAKE_C_FLAGS_RELWITHDEBINFO "-g ${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_C_FLAGS_DEBUG "-O0 -g" CACHE STRING "") + +set(CMAKE_CXX_COMPILER "$ENV{GEOSX_CXX}" CACHE PATH "") +set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-g ${CMAKE_CXX_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g" CACHE STRING "") +set(CMAKE_CXX_STANDARD 17 CACHE STRING "") + +set(CMAKE_Fortran_COMPILER "$ENV{GEOSX_FORT}" CACHE PATH "") +set(CMAKE_Fortran_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(ENABLE_FORTRAN OFF CACHE BOOL "" FORCE) + +# enable MPI and set paths to compilers and executable. +# Note that the MPI compilers are wrappers around standard serial compilers. +# Therefore, the MPI compilers must wrap the appropriate serial compilers specified +# in CMAKE_C_COMPILER, CMAKE_CXX_COMPILER, and CMAKE_Fortran_COMPILER. +set(ENABLE_MPI ON CACHE BOOL "") +set(MPI_C_COMPILER "$ENV{GEOSX_MPICC}" CACHE PATH "") +set(MPI_CXX_COMPILER "$ENV{GEOSX_MPICXX}" CACHE PATH "") +set(MPI_Fortran_COMPILER "$ENV{GEOSX_MPIFORT}" CACHE PATH "") +set(MPIEXEC "$ENV{GEOSX_MPIRUN}" CACHE PATH "") + +# # C options +# set(CMAKE_C_COMPILER ${HOST_COMPILER_PATH}/$ENV{GEOSX_CC} CACHE PATH "") +# set(CMAKE_C_FLAGS_RELEASE "-O3 -DNDEBUG -mcpu=power9 -mtune=power9" CACHE STRING "") +# set(CMAKE_C_FLAGS_RELWITHDEBINFO "-g ${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +# set(CMAKE_C_FLAGS_DEBUG "-O0 -g" CACHE STRING "") + +# # C++ options +# set(CMAKE_CXX_COMPILER ${HOST_COMPILER_PATH}/$ENV{GEOSX_CXX} CACHE PATH "") +# set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG -mcpu=power9 -mtune=power9" CACHE STRING "") +# set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-g ${CMAKE_CXX_FLAGS_RELEASE}" CACHE STRING "") +# set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g" CACHE STRING "") +# set(CMAKE_CXX_STANDARD 14 CACHE STRING "") + +# # Fortran options +# set(CMAKE_Fortran_COMPILER ${HOST_COMPILER_PATH}/$ENV{GEOSX_FORT} CACHE PATH "") +# set(CMAKE_Fortran_FLAGS_RELEASE "-O3 -DNDEBUG -mcpu=power9 -mtune=power9" CACHE STRING "") +# #set(FORTRAN_MANGLE_NO_UNDERSCORE ON CACHE BOOL "") + +# # OpenMP options +# set(ENABLE_OPENMP ON CACHE BOOL "" FORCE) +# #set(OpenMP_Fortran_FLAGS "-qsmp=omp" CACHE STRING "") +# #set(OpenMP_Fortran_LIB_NAMES "" CACHE STRING "") + +# # MPI options +# set(ENABLE_MPI ON CACHE BOOL "") +# set(MPI_ROOT /data_local/sw/spectrum_mpi/10.03.01.00rtm5-rh7_20191114 CACHE PATH "") +# set(MPI_C_COMPILER ${MPI_ROOT}/bin/$ENV{GEOSX_MPICC} CACHE PATH "") +# set(MPI_CXX_COMPILER ${MPI_ROOT}/bin/$ENV{GEOSX_MPICXX} CACHE PATH "") +# set(MPI_Fortran_COMPILER ${MPI_ROOT}/bin/mpifort CACHE PATH "") +# set(MPIEXEC ${MPI_ROOT}/bin/$ENV{GEOSX_MPIRUN} CACHE STRING "") +# set(MPIEXEC_NUMPROC_FLAG -np CACHE STRING "") +# set(ENABLE_WRAP_ALL_TESTS_WITH_MPIEXEC ON CACHE BOOL "") + +# set(ENABLE_MKL ON CACHE BOOL "") +# set(INTEL_ROOT "$ENV{INTEL_DIR}" ) +# set(MKL_ROOT "$ENV{MKLROOT}/mkl" ) +# set(MKL_INCLUDE_DIRS ${MKL_ROOT}/include CACHE STRING "") +# set(MKL_LIBRARIES ${MKL_ROOT}/lib/intel64/libmkl_intel_lp64.so +# ${MKL_ROOT}/lib/intel64/libmkl_gnu_thread.so +# ${MKL_ROOT}/lib/intel64/libmkl_core.so +# ${INTEL_ROOT}/compiler/lib/intel64_lin/libiomp5.so +# CACHE STRING "") + +# MikeT : Check if there is value to enable these +# set(ENABLE_GTEST_DEATH_TESTS ON CACHE BOOL "" FORCE) +# set(ENABLE_CALIPER ON CACHE BOOL "") + + + +# disable CUDA and OpenMP +set(CUDA_ENABLED OFF CACHE BOOL "" FORCE) +set(ENABLE_OPENMP ON CACHE BOOL "" FORCE) + +# enable PAMELA and PVTPackage +set(ENABLE_PAMELA OFF CACHE BOOL "" FORCE) +set(ENABLE_PVTPackage ON CACHE BOOL "" FORCE) + +set(ENABLE_SPHINX_EXECUTABLE OFF CACHE BOOL "") +set(ENABLE_UNCRUSTIFY ON CACHE BOOL "") +set(ENABLE_DOXYGEN OFF CACHE BOOL "") + +set(ENABLE_VALGRIND OFF CACHE BOOL "") +set(ENABLE_CALIPER ON CACHE BOOL "") + +# Hypre ON +if(NOT DEFINED ENABLE_HYPRE) + set(ENABLE_HYPRE ON CACHE BOOL "" FORCE) + # set(ENABLE_TRILINOS OFF CACHE BOOL "" FORCE) + set(ENABLE_TRILINOS "$ENV{ENABLE_TRILINOS}" CACHE BOOL "" FORCE) +endif() +if(ENABLE_HYPRE) + set(GEOSX_LA_INTERFACE "Hypre" CACHE STRING "" FORCE) +else() + set(ENABLE_HYPRE OFF CACHE BOOL "" FORCE) +endif() + +if( (ENABLE_HYPRE AND ENABLE_TRILINOS) OR (NOT ENABLE_TRILINOS AND NOT ENABLE_HYPRE)) + MESSAGE(SEND_ERROR "Exactly one of ENABLE_HYPRE and ENABLE_TRILINOS must be defined.") + MESSAGE(SEND_ERROR "ENABLE_HYPRE = ${ENABLE_HYPRE}.") + MESSAGE(SEND_ERROR "ENABLE_TRILINOS = ${ENABLE_TRILINOS}.") +endif() + +MESSAGE(STATUS "## GEOSX_LA_INTERFACE = ${GEOSX_LA_INTERFACE}") + +# disable Doxygen +set(ENABLE_DOXYGEN OFF CACHE PATH "") + +# enable tests +set(ENABLE_GTEST_DEATH_TESTS ON CACHE BOOL "" FORCE ) + +# let GEOSX define some third party libraries information for you +message("## CMAKE_CURRENT_LIST_DIR/tpls.cmake = ${CMAKE_CURRENT_LIST_DIR}/../tpls.cmake") +include(${CMAKE_CURRENT_LIST_DIR}/../tpls.cmake) +message("## CMAKE_CURRENT_LIST_DIR = ${CMAKE_CURRENT_LIST_DIR}") diff --git a/host-configs/CVX/CPU-OPTO1-Hypre-GCC_10.2.0-ompi_hpcx-OMP.cmake b/host-configs/CVX/CPU-OPTO1-Hypre-GCC_10.2.0-ompi_hpcx-OMP.cmake new file mode 120000 index 00000000000..487370f9164 --- /dev/null +++ b/host-configs/CVX/CPU-OPTO1-Hypre-GCC_10.2.0-ompi_hpcx-OMP.cmake @@ -0,0 +1 @@ +CPU-OPTO1-Hypre-GCC-ompi_hpcx-OMP.cmake \ No newline at end of file diff --git a/host-configs/CVX/CPU-OPTO1-Hypre-GCC_13.2.0-ompi_hpcx-OMP.cmake b/host-configs/CVX/CPU-OPTO1-Hypre-GCC_13.2.0-ompi_hpcx-OMP.cmake new file mode 120000 index 00000000000..487370f9164 --- /dev/null +++ b/host-configs/CVX/CPU-OPTO1-Hypre-GCC_13.2.0-ompi_hpcx-OMP.cmake @@ -0,0 +1 @@ +CPU-OPTO1-Hypre-GCC-ompi_hpcx-OMP.cmake \ No newline at end of file diff --git a/host-configs/CVX/CPU-OPTO2-Hypre-GCC-ompi_hpcx-OMP.cmake b/host-configs/CVX/CPU-OPTO2-Hypre-GCC-ompi_hpcx-OMP.cmake new file mode 100644 index 00000000000..b245d7c8ca8 --- /dev/null +++ b/host-configs/CVX/CPU-OPTO2-Hypre-GCC-ompi_hpcx-OMP.cmake @@ -0,0 +1,101 @@ +# CVX .cmake for Intel 1-API compilers and MPI +# +# file: CPU-GCC_10.2.0-ompi_hpcx.cmake +# +# Michael E. Thomadakis michael.thomadakis@chevron.com + +# detect host and name the configuration file +site_name(HOST_NAME) + +# set(CONFIG_NAME "CPU-OPTO2-Hypre-GCC_10.2.0-ompi_hpcx-OMP" CACHE PATH "") +# message("## CVX CONFIG_NAME = ${CONFIG_NAME}") + +message("## CVX CMAKE_CURRENT_LIST_DIR = ${CMAKE_CURRENT_LIST_DIR}") + +# Default is ON +set(ENABLE_WARNINGS_AS_ERRORS OFF CACHE BOOL "") + +# # Local mtml settings +set(GEOSX_TPL_DIR "$ENV{GEOSX_TPL_DIR}" CACHE PATH "" FORCE) +set(GEOS_TPL_DIR "$ENV{GEOSX_TPL_DIR}" CACHE PATH "" FORCE) +set(GEOSX_DIR "$ENV{GEOSX_DIR}" CACHE PATH "" FORCE) +message("## GEOSX_TPL_DIR = ${GEOSX_TPL_DIR}") +message("## GEOS_TPL_DIR = ${GEOS_TPL_DIR}") +message("## GEOSX_DIR = ${GEOSX_DIR}") + +# set paths to C, C++, and Fortran compilers. Note that while GEOSX does not contain any Fortran code, +# some of the third-party libraries do contain Fortran code. Thus a Fortran compiler must be specified. +set(CMAKE_C_COMPILER "$ENV{GEOSX_CC}" CACHE PATH "") +set(CMAKE_C_FLAGS_RELEASE " -Wno-error -pthread -O2 -fno-fast-math -DNDEBUG " CACHE STRING "") +set(CMAKE_C_FLAGS_RELWITHDEBINFO "-g ${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_C_FLAGS_DEBUG "-O0 -g" CACHE STRING "") + +set(CMAKE_CXX_COMPILER "$ENV{GEOSX_CXX}" CACHE PATH "") +set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-g ${CMAKE_CXX_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g" CACHE STRING "") +set(CMAKE_CXX_STANDARD 17 CACHE STRING "") + +set(CMAKE_Fortran_COMPILER "$ENV{GEOSX_FORT}" CACHE PATH "") +set(CMAKE_Fortran_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(ENABLE_FORTRAN OFF CACHE BOOL "" FORCE) + +# enable MPI and set paths to compilers and executable. +# Note that the MPI compilers are wrappers around standard serial compilers. +# Therefore, the MPI compilers must wrap the appropriate serial compilers specified +# in CMAKE_C_COMPILER, CMAKE_CXX_COMPILER, and CMAKE_Fortran_COMPILER. +set(ENABLE_MPI ON CACHE BOOL "") +set(MPI_C_COMPILER "$ENV{GEOSX_MPICC}" CACHE PATH "") +set(MPI_CXX_COMPILER "$ENV{GEOSX_MPICXX}" CACHE PATH "") +set(MPI_Fortran_COMPILER "$ENV{GEOSX_MPIFORT}" CACHE PATH "") +set(MPIEXEC "$ENV{GEOSX_MPIRUN}" CACHE PATH "") + + +# MikeT : Check if there is value to enable these +# set(ENABLE_GTEST_DEATH_TESTS ON CACHE BOOL "" FORCE) + +# disable CUDA and OpenMP +set(CUDA_ENABLED OFF CACHE BOOL "" FORCE) +set(ENABLE_OPENMP ON CACHE BOOL "" FORCE) + +set(ENABLE_SPHINX_EXECUTABLE ON CACHE BOOL "") +set(ENABLE_UNCRUSTIFY ON CACHE BOOL "") +set(ENABLE_DOXYGEN OFF CACHE BOOL "") + +# enable PAMELA and PVTPackage +set(ENABLE_PAMELA OFF CACHE BOOL "" FORCE) +set(ENABLE_PVTPackage ON CACHE BOOL "" FORCE) +set(ENABLE_VALGRIND OFF CACHE BOOL "") +set(ENABLE_CALIPER ON CACHE BOOL "") +set(ENABLE_CALIPER_HYPRE "$ENV{ENABLE_CALIPER_HYPRE}" CACHE BOOL "") + +# Hypre ON +if(NOT DEFINED ENABLE_HYPRE) + set(ENABLE_HYPRE ON CACHE BOOL "" FORCE) + # set(ENABLE_TRILINOS OFF CACHE BOOL "" FORCE) + set(ENABLE_TRILINOS "$ENV{ENABLE_TRILINOS}" CACHE BOOL "" FORCE) +endif() +if(ENABLE_HYPRE) + set(GEOSX_LA_INTERFACE "Hypre" CACHE STRING "" FORCE) +else() + set(ENABLE_HYPRE OFF CACHE BOOL "" FORCE) +endif() + +if( (ENABLE_HYPRE AND ENABLE_TRILINOS) OR (NOT ENABLE_TRILINOS AND NOT ENABLE_HYPRE)) + MESSAGE(SEND_ERROR "Exactly one of ENABLE_HYPRE and ENABLE_TRILINOS must be defined.") + MESSAGE(SEND_ERROR "ENABLE_HYPRE = ${ENABLE_HYPRE}.") + MESSAGE(SEND_ERROR "ENABLE_TRILINOS = ${ENABLE_TRILINOS}.") +endif() + +MESSAGE(STATUS "## GEOSX_LA_INTERFACE = ${GEOSX_LA_INTERFACE}") + +# disable Doxygen +set(ENABLE_DOXYGEN OFF CACHE PATH "") + +# enable tests +set(ENABLE_GTEST_DEATH_TESTS ON CACHE BOOL "" FORCE ) + +# let GEOSX define some third party libraries information for you +message("## tpls.cmake = ${CMAKE_CURRENT_LIST_DIR}/../tpls.cmake") +include(${CMAKE_CURRENT_LIST_DIR}/../tpls.cmake) +message("## CMAKE_CURRENT_LIST_DIR = ${CMAKE_CURRENT_LIST_DIR}") diff --git a/host-configs/CVX/CPU-OPTO2-Hypre-GCC_10.2.0-ompi_hpcx-OMP.cmake b/host-configs/CVX/CPU-OPTO2-Hypre-GCC_10.2.0-ompi_hpcx-OMP.cmake new file mode 120000 index 00000000000..7844b52ce03 --- /dev/null +++ b/host-configs/CVX/CPU-OPTO2-Hypre-GCC_10.2.0-ompi_hpcx-OMP.cmake @@ -0,0 +1 @@ +CPU-OPTO2-Hypre-GCC-ompi_hpcx-OMP.cmake \ No newline at end of file diff --git a/host-configs/CVX/CPU-OPTO2-Hypre-GCC_13.2.0-ompi_hpcx-OMP.cmake b/host-configs/CVX/CPU-OPTO2-Hypre-GCC_13.2.0-ompi_hpcx-OMP.cmake new file mode 120000 index 00000000000..7844b52ce03 --- /dev/null +++ b/host-configs/CVX/CPU-OPTO2-Hypre-GCC_13.2.0-ompi_hpcx-OMP.cmake @@ -0,0 +1 @@ +CPU-OPTO2-Hypre-GCC-ompi_hpcx-OMP.cmake \ No newline at end of file diff --git a/host-configs/CVX/CPU-OPTO3-Hypre-GCC-impi_2021.08-OMP.cmake b/host-configs/CVX/CPU-OPTO3-Hypre-GCC-impi_2021.08-OMP.cmake new file mode 120000 index 00000000000..deba0dce354 --- /dev/null +++ b/host-configs/CVX/CPU-OPTO3-Hypre-GCC-impi_2021.08-OMP.cmake @@ -0,0 +1 @@ +CPU-OPTO3-Hypre-GCC-mpi-OMP.cmake \ No newline at end of file diff --git a/host-configs/CVX/CPU-OPTO3-Hypre-GCC-mpi-OMP.cmake b/host-configs/CVX/CPU-OPTO3-Hypre-GCC-mpi-OMP.cmake new file mode 100644 index 00000000000..f3ea8c9e79a --- /dev/null +++ b/host-configs/CVX/CPU-OPTO3-Hypre-GCC-mpi-OMP.cmake @@ -0,0 +1,114 @@ +# CVX .cmake for GNU compilers and generic MPI +# Optmization: -O3 -fno-fast-math +# +# Michael E. Thomadakis michael.thomadakis@chevron.com +# + +# Get host name +site_name(HOST_NAME) + +set(CONFIG_NAME "$ENV{CONFIG_NAME}" CACHE PATH "") +message("## CVX CONFIG_NAME = ${CONFIG_NAME}") +message("## CVX CMAKE_CURRENT_LIST_DIR = ${CMAKE_CURRENT_LIST_DIR}") + +# Default is ON +set(ENABLE_WARNINGS_AS_ERRORS OFF CACHE BOOL "") + +# Local mtml settings +set(GEOSX_TPL_DIR "$ENV{GEOSX_TPL_DIR}" CACHE PATH "" FORCE) +set(GEOS_TPL_DIR "$ENV{GEOSX_TPL_DIR}" CACHE PATH "" FORCE) +set(GEOSX_DIR "$ENV{GEOSX_DIR}" CACHE PATH "" FORCE) +message("## GEOSX_TPL_DIR = ${GEOSX_TPL_DIR}") +message("## GEOS_TPL_DIR = ${GEOS_TPL_DIR}") +message("## GEOSX_DIR = ${GEOSX_DIR}") + +# set paths to C, C++, and Fortran compilers. Note that while GEOSX does not contain any Fortran code, +# some of the third-party libraries do contain Fortran code. Thus a Fortran compiler must be specified. +set(CMAKE_C_COMPILER "$ENV{GEOSX_CC}" CACHE PATH "") + +## -mdaz-ftz to all GNU options, except the DEBUG builds +set(CMAKE_C_FLAGS_RELEASE " -Wno-error -pthread -O3 -mfma -fno-fast-math -mdaz-ftz -DNDEBUG " CACHE STRING "") +set(CMAKE_C_FLAGS_RELWITHDEBINFO "-g ${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_C_FLAGS_DEBUG "-O0 -g" CACHE STRING "") + +set(CMAKE_CXX_COMPILER "$ENV{GEOSX_CXX}" CACHE PATH "") +set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-g ${CMAKE_CXX_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g" CACHE STRING "") +set(CMAKE_CXX_STANDARD 17 CACHE STRING "") + +set(CMAKE_Fortran_COMPILER "$ENV{GEOSX_FORT}" CACHE PATH "") +set(CMAKE_Fortran_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_Fortran_FLAGS_RELWITHDEBINFO "-g ${CMAKE_CXX_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_Fortran_FLAGS_DEBUG "-O0 -g" CACHE STRING "") +set(ENABLE_FORTRAN OFF CACHE BOOL "" FORCE) + +# enable MPI and set paths to compilers and executable. +# Note that the MPI compilers are wrappers around standard serial compilers. +# Therefore, the MPI compilers must wrap the appropriate serial compilers specified +# in CMAKE_C_COMPILER, CMAKE_CXX_COMPILER, and CMAKE_Fortran_COMPILER. +set(ENABLE_MPI ON CACHE BOOL "") +set(MPI_C_COMPILER "$ENV{GEOSX_MPICC}" CACHE PATH "") +set(MPI_CXX_COMPILER "$ENV{GEOSX_MPICXX}" CACHE PATH "") +set(MPI_Fortran_COMPILER "$ENV{GEOSX_MPIFORT}" CACHE PATH "") +set(MPIEXEC "$ENV{GEOSX_MPIRUN}" CACHE PATH "") + +# MikeT : Check if there is value to enable these +# set(ENABLE_GTEST_DEATH_TESTS ON CACHE BOOL "" FORCE) + +# disable CUDA and OpenMP +set(CUDA_ENABLED OFF CACHE BOOL "" FORCE) +set(ENABLE_OPENMP ON CACHE BOOL "" FORCE) + +set(ENABLE_SPHINX_EXECUTABLE OFF CACHE BOOL "") +set(ENABLE_UNCRUSTIFY ON CACHE BOOL "") +set(ENABLE_DOXYGEN OFF CACHE BOOL "") + +# enable PAMELA and PVTPackage +set(ENABLE_PAMELA OFF CACHE BOOL "" FORCE) +set(ENABLE_PVTPackage ON CACHE BOOL "" FORCE) +set(ENABLE_VALGRIND OFF CACHE BOOL "") +set(ENABLE_CALIPER ON CACHE BOOL "") +set(ENABLE_CALIPER_HYPRE "$ENV{ENABLE_CALIPER_HYPRE}" CACHE BOOL "") + +# Hypre ON +if(NOT DEFINED ENABLE_HYPRE) + set(ENABLE_HYPRE ON CACHE BOOL "" FORCE) + # set(ENABLE_TRILINOS OFF CACHE BOOL "" FORCE) + set(ENABLE_TRILINOS "$ENV{ENABLE_TRILINOS}" CACHE BOOL "" FORCE) +endif() +if(ENABLE_HYPRE) + set(GEOSX_LA_INTERFACE "Hypre" CACHE STRING "" FORCE) +else() + set(ENABLE_HYPRE OFF CACHE BOOL "" FORCE) +endif() + +if( (ENABLE_HYPRE AND ENABLE_TRILINOS) OR (NOT ENABLE_TRILINOS AND NOT ENABLE_HYPRE)) + MESSAGE(SEND_ERROR "Exactly one of ENABLE_HYPRE and ENABLE_TRILINOS must be defined.") + MESSAGE(SEND_ERROR "ENABLE_HYPRE = ${ENABLE_HYPRE}.") + MESSAGE(SEND_ERROR "ENABLE_TRILINOS = ${ENABLE_TRILINOS}.") +endif() + +MESSAGE(STATUS "## GEOSX_LA_INTERFACE = ${GEOSX_LA_INTERFACE}") + +# disable Doxygen +set(ENABLE_DOXYGEN OFF CACHE PATH "") + +# enable tests +set(ENABLE_GTEST_DEATH_TESTS ON CACHE BOOL "" FORCE ) + +# let GEOSX define some third party libraries information for you +message("## tpls.cmake = ${CMAKE_CURRENT_LIST_DIR}/../tpls.cmake") +include(${CMAKE_CURRENT_LIST_DIR}/../tpls.cmake) +message("## CMAKE_CURRENT_LIST_DIR = ${CMAKE_CURRENT_LIST_DIR}") + +# IN case MKL is ever used +# set(ENABLE_MKL ON CACHE BOOL "") +# set(INTEL_ROOT "$ENV{INTEL_DIR}" ) +# set(MKL_ROOT "$ENV{MKLROOT}/mkl" ) +# set(MKL_INCLUDE_DIRS ${MKL_ROOT}/include CACHE STRING "") +# set(MKL_LIBRARIES ${MKL_ROOT}/lib/intel64/libmkl_intel_lp64.so +# ${MKL_ROOT}/lib/intel64/libmkl_gnu_thread.so +# ${MKL_ROOT}/lib/intel64/libmkl_core.so +# ${INTEL_ROOT}/compiler/lib/intel64_lin/libiomp5.so +# CACHE STRING "") diff --git a/host-configs/CVX/CPU-OPTO3-Hypre-GCC-mpi-noOMP.cmake b/host-configs/CVX/CPU-OPTO3-Hypre-GCC-mpi-noOMP.cmake new file mode 100644 index 00000000000..b369045a775 --- /dev/null +++ b/host-configs/CVX/CPU-OPTO3-Hypre-GCC-mpi-noOMP.cmake @@ -0,0 +1,115 @@ +# CVX .cmake for GNU compilers and generic MPI +# Optmization: -O3 -fno-fast-math +# +# Michael E. Thomadakis michael.thomadakis@chevron.com +# + +# Get host name +site_name(HOST_NAME) + +set(CONFIG_NAME "$ENV{CONFIG_NAME}" CACHE PATH "") +message("## CVX CONFIG_NAME = ${CONFIG_NAME}") +message("## CVX CMAKE_CURRENT_LIST_DIR = ${CMAKE_CURRENT_LIST_DIR}") + +# Default is ON +set(ENABLE_WARNINGS_AS_ERRORS OFF CACHE BOOL "") + +# Local mtml settings +set(GEOSX_TPL_DIR "$ENV{GEOSX_TPL_DIR}" CACHE PATH "" FORCE) +set(GEOS_TPL_DIR "$ENV{GEOSX_TPL_DIR}" CACHE PATH "" FORCE) +set(GEOSX_DIR "$ENV{GEOSX_DIR}" CACHE PATH "" FORCE) +message("## GEOSX_TPL_DIR = ${GEOSX_TPL_DIR}") +message("## GEOS_TPL_DIR = ${GEOS_TPL_DIR}") +message("## GEOSX_DIR = ${GEOSX_DIR}") + +# set paths to C, C++, and Fortran compilers. Note that while GEOSX does not contain any Fortran code, +# some of the third-party libraries do contain Fortran code. Thus a Fortran compiler must be specified. +set(CMAKE_C_COMPILER "$ENV{GEOSX_CC}" CACHE PATH "") + +## -mdaz-ftz to all GNU options + +set(CMAKE_C_FLAGS_RELEASE " -Wno-error -pthread -O3 -fno-fast-math -mdaz-ftz -DNDEBUG " CACHE STRING "") +set(CMAKE_C_FLAGS_RELWITHDEBINFO "-g ${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_C_FLAGS_DEBUG "-O0 -g" CACHE STRING "") + +set(CMAKE_CXX_COMPILER "$ENV{GEOSX_CXX}" CACHE PATH "") +set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-g ${CMAKE_CXX_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g" CACHE STRING "") +set(CMAKE_CXX_STANDARD 17 CACHE STRING "") + +set(CMAKE_Fortran_COMPILER "$ENV{GEOSX_FORT}" CACHE PATH "") +set(CMAKE_Fortran_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_Fortran_FLAGS_RELWITHDEBINFO "-g ${CMAKE_CXX_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_Fortran_FLAGS_DEBUG "-O0 -g" CACHE STRING "") +set(ENABLE_FORTRAN OFF CACHE BOOL "" FORCE) + +# enable MPI and set paths to compilers and executable. +# Note that the MPI compilers are wrappers around standard serial compilers. +# Therefore, the MPI compilers must wrap the appropriate serial compilers specified +# in CMAKE_C_COMPILER, CMAKE_CXX_COMPILER, and CMAKE_Fortran_COMPILER. +set(ENABLE_MPI ON CACHE BOOL "") +set(MPI_C_COMPILER "$ENV{GEOSX_MPICC}" CACHE PATH "") +set(MPI_CXX_COMPILER "$ENV{GEOSX_MPICXX}" CACHE PATH "") +set(MPI_Fortran_COMPILER "$ENV{GEOSX_MPIFORT}" CACHE PATH "") +set(MPIEXEC "$ENV{GEOSX_MPIRUN}" CACHE PATH "") + +# MikeT : Check if there is value to enable these +# set(ENABLE_GTEST_DEATH_TESTS ON CACHE BOOL "" FORCE) + +# disable CUDA and OpenMP +set(CUDA_ENABLED OFF CACHE BOOL "" FORCE) +set(ENABLE_OPENMP OFF CACHE BOOL "" FORCE) + +set(ENABLE_SPHINX_EXECUTABLE OFF CACHE BOOL "") +set(ENABLE_UNCRUSTIFY ON CACHE BOOL "") +set(ENABLE_DOXYGEN OFF CACHE BOOL "") + +# enable PAMELA and PVTPackage +set(ENABLE_PAMELA OFF CACHE BOOL "" FORCE) +set(ENABLE_PVTPackage ON CACHE BOOL "" FORCE) +set(ENABLE_VALGRIND OFF CACHE BOOL "") +set(ENABLE_CALIPER ON CACHE BOOL "") +set(ENABLE_CALIPER_HYPRE "$ENV{ENABLE_CALIPER_HYPRE}" CACHE BOOL "") + +# Hypre ON +if(NOT DEFINED ENABLE_HYPRE) + set(ENABLE_HYPRE ON CACHE BOOL "" FORCE) + # set(ENABLE_TRILINOS OFF CACHE BOOL "" FORCE) + set(ENABLE_TRILINOS "$ENV{ENABLE_TRILINOS}" CACHE BOOL "" FORCE) +endif() +if(ENABLE_HYPRE) + set(GEOSX_LA_INTERFACE "Hypre" CACHE STRING "" FORCE) +else() + set(ENABLE_HYPRE OFF CACHE BOOL "" FORCE) +endif() + +if( (ENABLE_HYPRE AND ENABLE_TRILINOS) OR (NOT ENABLE_TRILINOS AND NOT ENABLE_HYPRE)) + MESSAGE(SEND_ERROR "Exactly one of ENABLE_HYPRE and ENABLE_TRILINOS must be defined.") + MESSAGE(SEND_ERROR "ENABLE_HYPRE = ${ENABLE_HYPRE}.") + MESSAGE(SEND_ERROR "ENABLE_TRILINOS = ${ENABLE_TRILINOS}.") +endif() + +MESSAGE(STATUS "## GEOSX_LA_INTERFACE = ${GEOSX_LA_INTERFACE}") + +# disable Doxygen +set(ENABLE_DOXYGEN OFF CACHE PATH "") + +# enable tests +set(ENABLE_GTEST_DEATH_TESTS ON CACHE BOOL "" FORCE ) + +# let GEOSX define some third party libraries information for you +message("## tpls.cmake = ${CMAKE_CURRENT_LIST_DIR}/../tpls.cmake") +include(${CMAKE_CURRENT_LIST_DIR}/../tpls.cmake) +message("## CMAKE_CURRENT_LIST_DIR = ${CMAKE_CURRENT_LIST_DIR}") + +# IN case MKL is ever used +# set(ENABLE_MKL ON CACHE BOOL "") +# set(INTEL_ROOT "$ENV{INTEL_DIR}" ) +# set(MKL_ROOT "$ENV{MKLROOT}/mkl" ) +# set(MKL_INCLUDE_DIRS ${MKL_ROOT}/include CACHE STRING "") +# set(MKL_LIBRARIES ${MKL_ROOT}/lib/intel64/libmkl_intel_lp64.so +# ${MKL_ROOT}/lib/intel64/libmkl_gnu_thread.so +# ${MKL_ROOT}/lib/intel64/libmkl_core.so +# ${INTEL_ROOT}/compiler/lib/intel64_lin/libiomp5.so +# CACHE STRING "") diff --git a/host-configs/CVX/CPU-OPTO3-Hypre-GCC-ompi_hpcx-OMP.cmake b/host-configs/CVX/CPU-OPTO3-Hypre-GCC-ompi_hpcx-OMP.cmake new file mode 120000 index 00000000000..3d8b8ac4987 --- /dev/null +++ b/host-configs/CVX/CPU-OPTO3-Hypre-GCC-ompi_hpcx-OMP.cmake @@ -0,0 +1 @@ +./CPU-OPTO3-Hypre-GCC-mpi-OMP.cmake \ No newline at end of file diff --git a/host-configs/CVX/CPU-OPTO3-Hypre-GCC_10.2.0-impi_2021.08-OMP.cmake b/host-configs/CVX/CPU-OPTO3-Hypre-GCC_10.2.0-impi_2021.08-OMP.cmake new file mode 120000 index 00000000000..deba0dce354 --- /dev/null +++ b/host-configs/CVX/CPU-OPTO3-Hypre-GCC_10.2.0-impi_2021.08-OMP.cmake @@ -0,0 +1 @@ +CPU-OPTO3-Hypre-GCC-mpi-OMP.cmake \ No newline at end of file diff --git a/host-configs/CVX/CPU-OPTO3-Hypre-GCC_10.2.0-ompi_hpcx-OMP.cmake b/host-configs/CVX/CPU-OPTO3-Hypre-GCC_10.2.0-ompi_hpcx-OMP.cmake new file mode 120000 index 00000000000..deba0dce354 --- /dev/null +++ b/host-configs/CVX/CPU-OPTO3-Hypre-GCC_10.2.0-ompi_hpcx-OMP.cmake @@ -0,0 +1 @@ +CPU-OPTO3-Hypre-GCC-mpi-OMP.cmake \ No newline at end of file diff --git a/host-configs/CVX/CPU-OPTO3-Hypre-GCC_10.4.0-ompi_hpcx-OMP.cmake b/host-configs/CVX/CPU-OPTO3-Hypre-GCC_10.4.0-ompi_hpcx-OMP.cmake new file mode 120000 index 00000000000..deba0dce354 --- /dev/null +++ b/host-configs/CVX/CPU-OPTO3-Hypre-GCC_10.4.0-ompi_hpcx-OMP.cmake @@ -0,0 +1 @@ +CPU-OPTO3-Hypre-GCC-mpi-OMP.cmake \ No newline at end of file diff --git a/host-configs/CVX/CPU-OPTO3-Hypre-GCC_13.2.0-impi_2021.08-OMP.cmake b/host-configs/CVX/CPU-OPTO3-Hypre-GCC_13.2.0-impi_2021.08-OMP.cmake new file mode 120000 index 00000000000..deba0dce354 --- /dev/null +++ b/host-configs/CVX/CPU-OPTO3-Hypre-GCC_13.2.0-impi_2021.08-OMP.cmake @@ -0,0 +1 @@ +CPU-OPTO3-Hypre-GCC-mpi-OMP.cmake \ No newline at end of file diff --git a/host-configs/CVX/CPU-OPTO3-Hypre-GCC_13.2.0-ompi_hpcx-OMP.cmake b/host-configs/CVX/CPU-OPTO3-Hypre-GCC_13.2.0-ompi_hpcx-OMP.cmake new file mode 120000 index 00000000000..deba0dce354 --- /dev/null +++ b/host-configs/CVX/CPU-OPTO3-Hypre-GCC_13.2.0-ompi_hpcx-OMP.cmake @@ -0,0 +1 @@ +CPU-OPTO3-Hypre-GCC-mpi-OMP.cmake \ No newline at end of file diff --git a/host-configs/CVX/CPU-OPTO3-Hypre-GCC_9.4.0-ompi_hpcx-OMP.cmake b/host-configs/CVX/CPU-OPTO3-Hypre-GCC_9.4.0-ompi_hpcx-OMP.cmake new file mode 120000 index 00000000000..deba0dce354 --- /dev/null +++ b/host-configs/CVX/CPU-OPTO3-Hypre-GCC_9.4.0-ompi_hpcx-OMP.cmake @@ -0,0 +1 @@ +CPU-OPTO3-Hypre-GCC-mpi-OMP.cmake \ No newline at end of file diff --git a/host-configs/CVX/CPU-OPTO3-Hypre-oblas-GCC_10.4.0-ompi_hpcx-OMP.cmake b/host-configs/CVX/CPU-OPTO3-Hypre-oblas-GCC_10.4.0-ompi_hpcx-OMP.cmake new file mode 100644 index 00000000000..25ed4f4b394 --- /dev/null +++ b/host-configs/CVX/CPU-OPTO3-Hypre-oblas-GCC_10.4.0-ompi_hpcx-OMP.cmake @@ -0,0 +1,106 @@ +# CVX .cmake for Intel 1-API compilers and MPI +# +# file: CPU-GCC_10.2.0-ompi_hpcx.cmake +# +# Michael E. Thomadakis michael.thomadakis@chevron.com + +# detect host and name the configuration file +site_name(HOST_NAME) + +#set(CONFIG_NAME "CPU-OPTO3-Hypre-GCC_10.2.0-ompi_hpcx-OMP" CACHE PATH "") +# message("## CVX CONFIG_NAME = ${CONFIG_NAME}") + +message("## CVX CMAKE_CURRENT_LIST_DIR = ${CMAKE_CURRENT_LIST_DIR}") + +# Default is ON +set(ENABLE_WARNINGS_AS_ERRORS OFF CACHE BOOL "") + +# Local mtml settings +set(GEOSX_TPL_DIR "$ENV{GEOSX_TPL_DIR}" CACHE PATH "" FORCE) +set(GEOS_TPL_DIR "$ENV{GEOSX_TPL_DIR}" CACHE PATH "" FORCE) +set(GEOSX_DIR "$ENV{GEOSX_DIR}" CACHE PATH "" FORCE) +message("## GEOSX_TPL_DIR = ${GEOSX_TPL_DIR}") +message("## GEOS_TPL_DIR = ${GEOS_TPL_DIR}") +message("## GEOSX_DIR = ${GEOSX_DIR}") + +# set paths to C, C++, and Fortran compilers. Note that while GEOSX does not contain any Fortran code, +# some of the third-party libraries do contain Fortran code. Thus a Fortran compiler must be specified. +set(CMAKE_C_COMPILER "$ENV{GEOSX_CC}" CACHE PATH "") +set(CMAKE_C_FLAGS_RELEASE " -Wno-error -pthread -O3 -fno-fast-math -mdaz-ftz -DNDEBUG " CACHE STRING "") +set(CMAKE_C_FLAGS_RELWITHDEBINFO "-g ${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_C_FLAGS_DEBUG "-O0 -g" CACHE STRING "") + +set(CMAKE_CXX_COMPILER "$ENV{GEOSX_CXX}" CACHE PATH "") +set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-g ${CMAKE_CXX_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g" CACHE STRING "") +set(CMAKE_CXX_STANDARD 17 CACHE STRING "") + +set(CMAKE_Fortran_COMPILER "$ENV{GEOSX_FORT}" CACHE PATH "") +set(CMAKE_Fortran_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(ENABLE_FORTRAN OFF CACHE BOOL "" FORCE) + +# enable MPI and set paths to compilers and executable. +# Note that the MPI compilers are wrappers around standard serial compilers. +# Therefore, the MPI compilers must wrap the appropriate serial compilers specified +# in CMAKE_C_COMPILER, CMAKE_CXX_COMPILER, and CMAKE_Fortran_COMPILER. +set(ENABLE_MPI ON CACHE BOOL "") +set(MPI_C_COMPILER "$ENV{GEOSX_MPICC}" CACHE PATH "") +set(MPI_CXX_COMPILER "$ENV{GEOSX_MPICXX}" CACHE PATH "") +set(MPI_Fortran_COMPILER "$ENV{GEOSX_MPIFORT}" CACHE PATH "") +set(MPIEXEC "$ENV{GEOSX_MPIRUN}" CACHE PATH "") + +set(BLAS_LIBRARIES "/data/saet/software/aarch64/lib/libopenblas.so" CACHE STRING "") +# set(BLAS_LIBRARIES "$ENV{NVHPC_ROOT}/math_libs/lib64/libnvblas.so" CACHE STRING "") +message("## BLAS_LIBRARIES = ${BLAS_LIBRARIES}") + +set(ENABLE_MATHPRESSO OFF CACHE BOOL "" FORCE ) + +# MikeT : Check if there is value to enable these +# set(ENABLE_GTEST_DEATH_TESTS ON CACHE BOOL "" FORCE) + +# disable CUDA and OpenMP +set(CUDA_ENABLED OFF CACHE BOOL "" FORCE) +set(ENABLE_OPENMP ON CACHE BOOL "" FORCE) + +set(ENABLE_SPHINX_EXECUTABLE ON CACHE BOOL "") +set(ENABLE_UNCRUSTIFY ON CACHE BOOL "") +set(ENABLE_DOXYGEN OFF CACHE BOOL "") + +# enable PAMELA and PVTPackage +set(ENABLE_PAMELA OFF CACHE BOOL "" FORCE) +set(ENABLE_PVTPackage ON CACHE BOOL "" FORCE) +set(ENABLE_VALGRIND OFF CACHE BOOL "") +set(ENABLE_CALIPER ON CACHE BOOL "") +set(ENABLE_CALIPER_HYPRE "$ENV{ENABLE_CALIPER_HYPRE}" CACHE BOOL "") + +# Hypre ON +if(NOT DEFINED ENABLE_HYPRE) + set(ENABLE_HYPRE ON CACHE BOOL "" FORCE) + # set(ENABLE_TRILINOS OFF CACHE BOOL "" FORCE) + set(ENABLE_TRILINOS "$ENV{ENABLE_TRILINOS}" CACHE BOOL "" FORCE) +endif() +if(ENABLE_HYPRE) + set(GEOSX_LA_INTERFACE "Hypre" CACHE STRING "" FORCE) +else() + set(ENABLE_HYPRE OFF CACHE BOOL "" FORCE) +endif() + +if( (ENABLE_HYPRE AND ENABLE_TRILINOS) OR (NOT ENABLE_TRILINOS AND NOT ENABLE_HYPRE)) + MESSAGE(SEND_ERROR "Exactly one of ENABLE_HYPRE and ENABLE_TRILINOS must be defined.") + MESSAGE(SEND_ERROR "ENABLE_HYPRE = ${ENABLE_HYPRE}.") + MESSAGE(SEND_ERROR "ENABLE_TRILINOS = ${ENABLE_TRILINOS}.") +endif() + +MESSAGE(STATUS "## GEOSX_LA_INTERFACE = ${GEOSX_LA_INTERFACE}") + +# disable Doxygen +set(ENABLE_DOXYGEN OFF CACHE PATH "") + +# enable tests +set(ENABLE_GTEST_DEATH_TESTS ON CACHE BOOL "" FORCE ) + +# let GEOSX define some third party libraries information for you +message("## tpls.cmake = ${CMAKE_CURRENT_LIST_DIR}/../tpls.cmake") +include(${CMAKE_CURRENT_LIST_DIR}/../tpls.cmake) +message("## CMAKE_CURRENT_LIST_DIR = ${CMAKE_CURRENT_LIST_DIR}") diff --git a/host-configs/CVX/CPU-OPTO3fast-Hypre-GCC_10.2.0-ompi_hpcx-OMP.cmake b/host-configs/CVX/CPU-OPTO3fast-Hypre-GCC_10.2.0-ompi_hpcx-OMP.cmake new file mode 120000 index 00000000000..79cc6c3fb1c --- /dev/null +++ b/host-configs/CVX/CPU-OPTO3fast-Hypre-GCC_10.2.0-ompi_hpcx-OMP.cmake @@ -0,0 +1 @@ +CPU-OPTO3fast-Hypre-MPI-OMP.cmake \ No newline at end of file diff --git a/host-configs/CVX/CPU-OPTO3fast-Hypre-GCC_10.4.0-ompi_hpcx-OMP.cmake b/host-configs/CVX/CPU-OPTO3fast-Hypre-GCC_10.4.0-ompi_hpcx-OMP.cmake new file mode 120000 index 00000000000..79cc6c3fb1c --- /dev/null +++ b/host-configs/CVX/CPU-OPTO3fast-Hypre-GCC_10.4.0-ompi_hpcx-OMP.cmake @@ -0,0 +1 @@ +CPU-OPTO3fast-Hypre-MPI-OMP.cmake \ No newline at end of file diff --git a/host-configs/CVX/CPU-OPTO3fast-Hypre-GCC_13.2.0-ompi_hpcx-OMP.cmake b/host-configs/CVX/CPU-OPTO3fast-Hypre-GCC_13.2.0-ompi_hpcx-OMP.cmake new file mode 120000 index 00000000000..79cc6c3fb1c --- /dev/null +++ b/host-configs/CVX/CPU-OPTO3fast-Hypre-GCC_13.2.0-ompi_hpcx-OMP.cmake @@ -0,0 +1 @@ +CPU-OPTO3fast-Hypre-MPI-OMP.cmake \ No newline at end of file diff --git a/host-configs/CVX/CPU-OPTO3fast-Hypre-MPI-OMP.cmake b/host-configs/CVX/CPU-OPTO3fast-Hypre-MPI-OMP.cmake new file mode 100644 index 00000000000..2f4d5e65809 --- /dev/null +++ b/host-configs/CVX/CPU-OPTO3fast-Hypre-MPI-OMP.cmake @@ -0,0 +1,105 @@ +# CVX .cmake for GCC V.R.P V=9, 10, 12, 13 +# +# cmake with most aggresive x86_64 optimizations excluding math +# +# Michael E. Thomadakis michael.thomadakis@chevron.com + +# detect host and name the configuration file +site_name(HOST_NAME) + +message("## CVX cmake with most aggresive Zen3 and x86_64 optimizations excluding math") +message("## CVX CMAKE_CURRENT_LIST_DIR = ${CMAKE_CURRENT_LIST_DIR}") + +# Default is ON +set(ENABLE_WARNINGS_AS_ERRORS OFF CACHE BOOL "") + +set(GEOSX_TPL_DIR "$ENV{GEOSX_TPL_DIR}" CACHE PATH "" FORCE) +set(GEOS_TPL_DIR "$ENV{GEOSX_TPL_DIR}" CACHE PATH "" FORCE) +set(GEOSX_DIR "$ENV{GEOSX_DIR}" CACHE PATH "" FORCE) +message("## GEOSX_TPL_DIR = ${GEOSX_TPL_DIR}") +message("## GEOS_TPL_DIR = ${GEOS_TPL_DIR}") +message("## GEOSX_DIR = ${GEOSX_DIR}") + +# set paths to C, C++, and Fortran compilers. Note that while GEOSX does not contain any Fortran code, +# some of the third-party libraries do contain Fortran code. Thus a Fortran compiler must be specified. +set(CMAKE_C_COMPILER "$ENV{GEOSX_CC}" CACHE PATH "") +set(CMAKE_C_FLAGS_RELEASE " -Wno-error -pthread -O3 -DNDEBUG -mfma -Ofast -mdaz-ftz -fno-fast-math -fstrict-aliasing -ftree-vectorize -funroll-loops -flto $ENV{GEOS_FLAGS_CLI} " CACHE STRING "") +set(CMAKE_C_FLAGS_RELWITHDEBINFO "-g ${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_C_FLAGS_DEBUG "-O0 -g" CACHE STRING "") + +set(CMAKE_CXX_COMPILER "$ENV{GEOSX_CXX}" CACHE PATH "") +set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-g ${CMAKE_CXX_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g" CACHE STRING "") +set(CMAKE_CXX_STANDARD 17 CACHE STRING "") + +set(CMAKE_Fortran_COMPILER "$ENV{GEOSX_FORT}" CACHE PATH "") +set(CMAKE_Fortran_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(ENABLE_FORTRAN OFF CACHE BOOL "" FORCE) + +# enable MPI and set paths to compilers and executable. +# Note that the MPI compilers are wrappers around standard serial compilers. +# Therefore, the MPI compilers must wrap the appropriate serial compilers specified +# in CMAKE_C_COMPILER, CMAKE_CXX_COMPILER, and CMAKE_Fortran_COMPILER. +set(ENABLE_MPI ON CACHE BOOL "") +set(MPI_C_COMPILER "$ENV{GEOSX_MPICC}" CACHE PATH "") +set(MPI_CXX_COMPILER "$ENV{GEOSX_MPICXX}" CACHE PATH "") +set(MPI_Fortran_COMPILER "$ENV{GEOSX_MPIFORT}" CACHE PATH "") +set(MPIEXEC "$ENV{GEOSX_MPIRUN}" CACHE PATH "") + +# set(ENABLE_MKL ON CACHE BOOL "") +# set(INTEL_ROOT "$ENV{INTEL_DIR}" ) +# set(MKL_ROOT "$ENV{MKLROOT}/mkl" ) +# set(MKL_INCLUDE_DIRS ${MKL_ROOT}/include CACHE STRING "") +# set(MKL_LIBRARIES ${MKL_ROOT}/lib/intel64/libmkl_intel_lp64.so +# ${MKL_ROOT}/lib/intel64/libmkl_gnu_thread.so +# ${MKL_ROOT}/lib/intel64/libmkl_core.so +# ${INTEL_ROOT}/compiler/lib/intel64_lin/libiomp5.so +# CACHE STRING "") + +# MikeT : Check if there is value to enable these +# set(ENABLE_GTEST_DEATH_TESTS ON CACHE BOOL "" FORCE) + +# disable CUDA and OpenMP +set(CUDA_ENABLED OFF CACHE BOOL "" FORCE) +set(ENABLE_OPENMP ON CACHE BOOL "" FORCE) + +set(ENABLE_SPHINX_EXECUTABLE OFF CACHE BOOL "") +set(ENABLE_UNCRUSTIFY ON CACHE BOOL "") +set(ENABLE_DOXYGEN OFF CACHE BOOL "") + +# enable PAMELA and PVTPackage +set(ENABLE_PAMELA OFF CACHE BOOL "" FORCE) +set(ENABLE_PVTPackage ON CACHE BOOL "" FORCE) +set(ENABLE_VALGRIND OFF CACHE BOOL "") +set(ENABLE_CALIPER ON CACHE BOOL "") + +# Hypre ON +if(NOT DEFINED ENABLE_HYPRE) + set(ENABLE_HYPRE ON CACHE BOOL "" FORCE) + # set(ENABLE_TRILINOS "$ENV{ENABLE_TRILINOS}" CACHE BOOL "" FORCE) +endif() +if(ENABLE_HYPRE) + set(GEOSX_LA_INTERFACE "Hypre" CACHE STRING "" FORCE) +else() + set(ENABLE_HYPRE OFF CACHE BOOL "" FORCE) +endif() + +if( (ENABLE_HYPRE AND ENABLE_TRILINOS) OR (NOT ENABLE_TRILINOS AND NOT ENABLE_HYPRE)) + MESSAGE(SEND_ERROR "Exactly one of ENABLE_HYPRE and ENABLE_TRILINOS must be defined.") + MESSAGE(SEND_ERROR "ENABLE_HYPRE = ${ENABLE_HYPRE}.") + MESSAGE(SEND_ERROR "ENABLE_TRILINOS = ${ENABLE_TRILINOS}.") +endif() + +MESSAGE(STATUS "## GEOSX_LA_INTERFACE = ${GEOSX_LA_INTERFACE}") + +# disable Doxygen +set(ENABLE_DOXYGEN OFF CACHE PATH "") + +# enable tests +set(ENABLE_GTEST_DEATH_TESTS ON CACHE BOOL "" FORCE ) + +# let GEOSX define some third party libraries information for you +message("## CMAKE_CURRENT_LIST_DIR = ${CMAKE_CURRENT_LIST_DIR}") +message("## tpls.cmake = ${CMAKE_CURRENT_LIST_DIR}/../tpls.cmake") +include(${CMAKE_CURRENT_LIST_DIR}/../tpls.cmake) diff --git a/host-configs/CVX/CPU-OPTO3fast-Hypre-impi_1api-OMP.cmake b/host-configs/CVX/CPU-OPTO3fast-Hypre-impi_1api-OMP.cmake new file mode 120000 index 00000000000..79cc6c3fb1c --- /dev/null +++ b/host-configs/CVX/CPU-OPTO3fast-Hypre-impi_1api-OMP.cmake @@ -0,0 +1 @@ +CPU-OPTO3fast-Hypre-MPI-OMP.cmake \ No newline at end of file diff --git a/host-configs/CVX/CPU-OPTO3fast-Hypre-ompi_hpcx-OMP.cmake b/host-configs/CVX/CPU-OPTO3fast-Hypre-ompi_hpcx-OMP.cmake new file mode 120000 index 00000000000..79cc6c3fb1c --- /dev/null +++ b/host-configs/CVX/CPU-OPTO3fast-Hypre-ompi_hpcx-OMP.cmake @@ -0,0 +1 @@ +CPU-OPTO3fast-Hypre-MPI-OMP.cmake \ No newline at end of file diff --git a/host-configs/CVX/CPU-OPTO3fast-Zen3-Hypre-GCC-ompi_hpcx-OMP.cmake b/host-configs/CVX/CPU-OPTO3fast-Zen3-Hypre-GCC-ompi_hpcx-OMP.cmake new file mode 100644 index 00000000000..c80f0a31963 --- /dev/null +++ b/host-configs/CVX/CPU-OPTO3fast-Zen3-Hypre-GCC-ompi_hpcx-OMP.cmake @@ -0,0 +1,111 @@ +# CVX .cmake for GCC V.R.P V=9, 10, 12, 13 +# +# cmake with most aggresive Zen3 optimizations including math +# +# Michael E. Thomadakis michael.thomadakis@chevron.com + +# detect host and name the configuration file +site_name(HOST_NAME) + +message("## CVX cmake with most aggresive Zen3 optimizations including math") +message("## CVX CMAKE_CURRENT_LIST_DIR = ${CMAKE_CURRENT_LIST_DIR}") + +# Default is ON +set(ENABLE_WARNINGS_AS_ERRORS OFF CACHE BOOL "") + +# # Local mtml settings +set(GEOSX_TPL_DIR "$ENV{GEOSX_TPL_DIR}" CACHE PATH "" FORCE) +set(GEOS_TPL_DIR "$ENV{GEOSX_TPL_DIR}" CACHE PATH "" FORCE) +set(GEOSX_DIR "$ENV{GEOSX_DIR}" CACHE PATH "" FORCE) +message("## GEOSX_TPL_DIR = ${GEOSX_TPL_DIR}") +message("## GEOS_TPL_DIR = ${GEOS_TPL_DIR}") +message("## GEOSX_DIR = ${GEOSX_DIR}") + +# set paths to C, C++, and Fortran compilers. Note that while GEOSX does not contain any Fortran code, +# some of the third-party libraries do contain Fortran code. Thus a Fortran compiler must be specified. +## -march=znver3 -mtune=znver3 -mfma -Ofast -ffp-contract=fast -ffast-math -funsafe-math-optimizations -fassociative-math -fstrict-aliasing -ftree-vectorize -funroll-loops -flto +set(CMAKE_C_COMPILER "$ENV{GEOSX_CC}" CACHE PATH "") +set(CMAKE_C_FLAGS_RELEASE " -Wno-error -pthread -O3 -DNDEBUG -march=znver3 -mtune=znver3 -mfma -Ofast -ffp-contract=fast -ffast-math -funsafe-math-optimizations -fassociative-math -fstrict-aliasing -ftree-vectorize -funroll-loops -flto $ENV{GEOS_FLAGS_CLI} " CACHE STRING "") +set(CMAKE_C_FLAGS_RELWITHDEBINFO "-g ${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_C_FLAGS_DEBUG "-O0 -g" CACHE STRING "") + +set(CMAKE_CXX_COMPILER "$ENV{GEOSX_CXX}" CACHE PATH "") +set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-g ${CMAKE_CXX_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g" CACHE STRING "") +set(CMAKE_CXX_STANDARD 17 CACHE STRING "") + +set(CMAKE_Fortran_COMPILER "$ENV{GEOSX_FORT}" CACHE PATH "") +set(CMAKE_Fortran_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(ENABLE_FORTRAN OFF CACHE BOOL "" FORCE) + +# enable MPI and set paths to compilers and executable. +# Note that the MPI compilers are wrappers around standard serial compilers. +# Therefore, the MPI compilers must wrap the appropriate serial compilers specified +# in CMAKE_C_COMPILER, CMAKE_CXX_COMPILER, and CMAKE_Fortran_COMPILER. +set(ENABLE_MPI ON CACHE BOOL "") +set(MPI_C_COMPILER "$ENV{GEOSX_MPICC}" CACHE PATH "") +set(MPI_CXX_COMPILER "$ENV{GEOSX_MPICXX}" CACHE PATH "") +set(MPI_Fortran_COMPILER "$ENV{GEOSX_MPIFORT}" CACHE PATH "") +set(MPIEXEC "$ENV{GEOSX_MPIRUN}" CACHE PATH "") + +# set(ENABLE_WRAP_ALL_TESTS_WITH_MPIEXEC ON CACHE BOOL "") + +# set(ENABLE_MKL ON CACHE BOOL "") +# set(INTEL_ROOT "$ENV{INTEL_DIR}" ) +# set(MKL_ROOT "$ENV{MKLROOT}/mkl" ) +# set(MKL_INCLUDE_DIRS ${MKL_ROOT}/include CACHE STRING "") +# set(MKL_LIBRARIES ${MKL_ROOT}/lib/intel64/libmkl_intel_lp64.so +# ${MKL_ROOT}/lib/intel64/libmkl_gnu_thread.so +# ${MKL_ROOT}/lib/intel64/libmkl_core.so +# ${INTEL_ROOT}/compiler/lib/intel64_lin/libiomp5.so +# CACHE STRING "") + +# MikeT : Check if there is value to enable these +# set(ENABLE_GTEST_DEATH_TESTS ON CACHE BOOL "" FORCE) + +# disable CUDA and OpenMP +set(CUDA_ENABLED OFF CACHE BOOL "" FORCE) +set(ENABLE_OPENMP ON CACHE BOOL "" FORCE) + +set(ENABLE_SPHINX_EXECUTABLE OFF CACHE BOOL "") +set(ENABLE_UNCRUSTIFY ON CACHE BOOL "") +set(ENABLE_DOXYGEN OFF CACHE BOOL "") + +# enable PAMELA and PVTPackage +set(ENABLE_PAMELA OFF CACHE BOOL "" FORCE) +set(ENABLE_PVTPackage ON CACHE BOOL "" FORCE) +set(ENABLE_VALGRIND OFF CACHE BOOL "") +set(ENABLE_CALIPER ON CACHE BOOL "") +set(ENABLE_CALIPER_HYPRE "$ENV{ENABLE_CALIPER_HYPRE}" CACHE BOOL "") + +# Hypre ON +if(NOT DEFINED ENABLE_HYPRE) + set(ENABLE_HYPRE ON CACHE BOOL "" FORCE) + # set(ENABLE_TRILINOS OFF CACHE BOOL "" FORCE) + set(ENABLE_TRILINOS "$ENV{ENABLE_TRILINOS}" CACHE BOOL "" FORCE) +endif() +if(ENABLE_HYPRE) + set(GEOSX_LA_INTERFACE "Hypre" CACHE STRING "" FORCE) +else() + set(ENABLE_HYPRE OFF CACHE BOOL "" FORCE) +endif() + +if( (ENABLE_HYPRE AND ENABLE_TRILINOS) OR (NOT ENABLE_TRILINOS AND NOT ENABLE_HYPRE)) + MESSAGE(SEND_ERROR "Exactly one of ENABLE_HYPRE and ENABLE_TRILINOS must be defined.") + MESSAGE(SEND_ERROR "ENABLE_HYPRE = ${ENABLE_HYPRE}.") + MESSAGE(SEND_ERROR "ENABLE_TRILINOS = ${ENABLE_TRILINOS}.") +endif() + +MESSAGE(STATUS "## GEOSX_LA_INTERFACE = ${GEOSX_LA_INTERFACE}") + +# disable Doxygen +set(ENABLE_DOXYGEN OFF CACHE PATH "") + +# enable tests +set(ENABLE_GTEST_DEATH_TESTS ON CACHE BOOL "" FORCE ) + +# let GEOSX define some third party libraries information for you +message("## tpls.cmake = ${CMAKE_CURRENT_LIST_DIR}/../tpls.cmake") +include(${CMAKE_CURRENT_LIST_DIR}/../tpls.cmake) +message("## CMAKE_CURRENT_LIST_DIR = ${CMAKE_CURRENT_LIST_DIR}") diff --git a/host-configs/CVX/CPU-OPTO3fast-Zen3-Hypre-MPI-OMP.cmake b/host-configs/CVX/CPU-OPTO3fast-Zen3-Hypre-MPI-OMP.cmake new file mode 100644 index 00000000000..d3e37b7e6b3 --- /dev/null +++ b/host-configs/CVX/CPU-OPTO3fast-Zen3-Hypre-MPI-OMP.cmake @@ -0,0 +1,105 @@ +# CVX .cmake for GCC V.R.P V=9, 10, 12, 13 +# +# cmake with most aggresive x86_64 optimizations excluding math +# +# Michael E. Thomadakis michael.thomadakis@chevron.com + +# detect host and name the configuration file +site_name(HOST_NAME) + +message("## CVX cmake with most aggresive Zen3 and x86_64 optimizations excluding math") +message("## CVX CMAKE_CURRENT_LIST_DIR = ${CMAKE_CURRENT_LIST_DIR}") + +# Default is ON +set(ENABLE_WARNINGS_AS_ERRORS OFF CACHE BOOL "") + +set(GEOSX_TPL_DIR "$ENV{GEOSX_TPL_DIR}" CACHE PATH "" FORCE) +set(GEOS_TPL_DIR "$ENV{GEOSX_TPL_DIR}" CACHE PATH "" FORCE) +set(GEOSX_DIR "$ENV{GEOSX_DIR}" CACHE PATH "" FORCE) +message("## GEOSX_TPL_DIR = ${GEOSX_TPL_DIR}") +message("## GEOS_TPL_DIR = ${GEOS_TPL_DIR}") +message("## GEOSX_DIR = ${GEOSX_DIR}") + +# set paths to C, C++, and Fortran compilers. Note that while GEOSX does not contain any Fortran code, +# some of the third-party libraries do contain Fortran code. Thus a Fortran compiler must be specified. +set(CMAKE_C_COMPILER "$ENV{GEOSX_CC}" CACHE PATH "") +set(CMAKE_C_FLAGS_RELEASE " -Wno-error -pthread -O3 -Ofast -DNDEBUG -march=znver3 -mtune=znver3 -mfma -mdaz-ftz -fno-fast-math -fstrict-aliasing -ftree-vectorize -funroll-loops -flto $ENV{GEOS_FLAGS_CLI} " CACHE STRING "") +set(CMAKE_C_FLAGS_RELWITHDEBINFO "-g ${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_C_FLAGS_DEBUG "-O0 -g" CACHE STRING "") + +set(CMAKE_CXX_COMPILER "$ENV{GEOSX_CXX}" CACHE PATH "") +set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-g ${CMAKE_CXX_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g" CACHE STRING "") +set(CMAKE_CXX_STANDARD 17 CACHE STRING "") + +set(CMAKE_Fortran_COMPILER "$ENV{GEOSX_FORT}" CACHE PATH "") +set(CMAKE_Fortran_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(ENABLE_FORTRAN OFF CACHE BOOL "" FORCE) + +# enable MPI and set paths to compilers and executable. +# Note that the MPI compilers are wrappers around standard serial compilers. +# Therefore, the MPI compilers must wrap the appropriate serial compilers specified +# in CMAKE_C_COMPILER, CMAKE_CXX_COMPILER, and CMAKE_Fortran_COMPILER. +set(ENABLE_MPI ON CACHE BOOL "") +set(MPI_C_COMPILER "$ENV{GEOSX_MPICC}" CACHE PATH "") +set(MPI_CXX_COMPILER "$ENV{GEOSX_MPICXX}" CACHE PATH "") +set(MPI_Fortran_COMPILER "$ENV{GEOSX_MPIFORT}" CACHE PATH "") +set(MPIEXEC "$ENV{GEOSX_MPIRUN}" CACHE PATH "") + +# set(ENABLE_MKL ON CACHE BOOL "") +# set(INTEL_ROOT "$ENV{INTEL_DIR}" ) +# set(MKL_ROOT "$ENV{MKLROOT}/mkl" ) +# set(MKL_INCLUDE_DIRS ${MKL_ROOT}/include CACHE STRING "") +# set(MKL_LIBRARIES ${MKL_ROOT}/lib/intel64/libmkl_intel_lp64.so +# ${MKL_ROOT}/lib/intel64/libmkl_gnu_thread.so +# ${MKL_ROOT}/lib/intel64/libmkl_core.so +# ${INTEL_ROOT}/compiler/lib/intel64_lin/libiomp5.so +# CACHE STRING "") + +# MikeT : Check if there is value to enable these +# set(ENABLE_GTEST_DEATH_TESTS ON CACHE BOOL "" FORCE) + +# disable CUDA and OpenMP +set(CUDA_ENABLED OFF CACHE BOOL "" FORCE) +set(ENABLE_OPENMP ON CACHE BOOL "" FORCE) + +set(ENABLE_SPHINX_EXECUTABLE OFF CACHE BOOL "") +set(ENABLE_UNCRUSTIFY ON CACHE BOOL "") +set(ENABLE_DOXYGEN OFF CACHE BOOL "") + +# enable PAMELA and PVTPackage +set(ENABLE_PAMELA OFF CACHE BOOL "" FORCE) +set(ENABLE_PVTPackage ON CACHE BOOL "" FORCE) +set(ENABLE_VALGRIND OFF CACHE BOOL "") +set(ENABLE_CALIPER ON CACHE BOOL "") + +# Hypre ON +if(NOT DEFINED ENABLE_HYPRE) + set(ENABLE_HYPRE ON CACHE BOOL "" FORCE) + # set(ENABLE_TRILINOS "$ENV{ENABLE_TRILINOS}" CACHE BOOL "" FORCE) +endif() +if(ENABLE_HYPRE) + set(GEOSX_LA_INTERFACE "Hypre" CACHE STRING "" FORCE) +else() + set(ENABLE_HYPRE OFF CACHE BOOL "" FORCE) +endif() + +if( (ENABLE_HYPRE AND ENABLE_TRILINOS) OR (NOT ENABLE_TRILINOS AND NOT ENABLE_HYPRE)) + MESSAGE(SEND_ERROR "Exactly one of ENABLE_HYPRE and ENABLE_TRILINOS must be defined.") + MESSAGE(SEND_ERROR "ENABLE_HYPRE = ${ENABLE_HYPRE}.") + MESSAGE(SEND_ERROR "ENABLE_TRILINOS = ${ENABLE_TRILINOS}.") +endif() + +MESSAGE(STATUS "## GEOSX_LA_INTERFACE = ${GEOSX_LA_INTERFACE}") + +# disable Doxygen +set(ENABLE_DOXYGEN OFF CACHE PATH "") + +# enable tests +set(ENABLE_GTEST_DEATH_TESTS ON CACHE BOOL "" FORCE ) + +# let GEOSX define some third party libraries information for you +message("## CMAKE_CURRENT_LIST_DIR = ${CMAKE_CURRENT_LIST_DIR}") +message("## tpls.cmake = ${CMAKE_CURRENT_LIST_DIR}/../tpls.cmake") +include(${CMAKE_CURRENT_LIST_DIR}/../tpls.cmake) diff --git a/host-configs/CVX/CPU-OPTO3fast-Zen4-Hypre-MPI-OMP.cmake b/host-configs/CVX/CPU-OPTO3fast-Zen4-Hypre-MPI-OMP.cmake new file mode 100644 index 00000000000..2f4d5e65809 --- /dev/null +++ b/host-configs/CVX/CPU-OPTO3fast-Zen4-Hypre-MPI-OMP.cmake @@ -0,0 +1,105 @@ +# CVX .cmake for GCC V.R.P V=9, 10, 12, 13 +# +# cmake with most aggresive x86_64 optimizations excluding math +# +# Michael E. Thomadakis michael.thomadakis@chevron.com + +# detect host and name the configuration file +site_name(HOST_NAME) + +message("## CVX cmake with most aggresive Zen3 and x86_64 optimizations excluding math") +message("## CVX CMAKE_CURRENT_LIST_DIR = ${CMAKE_CURRENT_LIST_DIR}") + +# Default is ON +set(ENABLE_WARNINGS_AS_ERRORS OFF CACHE BOOL "") + +set(GEOSX_TPL_DIR "$ENV{GEOSX_TPL_DIR}" CACHE PATH "" FORCE) +set(GEOS_TPL_DIR "$ENV{GEOSX_TPL_DIR}" CACHE PATH "" FORCE) +set(GEOSX_DIR "$ENV{GEOSX_DIR}" CACHE PATH "" FORCE) +message("## GEOSX_TPL_DIR = ${GEOSX_TPL_DIR}") +message("## GEOS_TPL_DIR = ${GEOS_TPL_DIR}") +message("## GEOSX_DIR = ${GEOSX_DIR}") + +# set paths to C, C++, and Fortran compilers. Note that while GEOSX does not contain any Fortran code, +# some of the third-party libraries do contain Fortran code. Thus a Fortran compiler must be specified. +set(CMAKE_C_COMPILER "$ENV{GEOSX_CC}" CACHE PATH "") +set(CMAKE_C_FLAGS_RELEASE " -Wno-error -pthread -O3 -DNDEBUG -mfma -Ofast -mdaz-ftz -fno-fast-math -fstrict-aliasing -ftree-vectorize -funroll-loops -flto $ENV{GEOS_FLAGS_CLI} " CACHE STRING "") +set(CMAKE_C_FLAGS_RELWITHDEBINFO "-g ${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_C_FLAGS_DEBUG "-O0 -g" CACHE STRING "") + +set(CMAKE_CXX_COMPILER "$ENV{GEOSX_CXX}" CACHE PATH "") +set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-g ${CMAKE_CXX_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g" CACHE STRING "") +set(CMAKE_CXX_STANDARD 17 CACHE STRING "") + +set(CMAKE_Fortran_COMPILER "$ENV{GEOSX_FORT}" CACHE PATH "") +set(CMAKE_Fortran_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(ENABLE_FORTRAN OFF CACHE BOOL "" FORCE) + +# enable MPI and set paths to compilers and executable. +# Note that the MPI compilers are wrappers around standard serial compilers. +# Therefore, the MPI compilers must wrap the appropriate serial compilers specified +# in CMAKE_C_COMPILER, CMAKE_CXX_COMPILER, and CMAKE_Fortran_COMPILER. +set(ENABLE_MPI ON CACHE BOOL "") +set(MPI_C_COMPILER "$ENV{GEOSX_MPICC}" CACHE PATH "") +set(MPI_CXX_COMPILER "$ENV{GEOSX_MPICXX}" CACHE PATH "") +set(MPI_Fortran_COMPILER "$ENV{GEOSX_MPIFORT}" CACHE PATH "") +set(MPIEXEC "$ENV{GEOSX_MPIRUN}" CACHE PATH "") + +# set(ENABLE_MKL ON CACHE BOOL "") +# set(INTEL_ROOT "$ENV{INTEL_DIR}" ) +# set(MKL_ROOT "$ENV{MKLROOT}/mkl" ) +# set(MKL_INCLUDE_DIRS ${MKL_ROOT}/include CACHE STRING "") +# set(MKL_LIBRARIES ${MKL_ROOT}/lib/intel64/libmkl_intel_lp64.so +# ${MKL_ROOT}/lib/intel64/libmkl_gnu_thread.so +# ${MKL_ROOT}/lib/intel64/libmkl_core.so +# ${INTEL_ROOT}/compiler/lib/intel64_lin/libiomp5.so +# CACHE STRING "") + +# MikeT : Check if there is value to enable these +# set(ENABLE_GTEST_DEATH_TESTS ON CACHE BOOL "" FORCE) + +# disable CUDA and OpenMP +set(CUDA_ENABLED OFF CACHE BOOL "" FORCE) +set(ENABLE_OPENMP ON CACHE BOOL "" FORCE) + +set(ENABLE_SPHINX_EXECUTABLE OFF CACHE BOOL "") +set(ENABLE_UNCRUSTIFY ON CACHE BOOL "") +set(ENABLE_DOXYGEN OFF CACHE BOOL "") + +# enable PAMELA and PVTPackage +set(ENABLE_PAMELA OFF CACHE BOOL "" FORCE) +set(ENABLE_PVTPackage ON CACHE BOOL "" FORCE) +set(ENABLE_VALGRIND OFF CACHE BOOL "") +set(ENABLE_CALIPER ON CACHE BOOL "") + +# Hypre ON +if(NOT DEFINED ENABLE_HYPRE) + set(ENABLE_HYPRE ON CACHE BOOL "" FORCE) + # set(ENABLE_TRILINOS "$ENV{ENABLE_TRILINOS}" CACHE BOOL "" FORCE) +endif() +if(ENABLE_HYPRE) + set(GEOSX_LA_INTERFACE "Hypre" CACHE STRING "" FORCE) +else() + set(ENABLE_HYPRE OFF CACHE BOOL "" FORCE) +endif() + +if( (ENABLE_HYPRE AND ENABLE_TRILINOS) OR (NOT ENABLE_TRILINOS AND NOT ENABLE_HYPRE)) + MESSAGE(SEND_ERROR "Exactly one of ENABLE_HYPRE and ENABLE_TRILINOS must be defined.") + MESSAGE(SEND_ERROR "ENABLE_HYPRE = ${ENABLE_HYPRE}.") + MESSAGE(SEND_ERROR "ENABLE_TRILINOS = ${ENABLE_TRILINOS}.") +endif() + +MESSAGE(STATUS "## GEOSX_LA_INTERFACE = ${GEOSX_LA_INTERFACE}") + +# disable Doxygen +set(ENABLE_DOXYGEN OFF CACHE PATH "") + +# enable tests +set(ENABLE_GTEST_DEATH_TESTS ON CACHE BOOL "" FORCE ) + +# let GEOSX define some third party libraries information for you +message("## CMAKE_CURRENT_LIST_DIR = ${CMAKE_CURRENT_LIST_DIR}") +message("## tpls.cmake = ${CMAKE_CURRENT_LIST_DIR}/../tpls.cmake") +include(${CMAKE_CURRENT_LIST_DIR}/../tpls.cmake) diff --git a/host-configs/CVX/CPU-OPTO3fast-Zen5-Hypre-MPI-OMP.cmake b/host-configs/CVX/CPU-OPTO3fast-Zen5-Hypre-MPI-OMP.cmake new file mode 100644 index 00000000000..2f4d5e65809 --- /dev/null +++ b/host-configs/CVX/CPU-OPTO3fast-Zen5-Hypre-MPI-OMP.cmake @@ -0,0 +1,105 @@ +# CVX .cmake for GCC V.R.P V=9, 10, 12, 13 +# +# cmake with most aggresive x86_64 optimizations excluding math +# +# Michael E. Thomadakis michael.thomadakis@chevron.com + +# detect host and name the configuration file +site_name(HOST_NAME) + +message("## CVX cmake with most aggresive Zen3 and x86_64 optimizations excluding math") +message("## CVX CMAKE_CURRENT_LIST_DIR = ${CMAKE_CURRENT_LIST_DIR}") + +# Default is ON +set(ENABLE_WARNINGS_AS_ERRORS OFF CACHE BOOL "") + +set(GEOSX_TPL_DIR "$ENV{GEOSX_TPL_DIR}" CACHE PATH "" FORCE) +set(GEOS_TPL_DIR "$ENV{GEOSX_TPL_DIR}" CACHE PATH "" FORCE) +set(GEOSX_DIR "$ENV{GEOSX_DIR}" CACHE PATH "" FORCE) +message("## GEOSX_TPL_DIR = ${GEOSX_TPL_DIR}") +message("## GEOS_TPL_DIR = ${GEOS_TPL_DIR}") +message("## GEOSX_DIR = ${GEOSX_DIR}") + +# set paths to C, C++, and Fortran compilers. Note that while GEOSX does not contain any Fortran code, +# some of the third-party libraries do contain Fortran code. Thus a Fortran compiler must be specified. +set(CMAKE_C_COMPILER "$ENV{GEOSX_CC}" CACHE PATH "") +set(CMAKE_C_FLAGS_RELEASE " -Wno-error -pthread -O3 -DNDEBUG -mfma -Ofast -mdaz-ftz -fno-fast-math -fstrict-aliasing -ftree-vectorize -funroll-loops -flto $ENV{GEOS_FLAGS_CLI} " CACHE STRING "") +set(CMAKE_C_FLAGS_RELWITHDEBINFO "-g ${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_C_FLAGS_DEBUG "-O0 -g" CACHE STRING "") + +set(CMAKE_CXX_COMPILER "$ENV{GEOSX_CXX}" CACHE PATH "") +set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-g ${CMAKE_CXX_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g" CACHE STRING "") +set(CMAKE_CXX_STANDARD 17 CACHE STRING "") + +set(CMAKE_Fortran_COMPILER "$ENV{GEOSX_FORT}" CACHE PATH "") +set(CMAKE_Fortran_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(ENABLE_FORTRAN OFF CACHE BOOL "" FORCE) + +# enable MPI and set paths to compilers and executable. +# Note that the MPI compilers are wrappers around standard serial compilers. +# Therefore, the MPI compilers must wrap the appropriate serial compilers specified +# in CMAKE_C_COMPILER, CMAKE_CXX_COMPILER, and CMAKE_Fortran_COMPILER. +set(ENABLE_MPI ON CACHE BOOL "") +set(MPI_C_COMPILER "$ENV{GEOSX_MPICC}" CACHE PATH "") +set(MPI_CXX_COMPILER "$ENV{GEOSX_MPICXX}" CACHE PATH "") +set(MPI_Fortran_COMPILER "$ENV{GEOSX_MPIFORT}" CACHE PATH "") +set(MPIEXEC "$ENV{GEOSX_MPIRUN}" CACHE PATH "") + +# set(ENABLE_MKL ON CACHE BOOL "") +# set(INTEL_ROOT "$ENV{INTEL_DIR}" ) +# set(MKL_ROOT "$ENV{MKLROOT}/mkl" ) +# set(MKL_INCLUDE_DIRS ${MKL_ROOT}/include CACHE STRING "") +# set(MKL_LIBRARIES ${MKL_ROOT}/lib/intel64/libmkl_intel_lp64.so +# ${MKL_ROOT}/lib/intel64/libmkl_gnu_thread.so +# ${MKL_ROOT}/lib/intel64/libmkl_core.so +# ${INTEL_ROOT}/compiler/lib/intel64_lin/libiomp5.so +# CACHE STRING "") + +# MikeT : Check if there is value to enable these +# set(ENABLE_GTEST_DEATH_TESTS ON CACHE BOOL "" FORCE) + +# disable CUDA and OpenMP +set(CUDA_ENABLED OFF CACHE BOOL "" FORCE) +set(ENABLE_OPENMP ON CACHE BOOL "" FORCE) + +set(ENABLE_SPHINX_EXECUTABLE OFF CACHE BOOL "") +set(ENABLE_UNCRUSTIFY ON CACHE BOOL "") +set(ENABLE_DOXYGEN OFF CACHE BOOL "") + +# enable PAMELA and PVTPackage +set(ENABLE_PAMELA OFF CACHE BOOL "" FORCE) +set(ENABLE_PVTPackage ON CACHE BOOL "" FORCE) +set(ENABLE_VALGRIND OFF CACHE BOOL "") +set(ENABLE_CALIPER ON CACHE BOOL "") + +# Hypre ON +if(NOT DEFINED ENABLE_HYPRE) + set(ENABLE_HYPRE ON CACHE BOOL "" FORCE) + # set(ENABLE_TRILINOS "$ENV{ENABLE_TRILINOS}" CACHE BOOL "" FORCE) +endif() +if(ENABLE_HYPRE) + set(GEOSX_LA_INTERFACE "Hypre" CACHE STRING "" FORCE) +else() + set(ENABLE_HYPRE OFF CACHE BOOL "" FORCE) +endif() + +if( (ENABLE_HYPRE AND ENABLE_TRILINOS) OR (NOT ENABLE_TRILINOS AND NOT ENABLE_HYPRE)) + MESSAGE(SEND_ERROR "Exactly one of ENABLE_HYPRE and ENABLE_TRILINOS must be defined.") + MESSAGE(SEND_ERROR "ENABLE_HYPRE = ${ENABLE_HYPRE}.") + MESSAGE(SEND_ERROR "ENABLE_TRILINOS = ${ENABLE_TRILINOS}.") +endif() + +MESSAGE(STATUS "## GEOSX_LA_INTERFACE = ${GEOSX_LA_INTERFACE}") + +# disable Doxygen +set(ENABLE_DOXYGEN OFF CACHE PATH "") + +# enable tests +set(ENABLE_GTEST_DEATH_TESTS ON CACHE BOOL "" FORCE ) + +# let GEOSX define some third party libraries information for you +message("## CMAKE_CURRENT_LIST_DIR = ${CMAKE_CURRENT_LIST_DIR}") +message("## tpls.cmake = ${CMAKE_CURRENT_LIST_DIR}/../tpls.cmake") +include(${CMAKE_CURRENT_LIST_DIR}/../tpls.cmake) diff --git a/host-configs/CVX/CPU-OPTO3fastmath-GCC-MPI-OMP.cmake b/host-configs/CVX/CPU-OPTO3fastmath-GCC-MPI-OMP.cmake new file mode 100644 index 00000000000..e81ec6872d3 --- /dev/null +++ b/host-configs/CVX/CPU-OPTO3fastmath-GCC-MPI-OMP.cmake @@ -0,0 +1,111 @@ +# CVX .cmake for GCC V.R.P V=9, 10, 12, 13 +# +# cmake with most aggresive x86_64 optimizations including math +# +# Michael E. Thomadakis michael.thomadakis@chevron.com + +# detect host and name the configuration file +site_name(HOST_NAME) + +message("## CVX cmake with most aggresive x86_64 optimizations but conservative math") +message("## CVX CMAKE_CURRENT_LIST_DIR = ${CMAKE_CURRENT_LIST_DIR}") + +# Default is ON +set(ENABLE_WARNINGS_AS_ERRORS OFF CACHE BOOL "") + +# # Local mtml settings +set(GEOSX_TPL_DIR "$ENV{GEOSX_TPL_DIR}" CACHE PATH "" FORCE) +set(GEOS_TPL_DIR "$ENV{GEOSX_TPL_DIR}" CACHE PATH "" FORCE) +set(GEOSX_DIR "$ENV{GEOSX_DIR}" CACHE PATH "" FORCE) +message("## GEOSX_TPL_DIR = ${GEOSX_TPL_DIR}") +message("## GEOS_TPL_DIR = ${GEOS_TPL_DIR}") +message("## GEOSX_DIR = ${GEOSX_DIR}") + +# set paths to C, C++, and Fortran compilers. Note that while GEOSX does not contain any Fortran code, +# some of the third-party libraries do contain Fortran code. Thus a Fortran compiler must be specified. +# " -Wno-error -pthread -O3 -DNDEBUG -mfma -Ofast -fno-fast-math -fstrict-aliasing -ftree-vectorize -funroll-loops -flto $ENV{GEOS_FLAGS_CLI} " +set(CMAKE_C_COMPILER "$ENV{GEOSX_CC}" CACHE PATH "") +set(CMAKE_C_FLAGS_RELEASE " -Wno-error -pthread -O3 -DNDEBUG -Ofast -mfma -ffast-math -mdaz-ftz -funsafe-math-optimizations -fassociative-math -fstrict-aliasing -ftree-vectorize -funroll-loops $ENV{GEOS_FLAGS_CLI} " CACHE STRING "") +set(CMAKE_C_FLAGS_RELWITHDEBINFO "-g ${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_C_FLAGS_DEBUG "-O0 -g" CACHE STRING "") + +set(CMAKE_CXX_COMPILER "$ENV{GEOSX_CXX}" CACHE PATH "") +set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-g ${CMAKE_CXX_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g" CACHE STRING "") +set(CMAKE_CXX_STANDARD 17 CACHE STRING "") + +set(CMAKE_Fortran_COMPILER "$ENV{GEOSX_FORT}" CACHE PATH "") +set(CMAKE_Fortran_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(ENABLE_FORTRAN OFF CACHE BOOL "" FORCE) + +# enable MPI and set paths to compilers and executable. +# Note that the MPI compilers are wrappers around standard serial compilers. +# Therefore, the MPI compilers must wrap the appropriate serial compilers specified +# in CMAKE_C_COMPILER, CMAKE_CXX_COMPILER, and CMAKE_Fortran_COMPILER. +set(ENABLE_MPI ON CACHE BOOL "") +set(MPI_C_COMPILER "$ENV{GEOSX_MPICC}" CACHE PATH "") +set(MPI_CXX_COMPILER "$ENV{GEOSX_MPICXX}" CACHE PATH "") +set(MPI_Fortran_COMPILER "$ENV{GEOSX_MPIFORT}" CACHE PATH "") +set(MPIEXEC "$ENV{GEOSX_MPIRUN}" CACHE PATH "") + +# set(ENABLE_WRAP_ALL_TESTS_WITH_MPIEXEC ON CACHE BOOL "") + +# set(ENABLE_MKL ON CACHE BOOL "") +# set(INTEL_ROOT "$ENV{INTEL_DIR}" ) +# set(MKL_ROOT "$ENV{MKLROOT}/mkl" ) +# set(MKL_INCLUDE_DIRS ${MKL_ROOT}/include CACHE STRING "") +# set(MKL_LIBRARIES ${MKL_ROOT}/lib/intel64/libmkl_intel_lp64.so +# ${MKL_ROOT}/lib/intel64/libmkl_gnu_thread.so +# ${MKL_ROOT}/lib/intel64/libmkl_core.so +# ${INTEL_ROOT}/compiler/lib/intel64_lin/libiomp5.so +# CACHE STRING "") + +# MikeT : Check if there is value to enable these +# set(ENABLE_GTEST_DEATH_TESTS ON CACHE BOOL "" FORCE) + +# disable CUDA and OpenMP +set(CUDA_ENABLED OFF CACHE BOOL "" FORCE) +set(ENABLE_OPENMP ON CACHE BOOL "" FORCE) + +set(ENABLE_SPHINX_EXECUTABLE OFF CACHE BOOL "") +set(ENABLE_UNCRUSTIFY ON CACHE BOOL "") +set(ENABLE_DOXYGEN OFF CACHE BOOL "") + +# enable PAMELA and PVTPackage +set(ENABLE_PAMELA OFF CACHE BOOL "" FORCE) +set(ENABLE_PVTPackage ON CACHE BOOL "" FORCE) +set(ENABLE_VALGRIND OFF CACHE BOOL "") +set(ENABLE_CALIPER ON CACHE BOOL "") +set(ENABLE_CALIPER_HYPRE "$ENV{ENABLE_CALIPER_HYPRE}" CACHE BOOL "") + +# Hypre ON +if(NOT DEFINED ENABLE_HYPRE) + set(ENABLE_HYPRE ON CACHE BOOL "" FORCE) + # set(ENABLE_TRILINOS OFF CACHE BOOL "" FORCE) + set(ENABLE_TRILINOS "$ENV{ENABLE_TRILINOS}" CACHE BOOL "" FORCE) +endif() +if(ENABLE_HYPRE) + set(GEOSX_LA_INTERFACE "Hypre" CACHE STRING "" FORCE) +else() + set(ENABLE_HYPRE OFF CACHE BOOL "" FORCE) +endif() + +if( (ENABLE_HYPRE AND ENABLE_TRILINOS) OR (NOT ENABLE_TRILINOS AND NOT ENABLE_HYPRE)) + MESSAGE(SEND_ERROR "Exactly one of ENABLE_HYPRE and ENABLE_TRILINOS must be defined.") + MESSAGE(SEND_ERROR "ENABLE_HYPRE = ${ENABLE_HYPRE}.") + MESSAGE(SEND_ERROR "ENABLE_TRILINOS = ${ENABLE_TRILINOS}.") +endif() + +MESSAGE(STATUS "## GEOSX_LA_INTERFACE = ${GEOSX_LA_INTERFACE}") + +# disable Doxygen +set(ENABLE_DOXYGEN OFF CACHE PATH "") + +# enable tests +set(ENABLE_GTEST_DEATH_TESTS ON CACHE BOOL "" FORCE ) + +# let GEOSX define some third party libraries information for you +message("## tpls.cmake = ${CMAKE_CURRENT_LIST_DIR}/../tpls.cmake") +include(${CMAKE_CURRENT_LIST_DIR}/../tpls.cmake) +message("## CMAKE_CURRENT_LIST_DIR = ${CMAKE_CURRENT_LIST_DIR}") diff --git a/host-configs/CVX/CPU-OPTO3fastmath-Hypre-GCC-ompi_hpcx-OMP.cmake b/host-configs/CVX/CPU-OPTO3fastmath-Hypre-GCC-ompi_hpcx-OMP.cmake new file mode 100644 index 00000000000..856700675bf --- /dev/null +++ b/host-configs/CVX/CPU-OPTO3fastmath-Hypre-GCC-ompi_hpcx-OMP.cmake @@ -0,0 +1,111 @@ +# CVX .cmake for GCC V.R.P V=9, 10, 12, 13 +# +# cmake with most aggresive x86_64 optimizations but conservative math +# +# Michael E. Thomadakis michael.thomadakis@chevron.com + +# detect host and name the configuration file +site_name(HOST_NAME) + +message("## CVX cmake with most aggresive x86_64 optimizations but conservative math") +message("## CVX CMAKE_CURRENT_LIST_DIR = ${CMAKE_CURRENT_LIST_DIR}") + +# Default is ON +set(ENABLE_WARNINGS_AS_ERRORS OFF CACHE BOOL "") + +# # Local mtml settings +set(GEOSX_TPL_DIR "$ENV{GEOSX_TPL_DIR}" CACHE PATH "" FORCE) +set(GEOS_TPL_DIR "$ENV{GEOSX_TPL_DIR}" CACHE PATH "" FORCE) +set(GEOSX_DIR "$ENV{GEOSX_DIR}" CACHE PATH "" FORCE) +message("## GEOSX_TPL_DIR = ${GEOSX_TPL_DIR}") +message("## GEOS_TPL_DIR = ${GEOS_TPL_DIR}") +message("## GEOSX_DIR = ${GEOSX_DIR}") + +# set paths to C, C++, and Fortran compilers. Note that while GEOSX does not contain any Fortran code, +# some of the third-party libraries do contain Fortran code. Thus a Fortran compiler must be specified. +# " -Wno-error -pthread -O3 -DNDEBUG -mfma -Ofast -fno-fast-math -fstrict-aliasing -ftree-vectorize -funroll-loops -flto $ENV{GEOS_FLAGS_CLI} " +set(CMAKE_C_COMPILER "$ENV{GEOSX_CC}" CACHE PATH "") +set(CMAKE_C_FLAGS_RELEASE " -Wno-error -pthread -O3 -DNDEBUG -mfma -Ofast -fno-fast-math -fstrict-aliasing -ftree-vectorize -funroll-loops $ENV{GEOS_FLAGS_CLI} " CACHE STRING "") +set(CMAKE_C_FLAGS_RELWITHDEBINFO "-g ${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_C_FLAGS_DEBUG "-O0 -g" CACHE STRING "") + +set(CMAKE_CXX_COMPILER "$ENV{GEOSX_CXX}" CACHE PATH "") +set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-g ${CMAKE_CXX_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g" CACHE STRING "") +set(CMAKE_CXX_STANDARD 17 CACHE STRING "") + +set(CMAKE_Fortran_COMPILER "$ENV{GEOSX_FORT}" CACHE PATH "") +set(CMAKE_Fortran_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(ENABLE_FORTRAN OFF CACHE BOOL "" FORCE) + +# enable MPI and set paths to compilers and executable. +# Note that the MPI compilers are wrappers around standard serial compilers. +# Therefore, the MPI compilers must wrap the appropriate serial compilers specified +# in CMAKE_C_COMPILER, CMAKE_CXX_COMPILER, and CMAKE_Fortran_COMPILER. +set(ENABLE_MPI ON CACHE BOOL "") +set(MPI_C_COMPILER "$ENV{GEOSX_MPICC}" CACHE PATH "") +set(MPI_CXX_COMPILER "$ENV{GEOSX_MPICXX}" CACHE PATH "") +set(MPI_Fortran_COMPILER "$ENV{GEOSX_MPIFORT}" CACHE PATH "") +set(MPIEXEC "$ENV{GEOSX_MPIRUN}" CACHE PATH "") + +# set(ENABLE_WRAP_ALL_TESTS_WITH_MPIEXEC ON CACHE BOOL "") + +# set(ENABLE_MKL ON CACHE BOOL "") +# set(INTEL_ROOT "$ENV{INTEL_DIR}" ) +# set(MKL_ROOT "$ENV{MKLROOT}/mkl" ) +# set(MKL_INCLUDE_DIRS ${MKL_ROOT}/include CACHE STRING "") +# set(MKL_LIBRARIES ${MKL_ROOT}/lib/intel64/libmkl_intel_lp64.so +# ${MKL_ROOT}/lib/intel64/libmkl_gnu_thread.so +# ${MKL_ROOT}/lib/intel64/libmkl_core.so +# ${INTEL_ROOT}/compiler/lib/intel64_lin/libiomp5.so +# CACHE STRING "") + +# MikeT : Check if there is value to enable these +# set(ENABLE_GTEST_DEATH_TESTS ON CACHE BOOL "" FORCE) + +# disable CUDA and OpenMP +set(CUDA_ENABLED OFF CACHE BOOL "" FORCE) +set(ENABLE_OPENMP ON CACHE BOOL "" FORCE) + +set(ENABLE_SPHINX_EXECUTABLE OFF CACHE BOOL "") +set(ENABLE_UNCRUSTIFY ON CACHE BOOL "") +set(ENABLE_DOXYGEN OFF CACHE BOOL "") + +# enable PAMELA and PVTPackage +set(ENABLE_PAMELA OFF CACHE BOOL "" FORCE) +set(ENABLE_PVTPackage ON CACHE BOOL "" FORCE) +set(ENABLE_VALGRIND OFF CACHE BOOL "") +set(ENABLE_CALIPER ON CACHE BOOL "") +set(ENABLE_CALIPER_HYPRE "$ENV{ENABLE_CALIPER_HYPRE}" CACHE BOOL "") + +# Hypre ON +if(NOT DEFINED ENABLE_HYPRE) + set(ENABLE_HYPRE ON CACHE BOOL "" FORCE) + # set(ENABLE_TRILINOS OFF CACHE BOOL "" FORCE) + set(ENABLE_TRILINOS "$ENV{ENABLE_TRILINOS}" CACHE BOOL "" FORCE) +endif() +if(ENABLE_HYPRE) + set(GEOSX_LA_INTERFACE "Hypre" CACHE STRING "" FORCE) +else() + set(ENABLE_HYPRE OFF CACHE BOOL "" FORCE) +endif() + +if( (ENABLE_HYPRE AND ENABLE_TRILINOS) OR (NOT ENABLE_TRILINOS AND NOT ENABLE_HYPRE)) + MESSAGE(SEND_ERROR "Exactly one of ENABLE_HYPRE and ENABLE_TRILINOS must be defined.") + MESSAGE(SEND_ERROR "ENABLE_HYPRE = ${ENABLE_HYPRE}.") + MESSAGE(SEND_ERROR "ENABLE_TRILINOS = ${ENABLE_TRILINOS}.") +endif() + +MESSAGE(STATUS "## GEOSX_LA_INTERFACE = ${GEOSX_LA_INTERFACE}") + +# disable Doxygen +set(ENABLE_DOXYGEN OFF CACHE PATH "") + +# enable tests +set(ENABLE_GTEST_DEATH_TESTS ON CACHE BOOL "" FORCE ) + +# let GEOSX define some third party libraries information for you +message("## tpls.cmake = ${CMAKE_CURRENT_LIST_DIR}/../tpls.cmake") +include(${CMAKE_CURRENT_LIST_DIR}/../tpls.cmake) +message("## CMAKE_CURRENT_LIST_DIR = ${CMAKE_CURRENT_LIST_DIR}") diff --git a/host-configs/CVX/CPU-OPTO3fastmath-Hypre-GCC_10.2.0-ompi_hpcx-OMP.cmake b/host-configs/CVX/CPU-OPTO3fastmath-Hypre-GCC_10.2.0-ompi_hpcx-OMP.cmake new file mode 120000 index 00000000000..6c8fde0c4fe --- /dev/null +++ b/host-configs/CVX/CPU-OPTO3fastmath-Hypre-GCC_10.2.0-ompi_hpcx-OMP.cmake @@ -0,0 +1 @@ +CPU-OPTO3fastmath-Hypre-GCC-ompi_hpcx-OMP.cmake \ No newline at end of file diff --git a/host-configs/CVX/CPU-OPTO3fastmath-Hypre-GCC_10.4.0-ompi_hpcx-OMP.cmake b/host-configs/CVX/CPU-OPTO3fastmath-Hypre-GCC_10.4.0-ompi_hpcx-OMP.cmake new file mode 120000 index 00000000000..6c8fde0c4fe --- /dev/null +++ b/host-configs/CVX/CPU-OPTO3fastmath-Hypre-GCC_10.4.0-ompi_hpcx-OMP.cmake @@ -0,0 +1 @@ +CPU-OPTO3fastmath-Hypre-GCC-ompi_hpcx-OMP.cmake \ No newline at end of file diff --git a/host-configs/CVX/CPU-OPTO3fastmath-Hypre-GCC_13.2.0-ompi_hpcx-OMP.cmake b/host-configs/CVX/CPU-OPTO3fastmath-Hypre-GCC_13.2.0-ompi_hpcx-OMP.cmake new file mode 120000 index 00000000000..6c8fde0c4fe --- /dev/null +++ b/host-configs/CVX/CPU-OPTO3fastmath-Hypre-GCC_13.2.0-ompi_hpcx-OMP.cmake @@ -0,0 +1 @@ +CPU-OPTO3fastmath-Hypre-GCC-ompi_hpcx-OMP.cmake \ No newline at end of file diff --git a/host-configs/CVX/CPU-OPTO3fastmath-Zen3-GCC-MPI-OMP.cmake b/host-configs/CVX/CPU-OPTO3fastmath-Zen3-GCC-MPI-OMP.cmake new file mode 100644 index 00000000000..cc70715fc6b --- /dev/null +++ b/host-configs/CVX/CPU-OPTO3fastmath-Zen3-GCC-MPI-OMP.cmake @@ -0,0 +1,107 @@ +# CVX .cmake for GCC V.R.P V=9, 10, 12, 13 +# +# cmake with most aggresive Zen5 optimizations including IEEE math +# +# Michael E. Thomadakis michael.thomadakis@chevron.com + +# detect host and name the configuration file +site_name(HOST_NAME) + +message("## CVX cmake with most aggresive Zen5 optimizations including IEEE math") +message("## CVX CMAKE_CURRENT_LIST_DIR = ${CMAKE_CURRENT_LIST_DIR}") + +# Default is ON +set(ENABLE_WARNINGS_AS_ERRORS OFF CACHE BOOL "") + +# # Local mtml settings +set(GEOSX_TPL_DIR "$ENV{GEOSX_TPL_DIR}" CACHE PATH "" FORCE) +set(GEOS_TPL_DIR "$ENV{GEOSX_TPL_DIR}" CACHE PATH "" FORCE) +set(GEOSX_DIR "$ENV{GEOSX_DIR}" CACHE PATH "" FORCE) +message("## GEOSX_TPL_DIR = ${GEOSX_TPL_DIR}") +message("## GEOS_TPL_DIR = ${GEOS_TPL_DIR}") +message("## GEOSX_DIR = ${GEOSX_DIR}") + +# set paths to C, C++, and Fortran compilers. Note that while GEOSX does not contain any Fortran code, +# some of the third-party libraries do contain Fortran code. Thus a Fortran compiler must be specified. +##" -Wno-error -pthread -O3 -DNDEBUG -march=znver4 -mtune=znver4 -Ofast -mfma -fno-fast-math -fstrict-aliasing -ftree-vectorize -funroll-loops -flto $ENV{GEOS_FLAGS_CLI} " +set(CMAKE_C_COMPILER "$ENV{GEOSX_CC}" CACHE PATH "") +set(CMAKE_C_FLAGS_RELEASE " -DNDEBUG -Wno-error -pthread -O3 -mdaz-ftz -Ofast -mfma -march=znver3 -mtune=znver3 -ffast-math -funsafe-math-optimizations -fassociative-math -fstrict-aliasing -ftree-vectorize -funroll-loops $ENV{GEOS_FLAGS_CLI} " CACHE STRING "") +set(CMAKE_C_FLAGS_RELWITHDEBINFO "-g ${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_C_FLAGS_DEBUG "-O0 -g" CACHE STRING "") + +set(CMAKE_CXX_COMPILER "$ENV{GEOSX_CXX}" CACHE PATH "") +set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-g ${CMAKE_CXX_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g" CACHE STRING "") +set(CMAKE_CXX_STANDARD 17 CACHE STRING "") + +set(CMAKE_Fortran_COMPILER "$ENV{GEOSX_FORT}" CACHE PATH "") +set(CMAKE_Fortran_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(ENABLE_FORTRAN OFF CACHE BOOL "" FORCE) + +set(ENABLE_MPI ON CACHE BOOL "") +set(MPI_C_COMPILER "$ENV{GEOSX_MPICC}" CACHE PATH "") +set(MPI_CXX_COMPILER "$ENV{GEOSX_MPICXX}" CACHE PATH "") +set(MPI_Fortran_COMPILER "$ENV{GEOSX_MPIFORT}" CACHE PATH "") +set(MPIEXEC "$ENV{GEOSX_MPIRUN}" CACHE PATH "") + +# disable CUDA and enable OpenMP +set(CUDA_ENABLED OFF CACHE BOOL "" FORCE) +set(ENABLE_OPENMP ON CACHE BOOL "" FORCE) + +set(ENABLE_SPHINX_EXECUTABLE ON CACHE BOOL "") +set(ENABLE_UNCRUSTIFY ON CACHE BOOL "") +set(ENABLE_DOXYGEN OFF CACHE BOOL "") + +# enable PAMELA and PVTPackage +set(ENABLE_PAMELA OFF CACHE BOOL "" FORCE) +set(ENABLE_PVTPackage ON CACHE BOOL "" FORCE) +set(ENABLE_VALGRIND OFF CACHE BOOL "") +set(ENABLE_CALIPER ON CACHE BOOL "") +set(ENABLE_CALIPER_HYPRE "$ENV{ENABLE_CALIPER_HYPRE}" CACHE BOOL "") + +# Hypre ON +if(NOT DEFINED ENABLE_HYPRE) + set(ENABLE_HYPRE ON CACHE BOOL "" FORCE) + # set(ENABLE_TRILINOS OFF CACHE BOOL "" FORCE) + set(ENABLE_TRILINOS "$ENV{ENABLE_TRILINOS}" CACHE BOOL "" FORCE) +endif() +if(ENABLE_HYPRE) + set(GEOSX_LA_INTERFACE "Hypre" CACHE STRING "" FORCE) +else() + set(ENABLE_HYPRE OFF CACHE BOOL "" FORCE) +endif() + +if( (ENABLE_HYPRE AND ENABLE_TRILINOS) OR (NOT ENABLE_TRILINOS AND NOT ENABLE_HYPRE)) + MESSAGE(SEND_ERROR "Exactly one of ENABLE_HYPRE and ENABLE_TRILINOS must be defined.") + MESSAGE(SEND_ERROR "ENABLE_HYPRE = ${ENABLE_HYPRE}.") + MESSAGE(SEND_ERROR "ENABLE_TRILINOS = ${ENABLE_TRILINOS}.") +endif() + +MESSAGE(STATUS "## GEOSX_LA_INTERFACE = ${GEOSX_LA_INTERFACE}") + +# disable Doxygen +set(ENABLE_DOXYGEN OFF CACHE PATH "") + +# enable tests +set(ENABLE_GTEST_DEATH_TESTS ON CACHE BOOL "" FORCE ) + +# let GEOSX define some third party libraries information for you +message("## tpls.cmake = ${CMAKE_CURRENT_LIST_DIR}/../tpls.cmake") +include(${CMAKE_CURRENT_LIST_DIR}/../tpls.cmake) +message("## CMAKE_CURRENT_LIST_DIR = ${CMAKE_CURRENT_LIST_DIR}") + +# set(ENABLE_WRAP_ALL_TESTS_WITH_MPIEXEC ON CACHE BOOL "") + +# set(ENABLE_MKL ON CACHE BOOL "") +# set(INTEL_ROOT "$ENV{INTEL_DIR}" ) +# set(MKL_ROOT "$ENV{MKLROOT}/mkl" ) +# set(MKL_INCLUDE_DIRS ${MKL_ROOT}/include CACHE STRING "") +# set(MKL_LIBRARIES ${MKL_ROOT}/lib/intel64/libmkl_intel_lp64.so +# ${MKL_ROOT}/lib/intel64/libmkl_gnu_thread.so +# ${MKL_ROOT}/lib/intel64/libmkl_core.so +# ${INTEL_ROOT}/compiler/lib/intel64_lin/libiomp5.so +# CACHE STRING "") + +# MikeT : Check if there is value to enable these +# set(ENABLE_GTEST_DEATH_TESTS ON CACHE BOOL "" FORCE) diff --git a/host-configs/CVX/CPU-OPTO3fastmath-Zen3-Hypre-GCC-ompi_hpcx-OMP.cmake b/host-configs/CVX/CPU-OPTO3fastmath-Zen3-Hypre-GCC-ompi_hpcx-OMP.cmake new file mode 100644 index 00000000000..3f133813bcf --- /dev/null +++ b/host-configs/CVX/CPU-OPTO3fastmath-Zen3-Hypre-GCC-ompi_hpcx-OMP.cmake @@ -0,0 +1,111 @@ +# CVX .cmake for GCC V.R.P V=9, 10, 12, 13 +# +# cmake with most aggresive Zen3 optimizations but conservative math +# +# Michael E. Thomadakis michael.thomadakis@chevron.com + +# detect host and name the configuration file +site_name(HOST_NAME) + +message("## CVX cmake with most aggresive Zen3 optimizations but conservative math") +message("## CVX CMAKE_CURRENT_LIST_DIR = ${CMAKE_CURRENT_LIST_DIR}") + +# Default is ON +set(ENABLE_WARNINGS_AS_ERRORS OFF CACHE BOOL "") + +# # Local mtml settings +set(GEOSX_TPL_DIR "$ENV{GEOSX_TPL_DIR}" CACHE PATH "" FORCE) +set(GEOS_TPL_DIR "$ENV{GEOSX_TPL_DIR}" CACHE PATH "" FORCE) +set(GEOSX_DIR "$ENV{GEOSX_DIR}" CACHE PATH "" FORCE) +message("## GEOSX_TPL_DIR = ${GEOSX_TPL_DIR}") +message("## GEOS_TPL_DIR = ${GEOS_TPL_DIR}") +message("## GEOSX_DIR = ${GEOSX_DIR}") + +# set paths to C, C++, and Fortran compilers. Note that while GEOSX does not contain any Fortran code, +# some of the third-party libraries do contain Fortran code. Thus a Fortran compiler must be specified. +## " -Wno-error -pthread -O3 -DNDEBUG -march=znver3 -mtune=znver3 -mfma -Ofast -fno-fast-math -fstrict-aliasing -ftree-vectorize -funroll-loops -flto $ENV{GEOS_FLAGS_CLI} " +set(CMAKE_C_COMPILER "$ENV{GEOSX_CC}" CACHE PATH "") +set(CMAKE_C_FLAGS_RELEASE " -Wno-error -pthread -O3 -DNDEBUG -march=znver3 -mtune=znver3 -mfma -Ofast -fno-fast-math -fstrict-aliasing -ftree-vectorize -funroll-loops $ENV{GEOS_FLAGS_CLI} " CACHE STRING "") +set(CMAKE_C_FLAGS_RELWITHDEBINFO "-g ${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_C_FLAGS_DEBUG "-O0 -g" CACHE STRING "") + +set(CMAKE_CXX_COMPILER "$ENV{GEOSX_CXX}" CACHE PATH "") +set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-g ${CMAKE_CXX_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g" CACHE STRING "") +set(CMAKE_CXX_STANDARD 17 CACHE STRING "") + +set(CMAKE_Fortran_COMPILER "$ENV{GEOSX_FORT}" CACHE PATH "") +set(CMAKE_Fortran_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(ENABLE_FORTRAN OFF CACHE BOOL "" FORCE) + +# enable MPI and set paths to compilers and executable. +# Note that the MPI compilers are wrappers around standard serial compilers. +# Therefore, the MPI compilers must wrap the appropriate serial compilers specified +# in CMAKE_C_COMPILER, CMAKE_CXX_COMPILER, and CMAKE_Fortran_COMPILER. +set(ENABLE_MPI ON CACHE BOOL "") +set(MPI_C_COMPILER "$ENV{GEOSX_MPICC}" CACHE PATH "") +set(MPI_CXX_COMPILER "$ENV{GEOSX_MPICXX}" CACHE PATH "") +set(MPI_Fortran_COMPILER "$ENV{GEOSX_MPIFORT}" CACHE PATH "") +set(MPIEXEC "$ENV{GEOSX_MPIRUN}" CACHE PATH "") + +# set(ENABLE_WRAP_ALL_TESTS_WITH_MPIEXEC ON CACHE BOOL "") + +# set(ENABLE_MKL ON CACHE BOOL "") +# set(INTEL_ROOT "$ENV{INTEL_DIR}" ) +# set(MKL_ROOT "$ENV{MKLROOT}/mkl" ) +# set(MKL_INCLUDE_DIRS ${MKL_ROOT}/include CACHE STRING "") +# set(MKL_LIBRARIES ${MKL_ROOT}/lib/intel64/libmkl_intel_lp64.so +# ${MKL_ROOT}/lib/intel64/libmkl_gnu_thread.so +# ${MKL_ROOT}/lib/intel64/libmkl_core.so +# ${INTEL_ROOT}/compiler/lib/intel64_lin/libiomp5.so +# CACHE STRING "") + +# MikeT : Check if there is value to enable these +# set(ENABLE_GTEST_DEATH_TESTS ON CACHE BOOL "" FORCE) + +# disable CUDA and OpenMP +set(CUDA_ENABLED OFF CACHE BOOL "" FORCE) +set(ENABLE_OPENMP ON CACHE BOOL "" FORCE) + +set(ENABLE_SPHINX_EXECUTABLE OFF CACHE BOOL "") +set(ENABLE_UNCRUSTIFY ON CACHE BOOL "") +set(ENABLE_DOXYGEN OFF CACHE BOOL "") + +# enable PAMELA and PVTPackage +set(ENABLE_PAMELA OFF CACHE BOOL "" FORCE) +set(ENABLE_PVTPackage ON CACHE BOOL "" FORCE) +set(ENABLE_VALGRIND OFF CACHE BOOL "") +set(ENABLE_CALIPER ON CACHE BOOL "") +set(ENABLE_CALIPER_HYPRE "$ENV{ENABLE_CALIPER_HYPRE}" CACHE BOOL "") + +# Hypre ON +if(NOT DEFINED ENABLE_HYPRE) + set(ENABLE_HYPRE ON CACHE BOOL "" FORCE) + # set(ENABLE_TRILINOS OFF CACHE BOOL "" FORCE) + set(ENABLE_TRILINOS "$ENV{ENABLE_TRILINOS}" CACHE BOOL "" FORCE) +endif() +if(ENABLE_HYPRE) + set(GEOSX_LA_INTERFACE "Hypre" CACHE STRING "" FORCE) +else() + set(ENABLE_HYPRE OFF CACHE BOOL "" FORCE) +endif() + +if( (ENABLE_HYPRE AND ENABLE_TRILINOS) OR (NOT ENABLE_TRILINOS AND NOT ENABLE_HYPRE)) + MESSAGE(SEND_ERROR "Exactly one of ENABLE_HYPRE and ENABLE_TRILINOS must be defined.") + MESSAGE(SEND_ERROR "ENABLE_HYPRE = ${ENABLE_HYPRE}.") + MESSAGE(SEND_ERROR "ENABLE_TRILINOS = ${ENABLE_TRILINOS}.") +endif() + +MESSAGE(STATUS "## GEOSX_LA_INTERFACE = ${GEOSX_LA_INTERFACE}") + +# disable Doxygen +set(ENABLE_DOXYGEN OFF CACHE PATH "") + +# enable tests +set(ENABLE_GTEST_DEATH_TESTS ON CACHE BOOL "" FORCE ) + +# let GEOSX define some third party libraries information for you +message("## tpls.cmake = ${CMAKE_CURRENT_LIST_DIR}/../tpls.cmake") +include(${CMAKE_CURRENT_LIST_DIR}/../tpls.cmake) +message("## CMAKE_CURRENT_LIST_DIR = ${CMAKE_CURRENT_LIST_DIR}") diff --git a/host-configs/CVX/CPU-OPTO3fastmath-Zen4-GCC-MPI-OMP.cmake b/host-configs/CVX/CPU-OPTO3fastmath-Zen4-GCC-MPI-OMP.cmake new file mode 100644 index 00000000000..6074afcb521 --- /dev/null +++ b/host-configs/CVX/CPU-OPTO3fastmath-Zen4-GCC-MPI-OMP.cmake @@ -0,0 +1,107 @@ +# CVX .cmake for GCC V.R.P V=9, 10, 12, 13 +# +# cmake with most aggresive Zen4 optimizations including IEEE math +# +# Michael E. Thomadakis michael.thomadakis@chevron.com + +# detect host and name the configuration file +site_name(HOST_NAME) + +message("## CVX cmake with most aggresive Zen4 optimizations including IEEE math") +message("## CVX CMAKE_CURRENT_LIST_DIR = ${CMAKE_CURRENT_LIST_DIR}") + +# Default is ON +set(ENABLE_WARNINGS_AS_ERRORS OFF CACHE BOOL "") + +# # Local mtml settings +set(GEOSX_TPL_DIR "$ENV{GEOSX_TPL_DIR}" CACHE PATH "" FORCE) +set(GEOS_TPL_DIR "$ENV{GEOSX_TPL_DIR}" CACHE PATH "" FORCE) +set(GEOSX_DIR "$ENV{GEOSX_DIR}" CACHE PATH "" FORCE) +message("## GEOSX_TPL_DIR = ${GEOSX_TPL_DIR}") +message("## GEOS_TPL_DIR = ${GEOS_TPL_DIR}") +message("## GEOSX_DIR = ${GEOSX_DIR}") + +# set paths to C, C++, and Fortran compilers. Note that while GEOSX does not contain any Fortran code, +# some of the third-party libraries do contain Fortran code. Thus a Fortran compiler must be specified. +##" -Wno-error -pthread -O3 -DNDEBUG -march=znver4 -mtune=znver4 -Ofast -mfma -fno-fast-math -fstrict-aliasing -ftree-vectorize -funroll-loops -flto $ENV{GEOS_FLAGS_CLI} " +set(CMAKE_C_COMPILER "$ENV{GEOSX_CC}" CACHE PATH "") +set(CMAKE_C_FLAGS_RELEASE " -DNDEBUG -Wno-error -pthread -O3 -mdaz-ftz -Ofast -mfma -march=znver4 -mtune=znver4 -ffast-math -funsafe-math-optimizations -fassociative-math -fstrict-aliasing -ftree-vectorize -funroll-loops $ENV{GEOS_FLAGS_CLI} " CACHE STRING "") +set(CMAKE_C_FLAGS_RELWITHDEBINFO "-g ${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_C_FLAGS_DEBUG "-O0 -g" CACHE STRING "") + +set(CMAKE_CXX_COMPILER "$ENV{GEOSX_CXX}" CACHE PATH "") +set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-g ${CMAKE_CXX_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g" CACHE STRING "") +set(CMAKE_CXX_STANDARD 17 CACHE STRING "") + +set(CMAKE_Fortran_COMPILER "$ENV{GEOSX_FORT}" CACHE PATH "") +set(CMAKE_Fortran_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(ENABLE_FORTRAN OFF CACHE BOOL "" FORCE) + +set(ENABLE_MPI ON CACHE BOOL "") +set(MPI_C_COMPILER "$ENV{GEOSX_MPICC}" CACHE PATH "") +set(MPI_CXX_COMPILER "$ENV{GEOSX_MPICXX}" CACHE PATH "") +set(MPI_Fortran_COMPILER "$ENV{GEOSX_MPIFORT}" CACHE PATH "") +set(MPIEXEC "$ENV{GEOSX_MPIRUN}" CACHE PATH "") + +# disable CUDA and enable OpenMP +set(CUDA_ENABLED OFF CACHE BOOL "" FORCE) +set(ENABLE_OPENMP ON CACHE BOOL "" FORCE) + +set(ENABLE_SPHINX_EXECUTABLE ON CACHE BOOL "") +set(ENABLE_UNCRUSTIFY ON CACHE BOOL "") +set(ENABLE_DOXYGEN OFF CACHE BOOL "") + +# enable PAMELA and PVTPackage +set(ENABLE_PAMELA OFF CACHE BOOL "" FORCE) +set(ENABLE_PVTPackage ON CACHE BOOL "" FORCE) +set(ENABLE_VALGRIND OFF CACHE BOOL "") +set(ENABLE_CALIPER ON CACHE BOOL "") +set(ENABLE_CALIPER_HYPRE "$ENV{ENABLE_CALIPER_HYPRE}" CACHE BOOL "") + +# Hypre ON +if(NOT DEFINED ENABLE_HYPRE) + set(ENABLE_HYPRE ON CACHE BOOL "" FORCE) + # set(ENABLE_TRILINOS OFF CACHE BOOL "" FORCE) + set(ENABLE_TRILINOS "$ENV{ENABLE_TRILINOS}" CACHE BOOL "" FORCE) +endif() +if(ENABLE_HYPRE) + set(GEOSX_LA_INTERFACE "Hypre" CACHE STRING "" FORCE) +else() + set(ENABLE_HYPRE OFF CACHE BOOL "" FORCE) +endif() + +if( (ENABLE_HYPRE AND ENABLE_TRILINOS) OR (NOT ENABLE_TRILINOS AND NOT ENABLE_HYPRE)) + MESSAGE(SEND_ERROR "Exactly one of ENABLE_HYPRE and ENABLE_TRILINOS must be defined.") + MESSAGE(SEND_ERROR "ENABLE_HYPRE = ${ENABLE_HYPRE}.") + MESSAGE(SEND_ERROR "ENABLE_TRILINOS = ${ENABLE_TRILINOS}.") +endif() + +MESSAGE(STATUS "## GEOSX_LA_INTERFACE = ${GEOSX_LA_INTERFACE}") + +# disable Doxygen +set(ENABLE_DOXYGEN OFF CACHE PATH "") + +# enable tests +set(ENABLE_GTEST_DEATH_TESTS ON CACHE BOOL "" FORCE ) + +# let GEOSX define some third party libraries information for you +message("## tpls.cmake = ${CMAKE_CURRENT_LIST_DIR}/../tpls.cmake") +include(${CMAKE_CURRENT_LIST_DIR}/../tpls.cmake) +message("## CMAKE_CURRENT_LIST_DIR = ${CMAKE_CURRENT_LIST_DIR}") + +# set(ENABLE_WRAP_ALL_TESTS_WITH_MPIEXEC ON CACHE BOOL "") + +# set(ENABLE_MKL ON CACHE BOOL "") +# set(INTEL_ROOT "$ENV{INTEL_DIR}" ) +# set(MKL_ROOT "$ENV{MKLROOT}/mkl" ) +# set(MKL_INCLUDE_DIRS ${MKL_ROOT}/include CACHE STRING "") +# set(MKL_LIBRARIES ${MKL_ROOT}/lib/intel64/libmkl_intel_lp64.so +# ${MKL_ROOT}/lib/intel64/libmkl_gnu_thread.so +# ${MKL_ROOT}/lib/intel64/libmkl_core.so +# ${INTEL_ROOT}/compiler/lib/intel64_lin/libiomp5.so +# CACHE STRING "") + +# MikeT : Check if there is value to enable these +# set(ENABLE_GTEST_DEATH_TESTS ON CACHE BOOL "" FORCE) diff --git a/host-configs/CVX/CPU-OPTO3fastmath-Zen4-GCC-impi_1api-OMP.cmake b/host-configs/CVX/CPU-OPTO3fastmath-Zen4-GCC-impi_1api-OMP.cmake new file mode 120000 index 00000000000..7ea53279399 --- /dev/null +++ b/host-configs/CVX/CPU-OPTO3fastmath-Zen4-GCC-impi_1api-OMP.cmake @@ -0,0 +1 @@ +CPU-OPTO3fastmath-avx512-GCC-MPI-OMP.cmake \ No newline at end of file diff --git a/host-configs/CVX/CPU-OPTO3fastmath-Zen5-GCC-MPI-OMP.cmake b/host-configs/CVX/CPU-OPTO3fastmath-Zen5-GCC-MPI-OMP.cmake new file mode 100644 index 00000000000..5045b70b6c5 --- /dev/null +++ b/host-configs/CVX/CPU-OPTO3fastmath-Zen5-GCC-MPI-OMP.cmake @@ -0,0 +1,107 @@ +# CVX .cmake for GCC V.R.P V=9, 10, 12, 13 +# +# cmake with most aggresive Zen5 optimizations including IEEE math +# +# Michael E. Thomadakis michael.thomadakis@chevron.com + +# detect host and name the configuration file +site_name(HOST_NAME) + +message("## CVX cmake with most aggresive Zen5 optimizations including IEEE math") +message("## CVX CMAKE_CURRENT_LIST_DIR = ${CMAKE_CURRENT_LIST_DIR}") + +# Default is ON +set(ENABLE_WARNINGS_AS_ERRORS OFF CACHE BOOL "") + +# # Local mtml settings +set(GEOSX_TPL_DIR "$ENV{GEOSX_TPL_DIR}" CACHE PATH "" FORCE) +set(GEOS_TPL_DIR "$ENV{GEOSX_TPL_DIR}" CACHE PATH "" FORCE) +set(GEOSX_DIR "$ENV{GEOSX_DIR}" CACHE PATH "" FORCE) +message("## GEOSX_TPL_DIR = ${GEOSX_TPL_DIR}") +message("## GEOS_TPL_DIR = ${GEOS_TPL_DIR}") +message("## GEOSX_DIR = ${GEOSX_DIR}") + +# set paths to C, C++, and Fortran compilers. Note that while GEOSX does not contain any Fortran code, +# some of the third-party libraries do contain Fortran code. Thus a Fortran compiler must be specified. +##" -Wno-error -pthread -O3 -DNDEBUG -march=znver4 -mtune=znver4 -Ofast -mfma -fno-fast-math -fstrict-aliasing -ftree-vectorize -funroll-loops -flto $ENV{GEOS_FLAGS_CLI} " +set(CMAKE_C_COMPILER "$ENV{GEOSX_CC}" CACHE PATH "") +set(CMAKE_C_FLAGS_RELEASE " -DNDEBUG -Wno-error -pthread -O3 -mdaz-ftz -Ofast -mfma -march=znver5 -mtune=znver5 -ffast-math -funsafe-math-optimizations -fassociative-math -fstrict-aliasing -ftree-vectorize -funroll-loops $ENV{GEOS_FLAGS_CLI} " CACHE STRING "") +set(CMAKE_C_FLAGS_RELWITHDEBINFO "-g ${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_C_FLAGS_DEBUG "-O0 -g" CACHE STRING "") + +set(CMAKE_CXX_COMPILER "$ENV{GEOSX_CXX}" CACHE PATH "") +set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-g ${CMAKE_CXX_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g" CACHE STRING "") +set(CMAKE_CXX_STANDARD 17 CACHE STRING "") + +set(CMAKE_Fortran_COMPILER "$ENV{GEOSX_FORT}" CACHE PATH "") +set(CMAKE_Fortran_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(ENABLE_FORTRAN OFF CACHE BOOL "" FORCE) + +set(ENABLE_MPI ON CACHE BOOL "") +set(MPI_C_COMPILER "$ENV{GEOSX_MPICC}" CACHE PATH "") +set(MPI_CXX_COMPILER "$ENV{GEOSX_MPICXX}" CACHE PATH "") +set(MPI_Fortran_COMPILER "$ENV{GEOSX_MPIFORT}" CACHE PATH "") +set(MPIEXEC "$ENV{GEOSX_MPIRUN}" CACHE PATH "") + +# disable CUDA and enable OpenMP +set(CUDA_ENABLED OFF CACHE BOOL "" FORCE) +set(ENABLE_OPENMP ON CACHE BOOL "" FORCE) + +set(ENABLE_SPHINX_EXECUTABLE ON CACHE BOOL "") +set(ENABLE_UNCRUSTIFY ON CACHE BOOL "") +set(ENABLE_DOXYGEN OFF CACHE BOOL "") + +# enable PAMELA and PVTPackage +set(ENABLE_PAMELA OFF CACHE BOOL "" FORCE) +set(ENABLE_PVTPackage ON CACHE BOOL "" FORCE) +set(ENABLE_VALGRIND OFF CACHE BOOL "") +set(ENABLE_CALIPER ON CACHE BOOL "") +set(ENABLE_CALIPER_HYPRE "$ENV{ENABLE_CALIPER_HYPRE}" CACHE BOOL "") + +# Hypre ON +if(NOT DEFINED ENABLE_HYPRE) + set(ENABLE_HYPRE ON CACHE BOOL "" FORCE) + # set(ENABLE_TRILINOS OFF CACHE BOOL "" FORCE) + set(ENABLE_TRILINOS "$ENV{ENABLE_TRILINOS}" CACHE BOOL "" FORCE) +endif() +if(ENABLE_HYPRE) + set(GEOSX_LA_INTERFACE "Hypre" CACHE STRING "" FORCE) +else() + set(ENABLE_HYPRE OFF CACHE BOOL "" FORCE) +endif() + +if( (ENABLE_HYPRE AND ENABLE_TRILINOS) OR (NOT ENABLE_TRILINOS AND NOT ENABLE_HYPRE)) + MESSAGE(SEND_ERROR "Exactly one of ENABLE_HYPRE and ENABLE_TRILINOS must be defined.") + MESSAGE(SEND_ERROR "ENABLE_HYPRE = ${ENABLE_HYPRE}.") + MESSAGE(SEND_ERROR "ENABLE_TRILINOS = ${ENABLE_TRILINOS}.") +endif() + +MESSAGE(STATUS "## GEOSX_LA_INTERFACE = ${GEOSX_LA_INTERFACE}") + +# disable Doxygen +set(ENABLE_DOXYGEN OFF CACHE PATH "") + +# enable tests +set(ENABLE_GTEST_DEATH_TESTS ON CACHE BOOL "" FORCE ) + +# let GEOSX define some third party libraries information for you +message("## tpls.cmake = ${CMAKE_CURRENT_LIST_DIR}/../tpls.cmake") +include(${CMAKE_CURRENT_LIST_DIR}/../tpls.cmake) +message("## CMAKE_CURRENT_LIST_DIR = ${CMAKE_CURRENT_LIST_DIR}") + +# set(ENABLE_WRAP_ALL_TESTS_WITH_MPIEXEC ON CACHE BOOL "") + +# set(ENABLE_MKL ON CACHE BOOL "") +# set(INTEL_ROOT "$ENV{INTEL_DIR}" ) +# set(MKL_ROOT "$ENV{MKLROOT}/mkl" ) +# set(MKL_INCLUDE_DIRS ${MKL_ROOT}/include CACHE STRING "") +# set(MKL_LIBRARIES ${MKL_ROOT}/lib/intel64/libmkl_intel_lp64.so +# ${MKL_ROOT}/lib/intel64/libmkl_gnu_thread.so +# ${MKL_ROOT}/lib/intel64/libmkl_core.so +# ${INTEL_ROOT}/compiler/lib/intel64_lin/libiomp5.so +# CACHE STRING "") + +# MikeT : Check if there is value to enable these +# set(ENABLE_GTEST_DEATH_TESTS ON CACHE BOOL "" FORCE) diff --git a/host-configs/CVX/CPU-OPTO3fastmath-avx512-GCC-MPI-OMP.cmake b/host-configs/CVX/CPU-OPTO3fastmath-avx512-GCC-MPI-OMP.cmake new file mode 100644 index 00000000000..4d45369f909 --- /dev/null +++ b/host-configs/CVX/CPU-OPTO3fastmath-avx512-GCC-MPI-OMP.cmake @@ -0,0 +1,107 @@ +# CVX .cmake for GCC V.R.P V=9, 10, 12, 13 +# +# cmake with most aggresive Zen4 and avx512 optimizations but IEEE math +# +# Michael E. Thomadakis michael.thomadakis@chevron.com + +# detect host and name the configuration file +site_name(HOST_NAME) + +message("## CVX cmake with most aggresive Zen4 and avx512 optimizations but respecting IEEE math") +message("## CVX CMAKE_CURRENT_LIST_DIR = ${CMAKE_CURRENT_LIST_DIR}") + +# Default is ON +set(ENABLE_WARNINGS_AS_ERRORS OFF CACHE BOOL "") + +# # Local mtml settings +set(GEOSX_TPL_DIR "$ENV{GEOSX_TPL_DIR}" CACHE PATH "" FORCE) +set(GEOS_TPL_DIR "$ENV{GEOSX_TPL_DIR}" CACHE PATH "" FORCE) +set(GEOSX_DIR "$ENV{GEOSX_DIR}" CACHE PATH "" FORCE) +message("## GEOSX_TPL_DIR = ${GEOSX_TPL_DIR}") +message("## GEOS_TPL_DIR = ${GEOS_TPL_DIR}") +message("## GEOSX_DIR = ${GEOSX_DIR}") + +# set paths to C, C++, and Fortran compilers. Note that while GEOSX does not contain any Fortran code, +# some of the third-party libraries do contain Fortran code. Thus a Fortran compiler must be specified. +##" -Wno-error -pthread -O3 -DNDEBUG -march=znver4 -mtune=znver4 -Ofast -mfma -fno-fast-math -fstrict-aliasing -ftree-vectorize -funroll-loops -flto $ENV{GEOS_FLAGS_CLI} " +set(CMAKE_C_COMPILER "$ENV{GEOSX_CC}" CACHE PATH "") +set(CMAKE_C_FLAGS_RELEASE " -DNDEBUG -Wno-error -pthread -O3 -march=znver4 -mtune=znver4 -Ofast -mfma -fno-fast-math -fstrict-aliasing -ftree-vectorize -funroll-loops $ENV{GEOS_FLAGS_CLI} " CACHE STRING "") +set(CMAKE_C_FLAGS_RELWITHDEBINFO "-g ${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_C_FLAGS_DEBUG "-O0 -g" CACHE STRING "") + +set(CMAKE_CXX_COMPILER "$ENV{GEOSX_CXX}" CACHE PATH "") +set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-g ${CMAKE_CXX_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g" CACHE STRING "") +set(CMAKE_CXX_STANDARD 17 CACHE STRING "") + +set(CMAKE_Fortran_COMPILER "$ENV{GEOSX_FORT}" CACHE PATH "") +set(CMAKE_Fortran_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(ENABLE_FORTRAN OFF CACHE BOOL "" FORCE) + +set(ENABLE_MPI ON CACHE BOOL "") +set(MPI_C_COMPILER "$ENV{GEOSX_MPICC}" CACHE PATH "") +set(MPI_CXX_COMPILER "$ENV{GEOSX_MPICXX}" CACHE PATH "") +set(MPI_Fortran_COMPILER "$ENV{GEOSX_MPIFORT}" CACHE PATH "") +set(MPIEXEC "$ENV{GEOSX_MPIRUN}" CACHE PATH "") + +# disable CUDA and enable OpenMP +set(CUDA_ENABLED OFF CACHE BOOL "" FORCE) +set(ENABLE_OPENMP ON CACHE BOOL "" FORCE) + +set(ENABLE_SPHINX_EXECUTABLE ON CACHE BOOL "") +set(ENABLE_UNCRUSTIFY ON CACHE BOOL "") +set(ENABLE_DOXYGEN OFF CACHE BOOL "") + +# enable PAMELA and PVTPackage +set(ENABLE_PAMELA OFF CACHE BOOL "" FORCE) +set(ENABLE_PVTPackage ON CACHE BOOL "" FORCE) +set(ENABLE_VALGRIND OFF CACHE BOOL "") +set(ENABLE_CALIPER ON CACHE BOOL "") +set(ENABLE_CALIPER_HYPRE "$ENV{ENABLE_CALIPER_HYPRE}" CACHE BOOL "") + +# Hypre ON +if(NOT DEFINED ENABLE_HYPRE) + set(ENABLE_HYPRE ON CACHE BOOL "" FORCE) + # set(ENABLE_TRILINOS OFF CACHE BOOL "" FORCE) + set(ENABLE_TRILINOS "$ENV{ENABLE_TRILINOS}" CACHE BOOL "" FORCE) +endif() +if(ENABLE_HYPRE) + set(GEOSX_LA_INTERFACE "Hypre" CACHE STRING "" FORCE) +else() + set(ENABLE_HYPRE OFF CACHE BOOL "" FORCE) +endif() + +if( (ENABLE_HYPRE AND ENABLE_TRILINOS) OR (NOT ENABLE_TRILINOS AND NOT ENABLE_HYPRE)) + MESSAGE(SEND_ERROR "Exactly one of ENABLE_HYPRE and ENABLE_TRILINOS must be defined.") + MESSAGE(SEND_ERROR "ENABLE_HYPRE = ${ENABLE_HYPRE}.") + MESSAGE(SEND_ERROR "ENABLE_TRILINOS = ${ENABLE_TRILINOS}.") +endif() + +MESSAGE(STATUS "## GEOSX_LA_INTERFACE = ${GEOSX_LA_INTERFACE}") + +# disable Doxygen +set(ENABLE_DOXYGEN OFF CACHE PATH "") + +# enable tests +set(ENABLE_GTEST_DEATH_TESTS ON CACHE BOOL "" FORCE ) + +# let GEOSX define some third party libraries information for you +message("## tpls.cmake = ${CMAKE_CURRENT_LIST_DIR}/../tpls.cmake") +include(${CMAKE_CURRENT_LIST_DIR}/../tpls.cmake) +message("## CMAKE_CURRENT_LIST_DIR = ${CMAKE_CURRENT_LIST_DIR}") + +# set(ENABLE_WRAP_ALL_TESTS_WITH_MPIEXEC ON CACHE BOOL "") + +# set(ENABLE_MKL ON CACHE BOOL "") +# set(INTEL_ROOT "$ENV{INTEL_DIR}" ) +# set(MKL_ROOT "$ENV{MKLROOT}/mkl" ) +# set(MKL_INCLUDE_DIRS ${MKL_ROOT}/include CACHE STRING "") +# set(MKL_LIBRARIES ${MKL_ROOT}/lib/intel64/libmkl_intel_lp64.so +# ${MKL_ROOT}/lib/intel64/libmkl_gnu_thread.so +# ${MKL_ROOT}/lib/intel64/libmkl_core.so +# ${INTEL_ROOT}/compiler/lib/intel64_lin/libiomp5.so +# CACHE STRING "") + +# MikeT : Check if there is value to enable these +# set(ENABLE_GTEST_DEATH_TESTS ON CACHE BOOL "" FORCE) diff --git a/host-configs/CVX/CPU-OPTO3fastmath-avx512-GCC-impi_1api-OMP.cmake b/host-configs/CVX/CPU-OPTO3fastmath-avx512-GCC-impi_1api-OMP.cmake new file mode 120000 index 00000000000..7ea53279399 --- /dev/null +++ b/host-configs/CVX/CPU-OPTO3fastmath-avx512-GCC-impi_1api-OMP.cmake @@ -0,0 +1 @@ +CPU-OPTO3fastmath-avx512-GCC-MPI-OMP.cmake \ No newline at end of file diff --git a/host-configs/CVX/CPU-OPTO3fastmath-avx512-GCC-ompi_hpcx-OMP.cmake b/host-configs/CVX/CPU-OPTO3fastmath-avx512-GCC-ompi_hpcx-OMP.cmake new file mode 120000 index 00000000000..7ea53279399 --- /dev/null +++ b/host-configs/CVX/CPU-OPTO3fastmath-avx512-GCC-ompi_hpcx-OMP.cmake @@ -0,0 +1 @@ +CPU-OPTO3fastmath-avx512-GCC-MPI-OMP.cmake \ No newline at end of file diff --git a/host-configs/CVX/CPU-base-GCC-mpi-OMP.cmake b/host-configs/CVX/CPU-base-GCC-mpi-OMP.cmake new file mode 100644 index 00000000000..eb1726a4ec6 --- /dev/null +++ b/host-configs/CVX/CPU-base-GCC-mpi-OMP.cmake @@ -0,0 +1,116 @@ +# Chevron base host-config for CPU GEOS and generic MPI +# GCC V.R.P V=9, 10, 12, 13, etc. provided by build scripts +# compiler optimization options should be set be .cmake that include this +# +# Michael E. Thomadakis michael.thomadakis@chevron.com +# HPC R&D and Innovations +# + +# Get build host name +site_name(HOST_NAME) + +message("## CVX base cmake for GCC and generic MPI") +message("## CVX CONFIG_NAME = ${CONFIG_NAME}") +message("## CVX CMAKE_CURRENT_LIST_DIR = ${CMAKE_CURRENT_LIST_DIR}") + +# Default is ON +set(ENABLE_WARNINGS_AS_ERRORS OFF CACHE BOOL "") + +# Local mtml settings +set(GEOSX_TPL_DIR "$ENV{GEOSX_TPL_DIR}" CACHE PATH "" FORCE) +set(GEOS_TPL_DIR "$ENV{GEOSX_TPL_DIR}" CACHE PATH "" FORCE) +set(GEOSX_DIR "$ENV{GEOSX_DIR}" CACHE PATH "" FORCE) +message("## GEOSX_TPL_DIR = ${GEOSX_TPL_DIR}") +message("## GEOS_TPL_DIR = ${GEOS_TPL_DIR}") +message("## GEOSX_DIR = ${GEOSX_DIR}") + +# set paths to C, C++, and Fortran compilers. Note that while GEOSX does not contain any Fortran code, +# some of the third-party libraries do contain Fortran code. Thus a Fortran compiler must be specified. +## set(CMAKE_C_FLAGS_RELEASE " -Wno-error -pthread -O3 -DNDEBUG -march=znver4 -mtune=znver4 -Ofast -mfma -fno-fast-math -fstrict-aliasing -ftree-vectorize -funroll-loops $ENV{GEOS_FLAGS_CLI} " CACHE STRING "") +set(CMAKE_C_COMPILER "$ENV{GEOSX_CC}" CACHE PATH "") +## set(CMAKE_C_FLAGS_RELEASE " -Wno-error -pthread -O3 -DNDEBUG -march=znver4 -mtune=znver4 -mdaz-ftz -Ofast -mfma -fno-fast-math -fstrict-aliasing -ftree-vectorize -funroll-loops $ENV{GEOS_FLAGS_CLI} " CACHE STRING "") + +## -mdaz-ftz to be added to all GCC options +set(CMAKE_C_FLAGS_RELWITHDEBINFO "-g ${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_C_FLAGS_DEBUG "-O0 -g" CACHE STRING "") + +set(CMAKE_CXX_COMPILER "$ENV{GEOSX_CXX}" CACHE PATH "") +set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-g ${CMAKE_CXX_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g" CACHE STRING "") +set(CMAKE_CXX_STANDARD 17 CACHE STRING "") + +set(CMAKE_Fortran_COMPILER "$ENV{GEOSX_FORT}" CACHE PATH "") +set(CMAKE_Fortran_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_Fortran_FLAGS_RELWITHDEBINFO "-g ${CMAKE_CXX_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_Fortran_FLAGS_DEBUG "-O0 -g" CACHE STRING "") +set(ENABLE_FORTRAN OFF CACHE BOOL "" FORCE) + +# enable MPI and set paths to compilers and executable. +# Note that the MPI compilers are wrappers around standard serial compilers. +# Therefore, the MPI compilers must wrap the appropriate serial compilers specified +# in CMAKE_C_COMPILER, CMAKE_CXX_COMPILER, and CMAKE_Fortran_COMPILER. +set(ENABLE_MPI ON CACHE BOOL "") +set(MPI_C_COMPILER "$ENV{GEOSX_MPICC}" CACHE PATH "") +set(MPI_CXX_COMPILER "$ENV{GEOSX_MPICXX}" CACHE PATH "") +set(MPI_Fortran_COMPILER "$ENV{GEOSX_MPIFORT}" CACHE PATH "") +set(MPIEXEC "$ENV{GEOSX_MPIRUN}" CACHE PATH "") + +# MikeT : Check if there is value to enable these +# set(ENABLE_WRAP_ALL_TESTS_WITH_MPIEXEC ON CACHE BOOL "") + +# disable CUDA and enable OpenMP +set(CUDA_ENABLED OFF CACHE BOOL "" FORCE) +set(ENABLE_OPENMP ON CACHE BOOL "" FORCE) + +set(ENABLE_UNCRUSTIFY ON CACHE BOOL "") +set(ENABLE_SPHINX_EXECUTABLE OFF CACHE BOOL "") +set(ENABLE_DOXYGEN OFF CACHE BOOL "") + +# enable PAMELA and PVTPackage +set(ENABLE_PAMELA OFF CACHE BOOL "" FORCE) +set(ENABLE_PVTPackage ON CACHE BOOL "" FORCE) +set(ENABLE_VALGRIND OFF CACHE BOOL "") +set(ENABLE_CALIPER ON CACHE BOOL "") +set(ENABLE_CALIPER_HYPRE "$ENV{ENABLE_CALIPER_HYPRE}" CACHE BOOL "") + +# Hypre ON +if(NOT DEFINED ENABLE_HYPRE) + set(ENABLE_HYPRE ON CACHE BOOL "" FORCE) + # set(ENABLE_TRILINOS OFF CACHE BOOL "" FORCE) + set(ENABLE_TRILINOS "$ENV{ENABLE_TRILINOS}" CACHE BOOL "" FORCE) +endif() +if(ENABLE_HYPRE) + set(GEOSX_LA_INTERFACE "Hypre" CACHE STRING "" FORCE) +else() + set(ENABLE_HYPRE OFF CACHE BOOL "" FORCE) +endif() + +if( (ENABLE_HYPRE AND ENABLE_TRILINOS) OR (NOT ENABLE_TRILINOS AND NOT ENABLE_HYPRE)) + MESSAGE(SEND_ERROR "Exactly one of ENABLE_HYPRE and ENABLE_TRILINOS must be defined.") + MESSAGE(SEND_ERROR "ENABLE_HYPRE = ${ENABLE_HYPRE}.") + MESSAGE(SEND_ERROR "ENABLE_TRILINOS = ${ENABLE_TRILINOS}.") +endif() + +MESSAGE(STATUS "## GEOSX_LA_INTERFACE = ${GEOSX_LA_INTERFACE}") + +# disable Doxygen +set(ENABLE_DOXYGEN OFF CACHE PATH "") + +# enable tests +set(ENABLE_GTEST_DEATH_TESTS ON CACHE BOOL "" FORCE ) + +# let GEOSX define some third party libraries information for you +message("## tpls.cmake = ${CMAKE_CURRENT_LIST_DIR}/../tpls.cmake") +include(${CMAKE_CURRENT_LIST_DIR}/../tpls.cmake) +message("## CMAKE_CURRENT_LIST_DIR = ${CMAKE_CURRENT_LIST_DIR}") + +# set(ENABLE_MKL ON CACHE BOOL "") +# set(INTEL_ROOT "$ENV{INTEL_DIR}" ) +# set(MKL_ROOT "$ENV{MKLROOT}/mkl" ) +# set(MKL_INCLUDE_DIRS ${MKL_ROOT}/include CACHE STRING "") +# set(MKL_LIBRARIES ${MKL_ROOT}/lib/intel64/libmkl_intel_lp64.so +# ${MKL_ROOT}/lib/intel64/libmkl_gnu_thread.so +# ${MKL_ROOT}/lib/intel64/libmkl_core.so +# ${INTEL_ROOT}/compiler/lib/intel64_lin/libiomp5.so +# CACHE STRING "") diff --git a/host-configs/CVX/GPU-GH200-Hypre-oblas-GCC-CUDA_12.2-ompi_hpcx-OMP.cmake b/host-configs/CVX/GPU-GH200-Hypre-oblas-GCC-CUDA_12.2-ompi_hpcx-OMP.cmake new file mode 100644 index 00000000000..4c1369b65df --- /dev/null +++ b/host-configs/CVX/GPU-GH200-Hypre-oblas-GCC-CUDA_12.2-ompi_hpcx-OMP.cmake @@ -0,0 +1,184 @@ +#------------------------------------------------------------------------------ +# CUDA support +#------------------------------------------------------------------------------ +# _blt_tutorial_surface_cuda_config_start +# +# CVX .cmake for Nvidia nvcc and OpenMPI MPI; OpenMP enabled +# For Nvidia LauncPad environment +# +# Michael E. Thomadakis michael.thomadakis@chevron.com +# Chevron Technical Center, Innovation and HPC R&D +# + +# detect host and name the configuration file +site_name(HOST_NAME) +message("## CVX CMAKE_CURRENT_LIST_DIR = ${CMAKE_CURRENT_LIST_DIR}") + +# Default is ON +set(ENABLE_WARNINGS_AS_ERRORS OFF CACHE BOOL "") + +# Info +set(GEOSX_TPL_DIR "$ENV{GEOSX_TPL_DIR}" CACHE PATH "" FORCE) +set(GEOS_TPL_DIR "$ENV{GEOSX_TPL_DIR}" CACHE PATH "" FORCE) +set(GEOSX_DIR "$ENV{GEOSX_DIR}" CACHE PATH "" FORCE) +message("## GEOSX_TPL_DIR = ${GEOSX_TPL_DIR}") +message("## GEOS_TPL_DIR = ${GEOS_TPL_DIR}") +message("## GEOSX_DIR = ${GEOSX_DIR}") + +set(ENABLE_FORTRAN OFF CACHE BOOL "" FORCE) + +set(ENABLE_MPI ON CACHE BOOL "") + +set(MPI_C_COMPILER "$ENV{GEOSX_MPICC}" CACHE PATH "") +set(MPI_CXX_COMPILER "$ENV{GEOSX_MPICXX}" CACHE PATH "") +set(MPI_Fortran_COMPILER "$ENV{GEOSX_MPIFORT}" CACHE PATH "") +set(MPIEXEC "$ENV{GEOSX_MPIRUN}" CACHE PATH "") + +set(ENABLE_WRAP_ALL_TESTS_WITH_MPIEXEC ON CACHE BOOL "") + +set(ENABLE_SPHINX_EXECUTABLE OFF CACHE BOOL "") +set(ENABLE_UNCRUSTIFY ON CACHE BOOL "") +set(ENABLE_DOXYGEN OFF CACHE BOOL "") + +set(ENABLE_CALIPER ON CACHE BOOL "") +set(ENABLE_CALIPER_HYPRE "$ENV{ENABLE_CALIPER_HYPRE}" CACHE BOOL "") +set(ENABLE_CUDA_NVTOOLSEXT "$ENV{ENABLE_CUDA_NVTOOLSEXT}" CACHE BOOL "") +set(ENABLE_ADIAK ON CACHE BOOL "") + +set(ENABLE_CUDA ON CACHE BOOL "") +# set(ENABLE_CUDA ON CACHE PATH "" FORCE) + +set(CUDA_TOOLKIT_ROOT_DIR "$ENV{CUDA_HOME}" CACHE PATH "") +message("## CUDA_TOOLKIT_ROOT_DIR = ${CUDA_TOOLKIT_ROOT_DIR}") +if(ENABLE_CUDA) + # GEOS_USE_DEVICE and CALC_FEM_SHAPE_IN_KERNEL must be defined and visible + + set(ENABLE_HYPRE_DEVICE "CUDA" CACHE STRING "") + message("## ENABLE_CUDA = ${ENABLE_CUDA}; ENABLE_HYPRE_DEVICE = ${ENABLE_HYPRE_DEVICE}") + + set(ENABLE_CUDA_NVTOOLSEXT "$ENV{ENABLE_CUDA_NVTOOLSEXT}" CACHE BOOL "") + message("## ENABLE_CUDA_NVTOOLSEXT = ${ENABLE_CUDA_NVTOOLSEXT}") + + # H100, H200 sm_90 + set(CUDA_ARCH sm_90 CACHE STRING "") + set(CMAKE_CUDA_ARCHITECTURES 90 CACHE STRING "") + + set(CMAKE_CUDA_COMPILER ${CUDA_TOOLKIT_ROOT_DIR}/bin/nvcc CACHE STRING "") + set(CMAKE_CUDA_HOST_COMPILER ${MPI_CXX_COMPILER} CACHE STRING "") + # set(CMAKE_CUDA_STANDARD 14 CACHE STRING "") + set(CMAKE_CUDA_FLAGS " $ENV{GEOS_CUDA_FLAGS_CLI} -restrict -arch ${CUDA_ARCH} --expt-extended-lambda --expt-relaxed-constexpr -Werror cross-execution-space-call,reorder,deprecated-declarations -Xcompiler -DGEOS_USE_DEVICE -Xcompiler -DCALC_FEM_SHAPE_IN_KERNEL " CACHE STRING "") + set(CMAKE_CUDA_FLAGS_RELEASE " ${CMAKE_CUDA_FLAGS} -O3 -DNDEBUG -Xcompiler -DNDEBUG -Xcompiler -Ofast " CACHE STRING "") + set(CMAKE_CUDA_FLAGS_RELWITHDEBINFO "-g -lineinfo ${CMAKE_CUDA_FLAGS_RELEASE}" CACHE STRING "") + set(CMAKE_CUDA_FLAGS_DEBUG " ${CMAKE_CUDA_FLAGS} -g -G -O0 -Xcompiler -O0 " CACHE STRING "") + + set(CUDA_SEPARABLE_COMPILATION ON CACHE BOOL "") + + # CHECK A100 + # -D CUPTI_PREFIX=path-to-your-cupti-installation + # set(ENABLE_CALIPER_WITH_CUPTI ON CACHE BOOL "") + +endif() + + +# Compilers + +# --library-path=${CUDA_TOOLKIT_LIB_DIR} + +set(CMAKE_C_COMPILER "$ENV{GEOSX_CC}" CACHE PATH "") +set(CMAKE_C_FLAGS_RELEASE " -O3 -Wno-error -pthread -fno-fast-math -DNDEBUG $ENV{GEOS_HOST_FLAGS_CLI} " CACHE STRING "") +# set(CMAKE_C_FLAGS_RELEASE " -O3 -fast -DNDEBUG -L${CUDA_TOOLKIT_LIB_DIR} " CACHE STRING "") +set(CMAKE_C_FLAGS_RELWITHDEBINFO "-g ${CMAKE_C_FLAGS_RELEASE} " CACHE STRING "") +set(CMAKE_C_FLAGS_DEBUG "-O0 -g $ENV{GEOSX_HOST_FLAGS_CLI} " CACHE STRING "") + +set(CMAKE_CXX_COMPILER "$ENV{GEOSX_CXX}" CACHE PATH "") +set(CMAKE_CXX_FLAGS_RELEASE " ${CMAKE_C_FLAGS_RELEASE} " CACHE STRING "") +set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-g ${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g $ENV{GEOS_FLAGS_CLI} " CACHE STRING "") +# set(CMAKE_CXX_STANDARD 17 CACHE STRING "") + +set(CMAKE_Fortran_COMPILER "$ENV{GEOSX_FORT}" CACHE PATH "") +set(CMAKE_Fortran_FLAGS_RELEASE " ${CMAKE_C_FLAGS_RELEASE} " CACHE STRING "") +set(CMAKE_Fortran_FLAGS_RELWITHDEBINFO "-g ${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_Fortran_FLAGS_DEBUG "-O0 -g $ENV{GEOS_FLAGS_CLI} " CACHE STRING "") +set(ENABLE_FORTRAN OFF CACHE BOOL "" FORCE) + +set(BLAS_LIBRARIES "/data/saet/software/aarch64/lib/libopenblas.so" CACHE STRING "") +# set(BLAS_LIBRARIES "$ENV{NVHPC_ROOT}/math_libs/lib64/libnvblas.so" CACHE STRING "") +message("## BLAS_LIBRARIES = ${BLAS_LIBRARIES}") + +# CHECK : Most recent version does build. Let's wait for an upgrade on our side. +set(ENABLE_HYPRE ON CACHE BOOL "" FORCE) +set(ENABLE_HYPRE_CUDA ON CACHE BOOL "" FORCE) +set(ENABLE_OPENMP ON CACHE BOOL "" FORCE) + +set(BLAS_LIBRARIES "/data/saet/software/aarch64/lib/libopenblas.so" CACHE STRING "") +# set(BLAS_LIBRARIES "$ENV{NVHPC_ROOT}/math_libs/lib64/libnvblas.so" CACHE STRING "") +message("## BLAS_LIBRARIES = ${BLAS_LIBRARIES}") + +set(ENABLE_MATHPRESSO OFF CACHE BOOL "" FORCE ) + +if(ENABLE_HYPRE_CUDA) + set(ENABLE_PETSC OFF CACHE BOOL "") + set(ENABLE_TRILINOS OFF CACHE BOOL "") + set(GEOSX_LA_INTERFACE "Hypre" CACHE STRING "") + # set(ENABLE_HYPRE OFF CACHE BOOL "" FORCE) +endif() + + +# Hypre ON + +if( (ENABLE_HYPRE_CUDA AND ENABLE_TRILINOS_CUDA) OR (NOT ENABLE_TRILINOS_CUDA AND NOT ENABLE_HYPRE_CUDA) ) + MESSAGE(SEND_ERROR "Exactly one of ENABLE_HYPRE and ENABLE_TRILINOS must be defined.") + MESSAGE(SEND_ERROR "ENABLE_HYPRE = ${ENABLE_HYPRE}.") + MESSAGE(SEND_ERROR "ENABLE_TRILINOS = ${ENABLE_TRILINOS}.") +endif() + +MESSAGE(STATUS "## GEOSX_LA_INTERFACE = ${GEOSX_LA_INTERFACE}") + +# disable PAMELA and enable PVTPackage +set(ENABLE_PAMELA OFF CACHE BOOL "" FORCE) +set(ENABLE_PVTPackage ON CACHE BOOL "" FORCE) + +set(ENABLE_VALGRIND OFF CACHE BOOL "") +set(ENABLE_CALIPER ON CACHE BOOL "") + +# disable Doxygen +set(ENABLE_DOXYGEN OFF CACHE PATH "") + +# enable tests +set(ENABLE_GTEST_DEATH_TESTS ON CACHE BOOL "" FORCE ) + +# let GEOSX define some third party libraries information for you +message("## tpls.cmake = ${CMAKE_CURRENT_LIST_DIR}/../tpls.cmake") +include(${CMAKE_CURRENT_LIST_DIR}/../tpls.cmake) +message("## CMAKE_CURRENT_LIST_DIR = ${CMAKE_CURRENT_LIST_DIR}") + + +# Python options +#set(ENABLE_PYLVARRAY ON CACHE BOOL "") +#set(ENABLE_PYGEOSX ON CACHE BOOL "") +#set(PYTHON_DIR "/share/software/user/open/python/3.6.1" CACHE PATH "") +#set(Python3_EXECUTABLE "/share/software/user/open/python/3.6.1/bin/python3" CACHE PATH "") + +## Nvidia HPC TDK + +# set(CMAKE_EXE_LINKER_FLAGS " -L${CUDA_TOOLKIT_LIB_DIR} " CACHE STRING "") +# //Flags used by the linker during DEBUG builds. +# set(CMAKE_EXE_LINKER_FLAGS_DEBUG " ${CMAKE_EXE_LINKER_FLAGS} " CACHE STRING "") +# //Flags used by the linker during MINSIZEREL builds. +# CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= +# //Flags used by the linker during RELEASE builds. +# set(CMAKE_EXE_LINKER_FLAGS_RELEASE " ${CMAKE_EXE_LINKER_FLAGS} " CACHE STRING "") +# //Flags used by the linker during RELWITHDEBINFO builds. +# set(CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO " ${CMAKE_EXE_LINKER_FLAGS} " CACHE STRING "") +# set(CUDA_TOOLKIT_ROOT_DIR "$ENV{NVHPC_ROOT}/cuda/11.7" CACHE PATH "") +# set(CUDA_TOOLKIT_LIB_DIR "${CUDA_TOOLKIT_ROOT_DIR}/cuda/11.7/lib64:${CUDA_TOOLKIT_ROOT_DIR}/math_libs/lib64" CACHE PATH "") +# message("## CUDA_TOOLKIT_LIB_DIR = ${CUDA_TOOLKIT_LIB_DIR}") +# set(LAPACK_LIBRARIES "$ENV{NVHPC_ROOT}/math_libs/lib64/liblapack_static.a" CACHE STRING "") +# message("## LAPACK_LIBRARIES = ${LAPACK_LIBRARIES}") +# set(BLAS_LIBRARIES "$ENV{NVHPC_ROOT}/math_libs/lib64/libnvblas.so" CACHE STRING "") +# message("## BLAS_LIBRARIES = ${BLAS_LIBRARIES}") + +# CUDA RT libs at +# /data/saet/mtml/software/aarch64/nvidia/hpc_sdk/Linux_aarch64/22.7/cuda/11.7/lib64/ +# set(CMAKE_CUDA_FLAGS "-restrict -arch ${CUDA_ARCH} --expt-extended-lambda --expt-relaxed-constexpr -Werror cross-execution-space-call,reorder,deprecated-declarations --library-path=${CUDA_TOOLKIT_LIB_DIR} -L${CUDA_TOOLKIT_LIB_DIR} " CACHE STRING "") diff --git a/host-configs/CVX/GPU-Hopper-Hypre-GCC-CUDA-MPI-OMP.cmake b/host-configs/CVX/GPU-Hopper-Hypre-GCC-CUDA-MPI-OMP.cmake new file mode 100644 index 00000000000..730b82efed2 --- /dev/null +++ b/host-configs/CVX/GPU-Hopper-Hypre-GCC-CUDA-MPI-OMP.cmake @@ -0,0 +1,179 @@ +#------------------------------------------------------------------------------ +# CUDA support +#------------------------------------------------------------------------------ +# _blt_tutorial_surface_cuda_config_start +# +# CVX .cmake for Nvidia Hopper with GCC, CUDA and Open or Intel MPI ; OpenMP enabled +# +# Michael E. Thomadakis michael.thomadakis@chevron.com +# Chevron Technical Center, Innovation and HPC R&D +# + +# detect host and name the configuration file +site_name(HOST_NAME) +message("## CVX CMAKE_CURRENT_LIST_DIR = ${CMAKE_CURRENT_LIST_DIR}") + +# Default is ON +set(ENABLE_WARNINGS_AS_ERRORS OFF CACHE BOOL "") + +# Set the directory prefixes for the installation locartion of TPL and GEOS +set(GEOSX_TPL_DIR "$ENV{GEOSX_TPL_DIR}" CACHE PATH "" FORCE) +set(GEOS_TPL_DIR "$ENV{GEOSX_TPL_DIR}" CACHE PATH "" FORCE) +set(GEOSX_DIR "$ENV{GEOSX_DIR}" CACHE PATH "" FORCE) +message("## GEOSX_TPL_DIR = ${GEOSX_TPL_DIR}") +message("## GEOS_TPL_DIR = ${GEOS_TPL_DIR}") +message("## GEOSX_DIR = ${GEOSX_DIR}") + +set(ENABLE_FORTRAN OFF CACHE BOOL "" FORCE) + +set(ENABLE_MPI ON CACHE BOOL "") + +set(MPI_C_COMPILER "$ENV{GEOSX_MPICC}" CACHE PATH "") +set(MPI_CXX_COMPILER "$ENV{GEOSX_MPICXX}" CACHE PATH "") +set(MPI_Fortran_COMPILER "$ENV{GEOSX_MPIFORT}" CACHE PATH "") +set(MPIEXEC "$ENV{GEOSX_MPIRUN}" CACHE PATH "") + +set(ENABLE_WRAP_ALL_TESTS_WITH_MPIEXEC ON CACHE BOOL "") + +set(ENABLE_SPHINX_EXECUTABLE OFF CACHE BOOL "") +set(ENABLE_UNCRUSTIFY ON CACHE BOOL "") +set(ENABLE_DOXYGEN OFF CACHE BOOL "") + +set(ENABLE_ADIAK ON CACHE BOOL "") + +set(ENABLE_CALIPER ON CACHE BOOL "") +set(ENABLE_CALIPER_HYPRE "$ENV{ENABLE_CALIPER_HYPRE}" CACHE BOOL "") +set(ENABLE_CUDA_NVTOOLSEXT "$ENV{ENABLE_CUDA_NVTOOLSEXT}" CACHE BOOL "") + +set(ENABLE_CUDA ON CACHE BOOL "") + +set(CUDA_TOOLKIT_ROOT_DIR "$ENV{CUDA_HOME}" CACHE PATH "") +message(STATUS "## CUDA_TOOLKIT_ROOT_DIR = ${CUDA_TOOLKIT_ROOT_DIR}") +if(ENABLE_CUDA) + # GEOS_USE_DEVICE and CALC_FEM_SHAPE_IN_KERNEL must be defined and visible + set(ENABLE_HYPRE_DEVICE "CUDA" CACHE STRING "") + message(STATUS "## ENABLE_CUDA = ${ENABLE_CUDA}; ENABLE_HYPRE_DEVICE = ${ENABLE_HYPRE_DEVICE}") + + set(ENABLE_CUDA_NVTOOLSEXT "$ENV{ENABLE_CUDA_NVTOOLSEXT}" CACHE BOOL "") + message(STATUS "## ENABLE_CUDA_NVTOOLSEXT = ${ENABLE_CUDA_NVTOOLSEXT}") + + # Tke CUDA ARCHITECTURES from shell environment or set it manually + if(NOT DEFINED CMAKE_CUDA_ARCHITECTURES) + set(CMAKE_CUDA_ARCHITECTURES "$ENV{CMAKE_CUDA_ARCHITECTURES}" CACHE STRING "") + endif() + if(NOT DEFINED CMAKE_CUDA_ARCHITECTURES) + set(CMAKE_CUDA_ARCHITECTURES "90" CACHE STRING "") + endif() + set(CUDA_ARCH "sm_${CMAKE_CUDA_ARCHITECTURES}" CACHE STRING "") + message(STATUS "## CUDA_ARCH = ${CUDA_ARCH}, CMAKE_CUDA_ARCHITECTURES = ${CMAKE_CUDA_ARCHITECTURES}") + + set(CMAKE_CUDA_COMPILER ${CUDA_TOOLKIT_ROOT_DIR}/bin/nvcc CACHE STRING "") + set(CMAKE_CUDA_HOST_COMPILER ${MPI_CXX_COMPILER} CACHE STRING "") + + set(CMAKE_CUDA_FLAGS " $ENV{GEOS_CUDA_FLAGS_CLI} -restrict -arch ${CUDA_ARCH} --expt-extended-lambda --expt-relaxed-constexpr -Werror cross-execution-space-call,reorder,deprecated-declarations " CACHE STRING "") + ## set(CMAKE_CUDA_FLAGS " $ENV{GEOS_CUDA_FLAGS_CLI} -restrict -arch ${CUDA_ARCH} --expt-extended-lambda --expt-relaxed-constexpr -Werror cross-execution-space-call,reorder,deprecated-declarations -Xcompiler -DGEOS_USE_DEVICE -Xcompiler -DCALC_FEM_SHAPE_IN_KERNEL " CACHE STRING "") + message("## ENV{GEOS_CUDA_FLAGS_CLI} = $ENV{GEOS_CUDA_FLAGS_CLI}") + message("## CMAKE_CUDA_FLAGS = ${CMAKE_CUDA_FLAGS}") + + set(CMAKE_CUDA_FLAGS_RELEASE " ${CMAKE_CUDA_FLAGS} -O3 -DNDEBUG -Xcompiler -DNDEBUG -Xcompiler -Ofast " CACHE STRING "") + set(CMAKE_CUDA_FLAGS_RELWITHDEBINFO "-g -lineinfo ${CMAKE_CUDA_FLAGS_RELEASE}" CACHE STRING "") + set(CMAKE_CUDA_FLAGS_DEBUG " ${CMAKE_CUDA_FLAGS} -g -G -O0 -Xcompiler -O0 " CACHE STRING "") + + set(CUDA_SEPARABLE_COMPILATION ON CACHE BOOL "") + + # -D CUPTI_PREFIX=path-to-your-cupti-installation + # set(ENABLE_CALIPER_WITH_CUPTI ON CACHE BOOL "") +endif() + + +# Compilers +message("## ENV{GEOSX_HOST_FLAGS_CLI} = $ENV{GEOSX_HOST_FLAGS_CLI}") +set(CMAKE_C_COMPILER "$ENV{GEOSX_CC}" CACHE PATH "") +set(CMAKE_C_FLAGS_RELEASE " -O3 -Wno-error -pthread -fno-fast-math -DNDEBUG $ENV{GEOS_HOST_FLAGS_CLI} " CACHE STRING "") +# set(CMAKE_C_FLAGS_RELEASE " -O3 -fast -DNDEBUG -L${CUDA_TOOLKIT_LIB_DIR} " CACHE STRING "") +set(CMAKE_C_FLAGS_RELWITHDEBINFO "-g ${CMAKE_C_FLAGS_RELEASE} " CACHE STRING "") +set(CMAKE_C_FLAGS_DEBUG "-O0 -g $ENV{GEOSX_HOST_FLAGS_CLI} " CACHE STRING "") + +set(CMAKE_CXX_COMPILER "$ENV{GEOSX_CXX}" CACHE PATH "") +set(CMAKE_CXX_FLAGS_RELEASE " ${CMAKE_C_FLAGS_RELEASE} " CACHE STRING "") +set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-g ${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g $ENV{GEOS_HOST_FLAGS_CLI} " CACHE STRING "") +# set(CMAKE_CXX_STANDARD 17 CACHE STRING "") + +set(CMAKE_Fortran_COMPILER "$ENV{GEOSX_FORT}" CACHE PATH "") +set(CMAKE_Fortran_FLAGS_RELEASE " ${CMAKE_C_FLAGS_RELEASE} " CACHE STRING "") +set(CMAKE_Fortran_FLAGS_RELWITHDEBINFO "-g ${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_Fortran_FLAGS_DEBUG "-O0 -g $ENV{GEOS_HOST_FLAGS_CLI} " CACHE STRING "") +set(ENABLE_FORTRAN OFF CACHE BOOL "" FORCE) + +set(ENABLE_HYPRE ON CACHE BOOL "" FORCE) +set(ENABLE_HYPRE_CUDA ON CACHE BOOL "" FORCE) +set(ENABLE_OPENMP ON CACHE BOOL "" FORCE) + +if(ENABLE_HYPRE_CUDA) + set(ENABLE_PETSC OFF CACHE BOOL "") + set(ENABLE_TRILINOS OFF CACHE BOOL "") + set(GEOSX_LA_INTERFACE "Hypre" CACHE STRING "") + # set(ENABLE_HYPRE OFF CACHE BOOL "" FORCE) +endif() + + +# Hypre ON + +if( (ENABLE_HYPRE_CUDA AND ENABLE_TRILINOS_CUDA) OR (NOT ENABLE_TRILINOS_CUDA AND NOT ENABLE_HYPRE_CUDA) ) + MESSAGE(SEND_ERROR "Exactly one of ENABLE_HYPRE and ENABLE_TRILINOS must be defined.") + MESSAGE(SEND_ERROR "ENABLE_HYPRE = ${ENABLE_HYPRE}.") + MESSAGE(SEND_ERROR "ENABLE_TRILINOS = ${ENABLE_TRILINOS}.") +endif() + +MESSAGE(STATUS "## GEOSX_LA_INTERFACE = ${GEOSX_LA_INTERFACE}") + +# disable PAMELA and enable PVTPackage +set(ENABLE_PAMELA OFF CACHE BOOL "" FORCE) +set(ENABLE_PVTPackage ON CACHE BOOL "" FORCE) + +set(ENABLE_VALGRIND OFF CACHE BOOL "") +set(ENABLE_CALIPER ON CACHE BOOL "") + +# disable Doxygen +set(ENABLE_DOXYGEN OFF CACHE PATH "") + +# enable tests +set(ENABLE_GTEST_DEATH_TESTS ON CACHE BOOL "" FORCE ) + +# let GEOSX define some third party libraries information for you +message("## tpls.cmake = ${CMAKE_CURRENT_LIST_DIR}/../tpls.cmake") +include(${CMAKE_CURRENT_LIST_DIR}/../tpls.cmake) +message("## CMAKE_CURRENT_LIST_DIR = ${CMAKE_CURRENT_LIST_DIR}") + + +# Python options +#set(ENABLE_PYLVARRAY ON CACHE BOOL "") +#set(ENABLE_PYGEOSX ON CACHE BOOL "") +#set(PYTHON_DIR "/share/software/user/open/python/3.6.1" CACHE PATH "") +#set(Python3_EXECUTABLE "/share/software/user/open/python/3.6.1/bin/python3" CACHE PATH "") + +## Nvidia HPC SDK +# set(CUDA_TOOLKIT_LIB_DIR "${CUDA_TOOLKIT_ROOT_DIR}/cuda/11.7/lib64:${CUDA_TOOLKIT_ROOT_DIR}/math_libs/lib64" CACHE PATH "") +# message("## CUDA_TOOLKIT_LIB_DIR = ${CUDA_TOOLKIT_LIB_DIR}") +# set(LAPACK_LIBRARIES "$ENV{NVHPC_ROOT}/math_libs/lib64/liblapack_static.a" CACHE STRING "") +# message("## LAPACK_LIBRARIES = ${LAPACK_LIBRARIES}") +# set(BLAS_LIBRARIES "$ENV{NVHPC_ROOT}/math_libs/lib64/libnvblas.so" CACHE STRING "") +# message("## BLAS_LIBRARIES = ${BLAS_LIBRARIES}") + +# CUDA RT libs at +# /data/saet/mtml/software/aarch64/nvidia/hpc_sdk/Linux_aarch64/22.7/cuda/11.7/lib64/ +# set(CUDA_TOOLKIT_ROOT_DIR "$ENV{NVHPC_ROOT}/cuda/11.7" CACHE PATH "") +# set(CMAKE_CUDA_FLAGS "-restrict -arch ${CUDA_ARCH} --expt-extended-lambda --expt-relaxed-constexpr -Werror cross-execution-space-call,reorder,deprecated-declarations --library-path=${CUDA_TOOLKIT_LIB_DIR} -L${CUDA_TOOLKIT_LIB_DIR} " CACHE STRING "") +# --library-path=${CUDA_TOOLKIT_LIB_DIR} + +# set(CMAKE_EXE_LINKER_FLAGS " -L${CUDA_TOOLKIT_LIB_DIR} " CACHE STRING "") +# //Flags used by the linker during DEBUG builds. +# set(CMAKE_EXE_LINKER_FLAGS_DEBUG " ${CMAKE_EXE_LINKER_FLAGS} " CACHE STRING "") +# //Flags used by the linker during MINSIZEREL builds. +# CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= +# //Flags used by the linker during RELEASE builds. +# set(CMAKE_EXE_LINKER_FLAGS_RELEASE " ${CMAKE_EXE_LINKER_FLAGS} " CACHE STRING "") +# //Flags used by the linker during RELWITHDEBINFO builds. +# set(CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO " ${CMAKE_EXE_LINKER_FLAGS} " CACHE STRING "") + diff --git a/host-configs/CVX/GPU-Hopper-Hypre-GCC-CUDA_11.8-MPI-OMP.cmake b/host-configs/CVX/GPU-Hopper-Hypre-GCC-CUDA_11.8-MPI-OMP.cmake new file mode 120000 index 00000000000..3d9b6ff5f52 --- /dev/null +++ b/host-configs/CVX/GPU-Hopper-Hypre-GCC-CUDA_11.8-MPI-OMP.cmake @@ -0,0 +1 @@ +GPU-Hopper-Hypre-GCC-CUDA-MPI-OMP.cmake \ No newline at end of file diff --git a/host-configs/CVX/GPU-Hopper-Hypre-GCC-CUDA_11.8-impi_1-api-OMP.cmake b/host-configs/CVX/GPU-Hopper-Hypre-GCC-CUDA_11.8-impi_1-api-OMP.cmake new file mode 120000 index 00000000000..3d9b6ff5f52 --- /dev/null +++ b/host-configs/CVX/GPU-Hopper-Hypre-GCC-CUDA_11.8-impi_1-api-OMP.cmake @@ -0,0 +1 @@ +GPU-Hopper-Hypre-GCC-CUDA-MPI-OMP.cmake \ No newline at end of file diff --git a/host-configs/CVX/GPU-Hopper-Hypre-GCC-CUDA_11.8-ompi_hpcx-OMP.cmake b/host-configs/CVX/GPU-Hopper-Hypre-GCC-CUDA_11.8-ompi_hpcx-OMP.cmake new file mode 120000 index 00000000000..3d9b6ff5f52 --- /dev/null +++ b/host-configs/CVX/GPU-Hopper-Hypre-GCC-CUDA_11.8-ompi_hpcx-OMP.cmake @@ -0,0 +1 @@ +GPU-Hopper-Hypre-GCC-CUDA-MPI-OMP.cmake \ No newline at end of file diff --git a/host-configs/CVX/GPU-Hopper-Hypre-GCC-CUDA_12.2-ompi_hpcx-OMP.cmake b/host-configs/CVX/GPU-Hopper-Hypre-GCC-CUDA_12.2-ompi_hpcx-OMP.cmake new file mode 120000 index 00000000000..3d9b6ff5f52 --- /dev/null +++ b/host-configs/CVX/GPU-Hopper-Hypre-GCC-CUDA_12.2-ompi_hpcx-OMP.cmake @@ -0,0 +1 @@ +GPU-Hopper-Hypre-GCC-CUDA-MPI-OMP.cmake \ No newline at end of file diff --git a/host-configs/CVX/GPU-Hopper-Hypre-GCC-CUDA_12.3-MPI-OMP.cmake b/host-configs/CVX/GPU-Hopper-Hypre-GCC-CUDA_12.3-MPI-OMP.cmake new file mode 120000 index 00000000000..3d9b6ff5f52 --- /dev/null +++ b/host-configs/CVX/GPU-Hopper-Hypre-GCC-CUDA_12.3-MPI-OMP.cmake @@ -0,0 +1 @@ +GPU-Hopper-Hypre-GCC-CUDA-MPI-OMP.cmake \ No newline at end of file diff --git a/host-configs/CVX/GPU-Hopper-Hypre-GCC-CUDA_12.5-ompi_hpcx-OMP.cmake b/host-configs/CVX/GPU-Hopper-Hypre-GCC-CUDA_12.5-ompi_hpcx-OMP.cmake new file mode 120000 index 00000000000..3d9b6ff5f52 --- /dev/null +++ b/host-configs/CVX/GPU-Hopper-Hypre-GCC-CUDA_12.5-ompi_hpcx-OMP.cmake @@ -0,0 +1 @@ +GPU-Hopper-Hypre-GCC-CUDA-MPI-OMP.cmake \ No newline at end of file diff --git a/host-configs/CVX/GPU-Hopper-Hypre-GCC-CUDA_12.6-MPI-OMP.cmake b/host-configs/CVX/GPU-Hopper-Hypre-GCC-CUDA_12.6-MPI-OMP.cmake new file mode 120000 index 00000000000..3d9b6ff5f52 --- /dev/null +++ b/host-configs/CVX/GPU-Hopper-Hypre-GCC-CUDA_12.6-MPI-OMP.cmake @@ -0,0 +1 @@ +GPU-Hopper-Hypre-GCC-CUDA-MPI-OMP.cmake \ No newline at end of file diff --git a/host-configs/CVX/GPU-Hypre-GCC-CUDA-MPI-OMP.cmake b/host-configs/CVX/GPU-Hypre-GCC-CUDA-MPI-OMP.cmake new file mode 100644 index 00000000000..d77bcce3cf7 --- /dev/null +++ b/host-configs/CVX/GPU-Hypre-GCC-CUDA-MPI-OMP.cmake @@ -0,0 +1,176 @@ +#------------------------------------------------------------------------------ +# CUDA support +#------------------------------------------------------------------------------ +# _blt_tutorial_surface_cuda_config_start +# +# CVX Generic .cmake for Nvidia GPUs: GCC, CUDA and Open or Intel MPI ; OpenMP enabled +# +# Michael E. Thomadakis michael.thomadakis@chevron.com +# Chevron Technical Center, Innovation and HPC R&D +# + +# detect host and name the configuration file +site_name(HOST_NAME) +message("## CVX CMAKE_CURRENT_LIST_DIR = ${CMAKE_CURRENT_LIST_DIR}") + +# Default is ON +set(ENABLE_WARNINGS_AS_ERRORS OFF CACHE BOOL "") + +# Info +set(GEOSX_TPL_DIR "$ENV{GEOSX_TPL_DIR}" CACHE PATH "" FORCE) +set(GEOS_TPL_DIR "$ENV{GEOSX_TPL_DIR}" CACHE PATH "" FORCE) +set(GEOSX_DIR "$ENV{GEOSX_DIR}" CACHE PATH "" FORCE) +message("## GEOSX_TPL_DIR = ${GEOSX_TPL_DIR}") +message("## GEOS_TPL_DIR = ${GEOS_TPL_DIR}") +message("## GEOSX_DIR = ${GEOSX_DIR}") + +set(ENABLE_FORTRAN OFF CACHE BOOL "" FORCE) + +set(ENABLE_MPI ON CACHE BOOL "") + +set(MPI_C_COMPILER "$ENV{GEOSX_MPICC}" CACHE PATH "") +set(MPI_CXX_COMPILER "$ENV{GEOSX_MPICXX}" CACHE PATH "") +set(MPI_Fortran_COMPILER "$ENV{GEOSX_MPIFORT}" CACHE PATH "") +set(MPIEXEC "$ENV{GEOSX_MPIRUN}" CACHE PATH "") + +set(ENABLE_WRAP_ALL_TESTS_WITH_MPIEXEC ON CACHE BOOL "") + +set(ENABLE_SPHINX_EXECUTABLE OFF CACHE BOOL "") +set(ENABLE_UNCRUSTIFY ON CACHE BOOL "") +set(ENABLE_DOXYGEN OFF CACHE BOOL "") + +set(ENABLE_ADIAK ON CACHE BOOL "") + +set(ENABLE_CALIPER ON CACHE BOOL "") +set(ENABLE_CALIPER_HYPRE "$ENV{ENABLE_CALIPER_HYPRE}" CACHE BOOL "") +set(ENABLE_CUDA_NVTOOLSEXT "$ENV{ENABLE_CUDA_NVTOOLSEXT}" CACHE BOOL "") + +## For HIP +## set( ENABLE_HYPRE_DEVICE "HIP" CACHE STRING "" ) +set(ENABLE_CUDA ON CACHE BOOL "") +set(CUDA_TOOLKIT_ROOT_DIR "$ENV{CUDA_HOME}" CACHE PATH "") +message("## CUDA_TOOLKIT_ROOT_DIR = ${CUDA_TOOLKIT_ROOT_DIR}") + +if(ENABLE_CUDA) + # GEOS_USE_DEVICE and CALC_FEM_SHAPE_IN_KERNEL must be defined and visible + set(ENABLE_HYPRE_DEVICE "CUDA" CACHE STRING "") + message("## ENABLE_CUDA = ${ENABLE_CUDA}; ENABLE_HYPRE_DEVICE = ${ENABLE_HYPRE_DEVICE}") + + set(ENABLE_CUDA_NVTOOLSEXT "$ENV{ENABLE_CUDA_NVTOOLSEXT}" CACHE BOOL "") + message("## ENABLE_CUDA_NVTOOLSEXT = ${ENABLE_CUDA_NVTOOLSEXT}") + + set(CUDA_ARCH sm_80 CACHE STRING "") + set(CMAKE_CUDA_ARCHITECTURES 80 CACHE STRING "") + + set(CMAKE_CUDA_COMPILER ${CUDA_TOOLKIT_ROOT_DIR}/bin/nvcc CACHE STRING "") + set(CMAKE_CUDA_HOST_COMPILER ${MPI_CXX_COMPILER} CACHE STRING "") + + set(CMAKE_CUDA_STANDARD 17 CACHE STRING "") + set(CHAI_CUDA_FLAGS "-arch ${CUDA_ARCH}" CACHE STRING "" FORCE) + + set(CMAKE_CUDA_FLAGS " $ENV{GEOS_CUDA_FLAGS_CLI} -restrict -arch ${CUDA_ARCH} --expt-extended-lambda --expt-relaxed-constexpr -Werror cross-execution-space-call,reorder,deprecated-declarations " CACHE STRING "") + message("## ENV{GEOS_CUDA_FLAGS_CLI} = $ENV{GEOS_CUDA_FLAGS_CLI}") + message("## CMAKE_CUDA_FLAGS = ${CMAKE_CUDA_FLAGS}") + + set(CMAKE_CUDA_FLAGS_RELEASE " -O3 -ftz=true -Xcompiler -O3 -Xcompiler -fno-fast-math -Xcompiler -mdaz-ftz -DNDEBUG " CACHE STRING "") + set(CMAKE_CUDA_FLAGS_RELWITHDEBINFO "-g -lineinfo ${CMAKE_CUDA_FLAGS_RELEASE}" CACHE STRING "") + set(CMAKE_CUDA_FLAGS_DEBUG " ${CMAKE_CUDA_FLAGS} -g -G -O0 -Xcompiler -O0 " CACHE STRING "") + + set(CUDA_SEPARABLE_COMPILATION ON CACHE BOOL "") + + ## set(CMAKE_CUDA_FLAGS " $ENV{GEOS_CUDA_FLAGS_CLI} -restrict -arch ${CUDA_ARCH} --expt-extended-lambda --expt-relaxed-constexpr -Werror cross-execution-space-call,reorder,deprecated-declarations -Xcompiler -DGEOS_USE_DEVICE -Xcompiler -DCALC_FEM_SHAPE_IN_KERNEL " CACHE STRING "") + + # -D CUPTI_PREFIX=path-to-your-cupti-installation + # set(ENABLE_CALIPER_WITH_CUPTI ON CACHE BOOL "") +endif() + +# Compilers +message("## ENV{GEOSX_HOST_FLAGS_CLI} = $ENV{GEOSX_HOST_FLAGS_CLI}") +set(CMAKE_C_COMPILER "$ENV{GEOSX_CC}" CACHE PATH "") +set(CMAKE_C_FLAGS_RELEASE " $ENV{GEOSX_HOST_FLAGS_CLI} -O3 -Wno-error -pthread -fno-fast-math -DNDEBUG $ENV{GEOS_HOST_FLAGS_CLI} " CACHE STRING "") +# set(CMAKE_C_FLAGS_RELEASE " -O3 -fast -DNDEBUG -L${CUDA_TOOLKIT_LIB_DIR} " CACHE STRING "") +set(CMAKE_C_FLAGS_RELWITHDEBINFO "-g ${CMAKE_C_FLAGS_RELEASE} " CACHE STRING "") +set(CMAKE_C_FLAGS_DEBUG "-O0 -g $ENV{GEOSX_HOST_FLAGS_CLI} " CACHE STRING "") + +set(CMAKE_CXX_COMPILER "$ENV{GEOSX_CXX}" CACHE PATH "") +set(CMAKE_CXX_FLAGS_RELEASE " ${CMAKE_C_FLAGS_RELEASE} " CACHE STRING "") +set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-g ${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g $ENV{GEOS_HOST_FLAGS_CLI} " CACHE STRING "") +# set(CMAKE_CXX_STANDARD 17 CACHE STRING "") + +set(CMAKE_Fortran_COMPILER "$ENV{GEOSX_FORT}" CACHE PATH "") +set(CMAKE_Fortran_FLAGS_RELEASE " ${CMAKE_C_FLAGS_RELEASE} " CACHE STRING "") +set(CMAKE_Fortran_FLAGS_RELWITHDEBINFO "-g ${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_Fortran_FLAGS_DEBUG "-O0 -g $ENV{GEOS_HOST_FLAGS_CLI} " CACHE STRING "") +set(ENABLE_FORTRAN OFF CACHE BOOL "" FORCE) + +set(ENABLE_HYPRE ON CACHE BOOL "" FORCE) +set(ENABLE_HYPRE_CUDA ON CACHE BOOL "" FORCE) +set(ENABLE_OPENMP ON CACHE BOOL "" FORCE) + +if(ENABLE_HYPRE_CUDA) + set(ENABLE_PETSC OFF CACHE BOOL "") + set(ENABLE_TRILINOS OFF CACHE BOOL "") + set(GEOSX_LA_INTERFACE "Hypre" CACHE STRING "") + # set(ENABLE_HYPRE OFF CACHE BOOL "" FORCE) +endif() + +# Hypre ON + +if( (ENABLE_HYPRE_CUDA AND ENABLE_TRILINOS_CUDA) OR (NOT ENABLE_TRILINOS_CUDA AND NOT ENABLE_HYPRE_CUDA) ) + MESSAGE(SEND_ERROR "Exactly one of ENABLE_HYPRE and ENABLE_TRILINOS must be defined.") + MESSAGE(SEND_ERROR "ENABLE_HYPRE = ${ENABLE_HYPRE}.") + MESSAGE(SEND_ERROR "ENABLE_TRILINOS = ${ENABLE_TRILINOS}.") +endif() + +MESSAGE(STATUS "## GEOSX_LA_INTERFACE = ${GEOSX_LA_INTERFACE}") + +# disable PAMELA and enable PVTPackage +set(ENABLE_PAMELA OFF CACHE BOOL "" FORCE) +set(ENABLE_PVTPackage ON CACHE BOOL "" FORCE) + +set(ENABLE_VALGRIND OFF CACHE BOOL "") +set(ENABLE_CALIPER ON CACHE BOOL "") + +# disable Doxygen +set(ENABLE_DOXYGEN OFF CACHE PATH "") + +# enable tests +set(ENABLE_GTEST_DEATH_TESTS ON CACHE BOOL "" FORCE ) + +# let GEOSX define some third party libraries information for you +message("## tpls.cmake = ${CMAKE_CURRENT_LIST_DIR}/../tpls.cmake") +include(${CMAKE_CURRENT_LIST_DIR}/../tpls.cmake) +message("## CMAKE_CURRENT_LIST_DIR = ${CMAKE_CURRENT_LIST_DIR}") + + +# Python options +#set(ENABLE_PYLVARRAY ON CACHE BOOL "") +#set(ENABLE_PYGEOSX ON CACHE BOOL "") +#set(PYTHON_DIR "/share/software/user/open/python/3.6.1" CACHE PATH "") +#set(Python3_EXECUTABLE "/share/software/user/open/python/3.6.1/bin/python3" CACHE PATH "") + +## Nvidia HPC SDK +# set(CUDA_TOOLKIT_LIB_DIR "${CUDA_TOOLKIT_ROOT_DIR}/cuda/11.7/lib64:${CUDA_TOOLKIT_ROOT_DIR}/math_libs/lib64" CACHE PATH "") +# message("## CUDA_TOOLKIT_LIB_DIR = ${CUDA_TOOLKIT_LIB_DIR}") +# set(LAPACK_LIBRARIES "$ENV{NVHPC_ROOT}/math_libs/lib64/liblapack_static.a" CACHE STRING "") +# message("## LAPACK_LIBRARIES = ${LAPACK_LIBRARIES}") +# set(BLAS_LIBRARIES "$ENV{NVHPC_ROOT}/math_libs/lib64/libnvblas.so" CACHE STRING "") +# message("## BLAS_LIBRARIES = ${BLAS_LIBRARIES}") + +# CUDA RT libs at +# /data/saet/mtml/software/aarch64/nvidia/hpc_sdk/Linux_aarch64/22.7/cuda/11.7/lib64/ +# set(CUDA_TOOLKIT_ROOT_DIR "$ENV{NVHPC_ROOT}/cuda/11.7" CACHE PATH "") +# set(CMAKE_CUDA_FLAGS "-restrict -arch ${CUDA_ARCH} --expt-extended-lambda --expt-relaxed-constexpr -Werror cross-execution-space-call,reorder,deprecated-declarations --library-path=${CUDA_TOOLKIT_LIB_DIR} -L${CUDA_TOOLKIT_LIB_DIR} " CACHE STRING "") +# --library-path=${CUDA_TOOLKIT_LIB_DIR} + +# set(CMAKE_EXE_LINKER_FLAGS " -L${CUDA_TOOLKIT_LIB_DIR} " CACHE STRING "") +# //Flags used by the linker during DEBUG builds. +# set(CMAKE_EXE_LINKER_FLAGS_DEBUG " ${CMAKE_EXE_LINKER_FLAGS} " CACHE STRING "") +# //Flags used by the linker during MINSIZEREL builds. +# CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= +# //Flags used by the linker during RELEASE builds. +# set(CMAKE_EXE_LINKER_FLAGS_RELEASE " ${CMAKE_EXE_LINKER_FLAGS} " CACHE STRING "") +# //Flags used by the linker during RELWITHDEBINFO builds. +# set(CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO " ${CMAKE_EXE_LINKER_FLAGS} " CACHE STRING "") + diff --git a/host-configs/CVX/GPU-Hypre-GCC-CUDA-impi_2021.08-OMP.cmake b/host-configs/CVX/GPU-Hypre-GCC-CUDA-impi_2021.08-OMP.cmake new file mode 120000 index 00000000000..cd195019375 --- /dev/null +++ b/host-configs/CVX/GPU-Hypre-GCC-CUDA-impi_2021.08-OMP.cmake @@ -0,0 +1 @@ +GPU-Hypre-GCC-CUDA-MPI-OMP.cmake \ No newline at end of file diff --git a/host-configs/CVX/GPU-Hypre-GCC-CUDA-ompi_hpcx-OMP.cmake b/host-configs/CVX/GPU-Hypre-GCC-CUDA-ompi_hpcx-OMP.cmake new file mode 120000 index 00000000000..cd195019375 --- /dev/null +++ b/host-configs/CVX/GPU-Hypre-GCC-CUDA-ompi_hpcx-OMP.cmake @@ -0,0 +1 @@ +GPU-Hypre-GCC-CUDA-MPI-OMP.cmake \ No newline at end of file diff --git a/host-configs/CVX/GPU-Hypre-GCC-CUDA_11.7-impi_2021.08-OMP.cmake b/host-configs/CVX/GPU-Hypre-GCC-CUDA_11.7-impi_2021.08-OMP.cmake new file mode 120000 index 00000000000..c1416f1c3a6 --- /dev/null +++ b/host-configs/CVX/GPU-Hypre-GCC-CUDA_11.7-impi_2021.08-OMP.cmake @@ -0,0 +1 @@ +GPU-Hypre-GCC-CUDA-impi_2021.08-OMP.cmake \ No newline at end of file diff --git a/host-configs/CVX/GPU-Hypre-GCC-CUDA_11.7-ompi_hpcx-OMP.cmake b/host-configs/CVX/GPU-Hypre-GCC-CUDA_11.7-ompi_hpcx-OMP.cmake new file mode 120000 index 00000000000..fdb84bbd12e --- /dev/null +++ b/host-configs/CVX/GPU-Hypre-GCC-CUDA_11.7-ompi_hpcx-OMP.cmake @@ -0,0 +1 @@ +GPU-Hypre-GCC-CUDA-ompi_hpcx-OMP.cmake \ No newline at end of file diff --git a/host-configs/CVX/GPU-Hypre-GCC-CUDA_11.8-impi_2021.08-OMP.cmake b/host-configs/CVX/GPU-Hypre-GCC-CUDA_11.8-impi_2021.08-OMP.cmake new file mode 120000 index 00000000000..c1416f1c3a6 --- /dev/null +++ b/host-configs/CVX/GPU-Hypre-GCC-CUDA_11.8-impi_2021.08-OMP.cmake @@ -0,0 +1 @@ +GPU-Hypre-GCC-CUDA-impi_2021.08-OMP.cmake \ No newline at end of file diff --git a/host-configs/CVX/GPU-Hypre-GCC-CUDA_11.8-impi_2021.09-OMP.cmake b/host-configs/CVX/GPU-Hypre-GCC-CUDA_11.8-impi_2021.09-OMP.cmake new file mode 120000 index 00000000000..c1416f1c3a6 --- /dev/null +++ b/host-configs/CVX/GPU-Hypre-GCC-CUDA_11.8-impi_2021.09-OMP.cmake @@ -0,0 +1 @@ +GPU-Hypre-GCC-CUDA-impi_2021.08-OMP.cmake \ No newline at end of file diff --git a/host-configs/CVX/GPU-Hypre-GCC-CUDA_11.8-ompi_hpcx-OMP.cmake b/host-configs/CVX/GPU-Hypre-GCC-CUDA_11.8-ompi_hpcx-OMP.cmake new file mode 120000 index 00000000000..fdb84bbd12e --- /dev/null +++ b/host-configs/CVX/GPU-Hypre-GCC-CUDA_11.8-ompi_hpcx-OMP.cmake @@ -0,0 +1 @@ +GPU-Hypre-GCC-CUDA-ompi_hpcx-OMP.cmake \ No newline at end of file diff --git a/host-configs/CVX/GPU-Hypre-GCC-CUDA_12.0-impi_2021.09-OMP.cmake b/host-configs/CVX/GPU-Hypre-GCC-CUDA_12.0-impi_2021.09-OMP.cmake new file mode 120000 index 00000000000..c1416f1c3a6 --- /dev/null +++ b/host-configs/CVX/GPU-Hypre-GCC-CUDA_12.0-impi_2021.09-OMP.cmake @@ -0,0 +1 @@ +GPU-Hypre-GCC-CUDA-impi_2021.08-OMP.cmake \ No newline at end of file diff --git a/host-configs/CVX/GPU-Hypre-GCC-CUDA_12.2-impi_2021.08-OMP.cmake b/host-configs/CVX/GPU-Hypre-GCC-CUDA_12.2-impi_2021.08-OMP.cmake new file mode 120000 index 00000000000..c1416f1c3a6 --- /dev/null +++ b/host-configs/CVX/GPU-Hypre-GCC-CUDA_12.2-impi_2021.08-OMP.cmake @@ -0,0 +1 @@ +GPU-Hypre-GCC-CUDA-impi_2021.08-OMP.cmake \ No newline at end of file diff --git a/host-configs/CVX/GPU-Hypre-GCC-CUDA_12.2-ompi_hpcx-OMP.cmake b/host-configs/CVX/GPU-Hypre-GCC-CUDA_12.2-ompi_hpcx-OMP.cmake new file mode 120000 index 00000000000..fdb84bbd12e --- /dev/null +++ b/host-configs/CVX/GPU-Hypre-GCC-CUDA_12.2-ompi_hpcx-OMP.cmake @@ -0,0 +1 @@ +GPU-Hypre-GCC-CUDA-ompi_hpcx-OMP.cmake \ No newline at end of file diff --git a/host-configs/CVX/GPU-Hypre-GCC-CUDA_12.3-impi_2021.08-OMP.cmake b/host-configs/CVX/GPU-Hypre-GCC-CUDA_12.3-impi_2021.08-OMP.cmake new file mode 120000 index 00000000000..c1416f1c3a6 --- /dev/null +++ b/host-configs/CVX/GPU-Hypre-GCC-CUDA_12.3-impi_2021.08-OMP.cmake @@ -0,0 +1 @@ +GPU-Hypre-GCC-CUDA-impi_2021.08-OMP.cmake \ No newline at end of file diff --git a/host-configs/CVX/GPU-Hypre-GCC-CUDA_12.3-ompi_hpcx-OMP.cmake b/host-configs/CVX/GPU-Hypre-GCC-CUDA_12.3-ompi_hpcx-OMP.cmake new file mode 120000 index 00000000000..fdb84bbd12e --- /dev/null +++ b/host-configs/CVX/GPU-Hypre-GCC-CUDA_12.3-ompi_hpcx-OMP.cmake @@ -0,0 +1 @@ +GPU-Hypre-GCC-CUDA-ompi_hpcx-OMP.cmake \ No newline at end of file diff --git a/host-configs/CVX/GPU-Hypre-GCC-CUDA_12.5-ompi_hpcx-OMP.cmake b/host-configs/CVX/GPU-Hypre-GCC-CUDA_12.5-ompi_hpcx-OMP.cmake new file mode 120000 index 00000000000..fdb84bbd12e --- /dev/null +++ b/host-configs/CVX/GPU-Hypre-GCC-CUDA_12.5-ompi_hpcx-OMP.cmake @@ -0,0 +1 @@ +GPU-Hypre-GCC-CUDA-ompi_hpcx-OMP.cmake \ No newline at end of file diff --git a/host-configs/CVX/GPU-Hypre-GCC-CUDA_12.6-ompi_hpcx-OMP.cmake b/host-configs/CVX/GPU-Hypre-GCC-CUDA_12.6-ompi_hpcx-OMP.cmake new file mode 120000 index 00000000000..fdb84bbd12e --- /dev/null +++ b/host-configs/CVX/GPU-Hypre-GCC-CUDA_12.6-ompi_hpcx-OMP.cmake @@ -0,0 +1 @@ +GPU-Hypre-GCC-CUDA-ompi_hpcx-OMP.cmake \ No newline at end of file diff --git a/host-configs/CVX/GPU-Hypre-oblas-GCC-CUDA_12.2-ompi_hpcx-OMP.cmake b/host-configs/CVX/GPU-Hypre-oblas-GCC-CUDA_12.2-ompi_hpcx-OMP.cmake new file mode 100644 index 00000000000..966cd7ef1ef --- /dev/null +++ b/host-configs/CVX/GPU-Hypre-oblas-GCC-CUDA_12.2-ompi_hpcx-OMP.cmake @@ -0,0 +1,184 @@ +#------------------------------------------------------------------------------ +# CUDA support +#------------------------------------------------------------------------------ +# _blt_tutorial_surface_cuda_config_start +# +# CVX .cmake for Nvidia nvcc and OpenMPI MPI; OpenMP enabled +# For Nvidia LauncPad environment +# +# Michael E. Thomadakis michael.thomadakis@chevron.com +# Chevron Technical Center, Innovation and HPC R&D +# + +# detect host and name the configuration file +site_name(HOST_NAME) +message("## CVX CMAKE_CURRENT_LIST_DIR = ${CMAKE_CURRENT_LIST_DIR}") + +# Default is ON +set(ENABLE_WARNINGS_AS_ERRORS OFF CACHE BOOL "") + +# Info +set(GEOSX_TPL_DIR "$ENV{GEOSX_TPL_DIR}" CACHE PATH "" FORCE) +set(GEOS_TPL_DIR "$ENV{GEOSX_TPL_DIR}" CACHE PATH "" FORCE) +set(GEOSX_DIR "$ENV{GEOSX_DIR}" CACHE PATH "" FORCE) +message("## GEOSX_TPL_DIR = ${GEOSX_TPL_DIR}") +message("## GEOS_TPL_DIR = ${GEOS_TPL_DIR}") +message("## GEOSX_DIR = ${GEOSX_DIR}") + +set(ENABLE_FORTRAN OFF CACHE BOOL "" FORCE) + +set(ENABLE_MPI ON CACHE BOOL "") + +set(MPI_C_COMPILER "$ENV{GEOSX_MPICC}" CACHE PATH "") +set(MPI_CXX_COMPILER "$ENV{GEOSX_MPICXX}" CACHE PATH "") +set(MPI_Fortran_COMPILER "$ENV{GEOSX_MPIFORT}" CACHE PATH "") +set(MPIEXEC "$ENV{GEOSX_MPIRUN}" CACHE PATH "") + +set(ENABLE_WRAP_ALL_TESTS_WITH_MPIEXEC ON CACHE BOOL "") + +set(ENABLE_SPHINX_EXECUTABLE OFF CACHE BOOL "") +set(ENABLE_UNCRUSTIFY ON CACHE BOOL "") +set(ENABLE_DOXYGEN OFF CACHE BOOL "") + +set(ENABLE_CALIPER ON CACHE BOOL "") +set(ENABLE_CALIPER_HYPRE "$ENV{ENABLE_CALIPER_HYPRE}" CACHE BOOL "") +set(ENABLE_CUDA_NVTOOLSEXT "$ENV{ENABLE_CUDA_NVTOOLSEXT}" CACHE BOOL "") +set(ENABLE_ADIAK ON CACHE BOOL "") + +set(ENABLE_CUDA ON CACHE BOOL "") +# set(ENABLE_CUDA ON CACHE PATH "" FORCE) + +set(CUDA_TOOLKIT_ROOT_DIR "$ENV{CUDA_HOME}" CACHE PATH "") +message("## CUDA_TOOLKIT_ROOT_DIR = ${CUDA_TOOLKIT_ROOT_DIR}") +if(ENABLE_CUDA) + # GEOS_USE_DEVICE and CALC_FEM_SHAPE_IN_KERNEL must be defined and visible + + set(ENABLE_HYPRE_DEVICE "CUDA" CACHE STRING "") + message("## ENABLE_CUDA = ${ENABLE_CUDA}; ENABLE_HYPRE_DEVICE = ${ENABLE_HYPRE_DEVICE}") + + set(ENABLE_CUDA_NVTOOLSEXT "$ENV{ENABLE_CUDA_NVTOOLSEXT}" CACHE BOOL "") + message("## ENABLE_CUDA_NVTOOLSEXT = ${ENABLE_CUDA_NVTOOLSEXT}") + + # H100, H200 sm_90 + set(CUDA_ARCH sm_90 CACHE STRING "") + set(CMAKE_CUDA_ARCHITECTURES 90 CACHE STRING "") + + set(CMAKE_CUDA_COMPILER ${CUDA_TOOLKIT_ROOT_DIR}/bin/nvcc CACHE STRING "") + set(CMAKE_CUDA_HOST_COMPILER ${MPI_CXX_COMPILER} CACHE STRING "") + # set(CMAKE_CUDA_STANDARD 14 CACHE STRING "") + set(CMAKE_CUDA_FLAGS " $ENV{GEOS_CUDA_FLAGS_CLI} -restrict -arch ${CUDA_ARCH} --expt-extended-lambda --expt-relaxed-constexpr -Werror cross-execution-space-call,reorder,deprecated-declarations -Xcompiler -DGEOS_USE_DEVICE -Xcompiler -DCALC_FEM_SHAPE_IN_KERNEL " CACHE STRING "") + set(CMAKE_CUDA_FLAGS_RELEASE " ${CMAKE_CUDA_FLAGS} -O3 -DNDEBUG -Xcompiler -DNDEBUG -Xcompiler -Ofast " CACHE STRING "") + set(CMAKE_CUDA_FLAGS_RELWITHDEBINFO "-g -lineinfo ${CMAKE_CUDA_FLAGS_RELEASE}" CACHE STRING "") + set(CMAKE_CUDA_FLAGS_DEBUG " ${CMAKE_CUDA_FLAGS} -g -G -O0 -Xcompiler -O0 " CACHE STRING "") + + set(CUDA_SEPARABLE_COMPILATION ON CACHE BOOL "") + + # CHECK A100 + # -D CUPTI_PREFIX=path-to-your-cupti-installation + # set(ENABLE_CALIPER_WITH_CUPTI ON CACHE BOOL "") + +endif() + + +# Compilers + +# --library-path=${CUDA_TOOLKIT_LIB_DIR} + +set(CMAKE_C_COMPILER "$ENV{GEOSX_CC}" CACHE PATH "") +set(CMAKE_C_FLAGS_RELEASE " -O3 -Wno-error -pthread -fno-fast-math -DNDEBUG $ENV{GEOS_HOST_FLAGS_CLI} " CACHE STRING "") +# set(CMAKE_C_FLAGS_RELEASE " -O3 -fast -DNDEBUG -L${CUDA_TOOLKIT_LIB_DIR} " CACHE STRING "") +set(CMAKE_C_FLAGS_RELWITHDEBINFO "-g ${CMAKE_C_FLAGS_RELEASE} " CACHE STRING "") +set(CMAKE_C_FLAGS_DEBUG "-O0 -g $ENV{GEOSX_HOST_FLAGS_CLI} " CACHE STRING "") + +set(CMAKE_CXX_COMPILER "$ENV{GEOSX_CXX}" CACHE PATH "") +set(CMAKE_CXX_FLAGS_RELEASE " ${CMAKE_C_FLAGS_RELEASE} " CACHE STRING "") +set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-g ${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g $ENV{GEOS_FLAGS_CLI} " CACHE STRING "") +# set(CMAKE_CXX_STANDARD 17 CACHE STRING "") + +set(CMAKE_Fortran_COMPILER "$ENV{GEOSX_FORT}" CACHE PATH "") +set(CMAKE_Fortran_FLAGS_RELEASE " ${CMAKE_C_FLAGS_RELEASE} " CACHE STRING "") +set(CMAKE_Fortran_FLAGS_RELWITHDEBINFO "-g ${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_Fortran_FLAGS_DEBUG "-O0 -g $ENV{GEOS_FLAGS_CLI} " CACHE STRING "") +set(ENABLE_FORTRAN OFF CACHE BOOL "" FORCE) + +set(BLAS_LIBRARIES "/data/saet/software/aarch64/lib/libopenblas.so" CACHE STRING "") +# set(BLAS_LIBRARIES "$ENV{NVHPC_ROOT}/math_libs/lib64/libnvblas.so" CACHE STRING "") +message("## BLAS_LIBRARIES = ${BLAS_LIBRARIES}") + +# CHECK : Most recent version does build. Let's wait for an upgrade on our side. +set(ENABLE_HYPRE ON CACHE BOOL "" FORCE) +set(ENABLE_HYPRE_CUDA ON CACHE BOOL "" FORCE) +set(ENABLE_OPENMP ON CACHE BOOL "" FORCE) + +set(BLAS_LIBRARIES "/data/saet/software/aarch64/lib/libopenblas.so" CACHE STRING "") +# set(BLAS_LIBRARIES "$ENV{NVHPC_ROOT}/math_libs/lib64/libnvblas.so" CACHE STRING "") +message("## BLAS_LIBRARIES = ${BLAS_LIBRARIES}") + +set(ENABLE_MATHPRESSO OFF CACHE BOOL "" FORCE ) + +if(ENABLE_HYPRE_CUDA) + set(ENABLE_PETSC OFF CACHE BOOL "") + set(ENABLE_TRILINOS OFF CACHE BOOL "") + set(GEOSX_LA_INTERFACE "Hypre" CACHE STRING "") + # set(ENABLE_HYPRE OFF CACHE BOOL "" FORCE) +endif() + + +# Hypre ON + +if( (ENABLE_HYPRE_CUDA AND ENABLE_TRILINOS_CUDA) OR (NOT ENABLE_TRILINOS_CUDA AND NOT ENABLE_HYPRE_CUDA) ) + MESSAGE(SEND_ERROR "Exactly one of ENABLE_HYPRE and ENABLE_TRILINOS must be defined.") + MESSAGE(SEND_ERROR "ENABLE_HYPRE = ${ENABLE_HYPRE}.") + MESSAGE(SEND_ERROR "ENABLE_TRILINOS = ${ENABLE_TRILINOS}.") +endif() + +MESSAGE(STATUS "## GEOSX_LA_INTERFACE = ${GEOSX_LA_INTERFACE}") + +# enable PAMELA and PVTPackage +set(ENABLE_PAMELA OFF CACHE BOOL "" FORCE) +set(ENABLE_PVTPackage ON CACHE BOOL "" FORCE) + +set(ENABLE_VALGRIND OFF CACHE BOOL "") +set(ENABLE_CALIPER ON CACHE BOOL "") + +# disable Doxygen +set(ENABLE_DOXYGEN OFF CACHE PATH "") + +# enable tests +set(ENABLE_GTEST_DEATH_TESTS ON CACHE BOOL "" FORCE ) + +# let GEOSX define some third party libraries information for you +message("## tpls.cmake = ${CMAKE_CURRENT_LIST_DIR}/../tpls.cmake") +include(${CMAKE_CURRENT_LIST_DIR}/../tpls.cmake) +message("## CMAKE_CURRENT_LIST_DIR = ${CMAKE_CURRENT_LIST_DIR}") + + +# Python options +#set(ENABLE_PYLVARRAY ON CACHE BOOL "") +#set(ENABLE_PYGEOSX ON CACHE BOOL "") +#set(PYTHON_DIR "/share/software/user/open/python/3.6.1" CACHE PATH "") +#set(Python3_EXECUTABLE "/share/software/user/open/python/3.6.1/bin/python3" CACHE PATH "") + +## Nvidia HPC TDK + +# set(CMAKE_EXE_LINKER_FLAGS " -L${CUDA_TOOLKIT_LIB_DIR} " CACHE STRING "") +# //Flags used by the linker during DEBUG builds. +# set(CMAKE_EXE_LINKER_FLAGS_DEBUG " ${CMAKE_EXE_LINKER_FLAGS} " CACHE STRING "") +# //Flags used by the linker during MINSIZEREL builds. +# CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= +# //Flags used by the linker during RELEASE builds. +# set(CMAKE_EXE_LINKER_FLAGS_RELEASE " ${CMAKE_EXE_LINKER_FLAGS} " CACHE STRING "") +# //Flags used by the linker during RELWITHDEBINFO builds. +# set(CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO " ${CMAKE_EXE_LINKER_FLAGS} " CACHE STRING "") +# set(CUDA_TOOLKIT_ROOT_DIR "$ENV{NVHPC_ROOT}/cuda/11.7" CACHE PATH "") +# set(CUDA_TOOLKIT_LIB_DIR "${CUDA_TOOLKIT_ROOT_DIR}/cuda/11.7/lib64:${CUDA_TOOLKIT_ROOT_DIR}/math_libs/lib64" CACHE PATH "") +# message("## CUDA_TOOLKIT_LIB_DIR = ${CUDA_TOOLKIT_LIB_DIR}") +# set(LAPACK_LIBRARIES "$ENV{NVHPC_ROOT}/math_libs/lib64/liblapack_static.a" CACHE STRING "") +# message("## LAPACK_LIBRARIES = ${LAPACK_LIBRARIES}") +# set(BLAS_LIBRARIES "$ENV{NVHPC_ROOT}/math_libs/lib64/libnvblas.so" CACHE STRING "") +# message("## BLAS_LIBRARIES = ${BLAS_LIBRARIES}") + +# CUDA RT libs at +# /data/saet/mtml/software/aarch64/nvidia/hpc_sdk/Linux_aarch64/22.7/cuda/11.7/lib64/ +# set(CMAKE_CUDA_FLAGS "-restrict -arch ${CUDA_ARCH} --expt-extended-lambda --expt-relaxed-constexpr -Werror cross-execution-space-call,reorder,deprecated-declarations --library-path=${CUDA_TOOLKIT_LIB_DIR} -L${CUDA_TOOLKIT_LIB_DIR} " CACHE STRING "") diff --git a/host-configs/CVX/GPU-OPTO3-Hypre-GCC-CUDA-MPI-OMP.cmake b/host-configs/CVX/GPU-OPTO3-Hypre-GCC-CUDA-MPI-OMP.cmake new file mode 100644 index 00000000000..4e83dd5cebe --- /dev/null +++ b/host-configs/CVX/GPU-OPTO3-Hypre-GCC-CUDA-MPI-OMP.cmake @@ -0,0 +1,175 @@ +#------------------------------------------------------------------------------ +# CUDA support +#------------------------------------------------------------------------------ +# _blt_tutorial_surface_cuda_config_start +# +# CVX Generic .cmake for Nvidia GPUs: GCC, CUDA and Open or Intel MPI ; OpenMP enabled +# +# Michael E. Thomadakis michael.thomadakis@chevron.com +# Chevron Technical Center, Innovation and HPC R&D +# + +# detect host and name the configuration file +site_name(HOST_NAME) +message("## CVX CMAKE_CURRENT_LIST_DIR = ${CMAKE_CURRENT_LIST_DIR}") + +# Default is ON +set(ENABLE_WARNINGS_AS_ERRORS OFF CACHE BOOL "") + +# Info +set(GEOSX_TPL_DIR "$ENV{GEOSX_TPL_DIR}" CACHE PATH "" FORCE) +set(GEOS_TPL_DIR "$ENV{GEOSX_TPL_DIR}" CACHE PATH "" FORCE) +set(GEOSX_DIR "$ENV{GEOSX_DIR}" CACHE PATH "" FORCE) +message("## GEOSX_TPL_DIR = ${GEOSX_TPL_DIR}") +message("## GEOS_TPL_DIR = ${GEOS_TPL_DIR}") +message("## GEOSX_DIR = ${GEOSX_DIR}") + +set(ENABLE_FORTRAN OFF CACHE BOOL "" FORCE) + +set(ENABLE_MPI ON CACHE BOOL "") + +set(MPI_C_COMPILER "$ENV{GEOSX_MPICC}" CACHE PATH "") +set(MPI_CXX_COMPILER "$ENV{GEOSX_MPICXX}" CACHE PATH "") +set(MPI_Fortran_COMPILER "$ENV{GEOSX_MPIFORT}" CACHE PATH "") +set(MPIEXEC "$ENV{GEOSX_MPIRUN}" CACHE PATH "") + +set(ENABLE_WRAP_ALL_TESTS_WITH_MPIEXEC ON CACHE BOOL "") + +set(ENABLE_SPHINX_EXECUTABLE OFF CACHE BOOL "") +set(ENABLE_UNCRUSTIFY ON CACHE BOOL "") +set(ENABLE_DOXYGEN OFF CACHE BOOL "") + +set(ENABLE_ADIAK ON CACHE BOOL "") + +set(ENABLE_CALIPER ON CACHE BOOL "") +set(ENABLE_CALIPER_HYPRE "$ENV{ENABLE_CALIPER_HYPRE}" CACHE BOOL "") + +## For HIP +## set( ENABLE_HYPRE_DEVICE "HIP" CACHE STRING "" ) +set(ENABLE_CUDA ON CACHE BOOL "") +set(CUDA_TOOLKIT_ROOT_DIR "$ENV{CUDA_HOME}" CACHE PATH "") +message("## CUDA_TOOLKIT_ROOT_DIR = ${CUDA_TOOLKIT_ROOT_DIR}") + +if(ENABLE_CUDA) + # C++ prep-processor vars GEOS_USE_DEVICE and CALC_FEM_SHAPE_IN_KERNEL must be defined and visible + # set(GEOS_USE_DEVICE ON CACHE BOOL "") + # set(CALC_FEM_SHAPE_IN_KERNEL ON CACHE BOOL "") + set(ENABLE_HYPRE_DEVICE "CUDA" CACHE STRING "") + message("## ENABLE_CUDA = ${ENABLE_CUDA}; ENABLE_HYPRE_DEVICE = ${ENABLE_HYPRE_DEVICE}") + + set(ENABLE_CUDA_NVTOOLSEXT "$ENV{ENABLE_CUDA_NVTOOLSEXT}" CACHE BOOL "") + message("## ENABLE_CUDA_NVTOOLSEXT = ${ENABLE_CUDA_NVTOOLSEXT}") + + set(CUDA_ARCH sm_80 CACHE STRING "") + set(CMAKE_CUDA_ARCHITECTURES 80 CACHE STRING "") + + set(CMAKE_CUDA_COMPILER ${CUDA_TOOLKIT_ROOT_DIR}/bin/nvcc CACHE STRING "") + set(CMAKE_CUDA_HOST_COMPILER ${MPI_CXX_COMPILER} CACHE STRING "") + + set(CMAKE_CUDA_STANDARD 17 CACHE STRING "") + set(CHAI_CUDA_FLAGS "-arch ${CUDA_ARCH}" CACHE STRING "" FORCE) + + set(CMAKE_CUDA_FLAGS " $ENV{GEOS_CUDA_FLAGS_CLI} -restrict -arch ${CUDA_ARCH} --expt-extended-lambda --expt-relaxed-constexpr -Werror cross-execution-space-call,reorder,deprecated-declarations -DGEOS_USE_DEVICE " CACHE STRING "") + message("## ENV{GEOS_CUDA_FLAGS_CLI} = $ENV{GEOS_CUDA_FLAGS_CLI}") + message("## CMAKE_CUDA_FLAGS = ${CMAKE_CUDA_FLAGS}") + + set(CMAKE_CUDA_FLAGS_RELEASE " -O3 -ftz=true -Xcompiler -O3 -Xcompiler -fno-fast-math -Xcompiler -mdaz-ftz -DNDEBUG " CACHE STRING "") + set(CMAKE_CUDA_FLAGS_RELWITHDEBINFO " -g -lineinfo ${CMAKE_CUDA_FLAGS_RELEASE}" CACHE STRING "") + set(CMAKE_CUDA_FLAGS_DEBUG " ${CMAKE_CUDA_FLAGS} -g -G -O0 -Xcompiler -O0 " CACHE STRING "") + + set(CUDA_SEPARABLE_COMPILATION ON CACHE BOOL "") + + ## set(CMAKE_CUDA_FLAGS " $ENV{GEOS_CUDA_FLAGS_CLI} -restrict -arch ${CUDA_ARCH} --expt-extended-lambda --expt-relaxed-constexpr -Werror cross-execution-space-call,reorder,deprecated-declarations -Xcompiler -fno-fast-math -Xcompiler -mdaz-ftz " CACHE STRING "") + ## set(CMAKE_CUDA_FLAGS " $ENV{GEOS_CUDA_FLAGS_CLI} -restrict -arch ${CUDA_ARCH} --expt-extended-lambda --expt-relaxed-constexpr -Werror cross-execution-space-call,reorder,deprecated-declarations -Xcompiler -fno-fast-math -Xcompiler -mdaz-ftz -Xcompiler -DGEOS_USE_DEVICE -Xcompiler -DCALC_FEM_SHAPE_IN_KERNEL " CACHE STRING "") + # -D CUPTI_PREFIX=path-to-your-cupti-installation + # set(ENABLE_CALIPER_WITH_CUPTI ON CACHE BOOL "") +endif() + +# Compilers +message("## ENV{GEOSX_HOST_FLAGS_CLI} = $ENV{GEOSX_HOST_FLAGS_CLI}") +set(CMAKE_C_COMPILER "$ENV{GEOSX_CC}" CACHE PATH "") +set(CMAKE_C_FLAGS_RELEASE " $ENV{GEOSX_HOST_FLAGS_CLI} -O3 -Wno-error -pthread -fno-fast-math -DNDEBUG $ENV{GEOS_HOST_FLAGS_CLI} " CACHE STRING "") +# set(CMAKE_C_FLAGS_RELEASE " -O3 -fast -DNDEBUG -L${CUDA_TOOLKIT_LIB_DIR} " CACHE STRING "") +set(CMAKE_C_FLAGS_RELWITHDEBINFO "-g ${CMAKE_C_FLAGS_RELEASE} " CACHE STRING "") +set(CMAKE_C_FLAGS_DEBUG "-O0 -g $ENV{GEOSX_HOST_FLAGS_CLI} " CACHE STRING "") + +set(CMAKE_CXX_COMPILER "$ENV{GEOSX_CXX}" CACHE PATH "") +set(CMAKE_CXX_FLAGS_RELEASE " ${CMAKE_C_FLAGS_RELEASE} " CACHE STRING "") +set(CMAKE_CXX_FLAGS_RELWITHDEBINFO " -g ${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_CXX_FLAGS_DEBUG " -O0 -g $ENV{GEOS_HOST_FLAGS_CLI} " CACHE STRING "") +# set(CMAKE_CXX_STANDARD 17 CACHE STRING "") + +set(CMAKE_Fortran_COMPILER "$ENV{GEOSX_FORT}" CACHE PATH "") +set(CMAKE_Fortran_FLAGS_RELEASE " ${CMAKE_C_FLAGS_RELEASE} " CACHE STRING "") +set(CMAKE_Fortran_FLAGS_RELWITHDEBINFO " -g ${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "") +set(CMAKE_Fortran_FLAGS_DEBUG " -O0 -g $ENV{GEOS_HOST_FLAGS_CLI} " CACHE STRING "") +set(ENABLE_FORTRAN OFF CACHE BOOL "" FORCE) + +set(ENABLE_HYPRE ON CACHE BOOL "" FORCE) +set(ENABLE_HYPRE_CUDA ON CACHE BOOL "" FORCE) +set(ENABLE_OPENMP ON CACHE BOOL "" FORCE) + +if(ENABLE_HYPRE_CUDA) + set(ENABLE_PETSC OFF CACHE BOOL "") + set(ENABLE_TRILINOS OFF CACHE BOOL "") + set(GEOSX_LA_INTERFACE "Hypre" CACHE STRING "") + # set(ENABLE_HYPRE OFF CACHE BOOL "" FORCE) +endif() + +if( (ENABLE_HYPRE_CUDA AND ENABLE_TRILINOS_CUDA) OR (NOT ENABLE_TRILINOS_CUDA AND NOT ENABLE_HYPRE_CUDA) ) + MESSAGE(SEND_ERROR "Exactly one of ENABLE_HYPRE and ENABLE_TRILINOS must be defined.") + MESSAGE(SEND_ERROR "ENABLE_HYPRE = ${ENABLE_HYPRE}.") + MESSAGE(SEND_ERROR "ENABLE_TRILINOS = ${ENABLE_TRILINOS}.") +endif() + +MESSAGE(STATUS "## GEOSX_LA_INTERFACE = ${GEOSX_LA_INTERFACE}") + +# disable PAMELA and enable PVTPackage +set(ENABLE_PAMELA OFF CACHE BOOL "" FORCE) +set(ENABLE_PVTPackage ON CACHE BOOL "" FORCE) + +set(ENABLE_VALGRIND OFF CACHE BOOL "") +set(ENABLE_CALIPER ON CACHE BOOL "") + +# disable Doxygen +set(ENABLE_DOXYGEN OFF CACHE PATH "") + +# enable tests +set(ENABLE_GTEST_DEATH_TESTS ON CACHE BOOL "" FORCE ) + +# let GEOSX define some third party libraries information for you +message("## tpls.cmake = ${CMAKE_CURRENT_LIST_DIR}/../tpls.cmake") +include(${CMAKE_CURRENT_LIST_DIR}/../tpls.cmake) +message("## CMAKE_CURRENT_LIST_DIR = ${CMAKE_CURRENT_LIST_DIR}") + + +# Python options +#set(ENABLE_PYLVARRAY ON CACHE BOOL "") +#set(ENABLE_PYGEOSX ON CACHE BOOL "") +#set(PYTHON_DIR "/share/software/user/open/python/3.6.1" CACHE PATH "") +#set(Python3_EXECUTABLE "/share/software/user/open/python/3.6.1/bin/python3" CACHE PATH "") + +## Nvidia HPC SDK +# set(CUDA_TOOLKIT_LIB_DIR "${CUDA_TOOLKIT_ROOT_DIR}/cuda/11.7/lib64:${CUDA_TOOLKIT_ROOT_DIR}/math_libs/lib64" CACHE PATH "") +# message("## CUDA_TOOLKIT_LIB_DIR = ${CUDA_TOOLKIT_LIB_DIR}") +# set(LAPACK_LIBRARIES "$ENV{NVHPC_ROOT}/math_libs/lib64/liblapack_static.a" CACHE STRING "") +# message("## LAPACK_LIBRARIES = ${LAPACK_LIBRARIES}") +# set(BLAS_LIBRARIES "$ENV{NVHPC_ROOT}/math_libs/lib64/libnvblas.so" CACHE STRING "") +# message("## BLAS_LIBRARIES = ${BLAS_LIBRARIES}") + +# CUDA RT libs at +# /data/saet/mtml/software/aarch64/nvidia/hpc_sdk/Linux_aarch64/22.7/cuda/11.7/lib64/ +# set(CUDA_TOOLKIT_ROOT_DIR "$ENV{NVHPC_ROOT}/cuda/11.7" CACHE PATH "") +# set(CMAKE_CUDA_FLAGS "-restrict -arch ${CUDA_ARCH} --expt-extended-lambda --expt-relaxed-constexpr -Werror cross-execution-space-call,reorder,deprecated-declarations --library-path=${CUDA_TOOLKIT_LIB_DIR} -L${CUDA_TOOLKIT_LIB_DIR} " CACHE STRING "") +# --library-path=${CUDA_TOOLKIT_LIB_DIR} + +# set(CMAKE_EXE_LINKER_FLAGS " -L${CUDA_TOOLKIT_LIB_DIR} " CACHE STRING "") +# //Flags used by the linker during DEBUG builds. +# set(CMAKE_EXE_LINKER_FLAGS_DEBUG " ${CMAKE_EXE_LINKER_FLAGS} " CACHE STRING "") +# //Flags used by the linker during MINSIZEREL builds. +# CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= +# //Flags used by the linker during RELEASE builds. +# set(CMAKE_EXE_LINKER_FLAGS_RELEASE " ${CMAKE_EXE_LINKER_FLAGS} " CACHE STRING "") +# //Flags used by the linker during RELWITHDEBINFO builds. +# set(CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO " ${CMAKE_EXE_LINKER_FLAGS} " CACHE STRING "") + diff --git a/host-configs/CVX/tpls.cmake b/host-configs/CVX/tpls.cmake new file mode 120000 index 00000000000..998db7d2a5d --- /dev/null +++ b/host-configs/CVX/tpls.cmake @@ -0,0 +1 @@ +../tpls.cmake \ No newline at end of file