Installing Aspect: Error Could NOT find GMP (missing: GMP_LIBRARIES GMP_INCLUDE_DIRS)

Hello - Our cluster operating system has been updated to Ubuntu 22.04.2 (from something much older) and I’m re-installing DEAL.II so I can install Aspect. I get the following error when it gets to the step of installing symengine:

Verifying symengine-0.8.1.tar.gz

symengine-0.8.1.tar.gz: OK(md5)

Unpacking symengine-0.8.1.tar.gz

Building symengine 0.8.1

– The C compiler identification is GNU 11.3.0

– The CXX compiler identification is GNU 11.3.0

– Detecting C compiler ABI info

– Detecting C compiler ABI info - done

– Check for working C compiler: /share/apps/22.04/manual/openmpi/4.1.5-mpi-io/bin/mpicc - skipped

– Detecting C compile features

– Detecting C compile features - done

– Detecting CXX compiler ABI info

– Detecting CXX compiler ABI info - done

– Check for working CXX compiler: /share/apps/22.04/manual/openmpi/4.1.5-mpi-io/bin/mpicxx - skipped

– Detecting CXX compile features

– Detecting CXX compile features - done

– Performing Test NO_WARN_IMPLICIT_FALL_THROUGH_FLAG

– Performing Test NO_WARN_IMPLICIT_FALL_THROUGH_FLAG - Success

– Linker supports --exclude-libs

– Looking for sys/types.h

– Looking for sys/types.h - found

– Looking for stdint.h

– Looking for stdint.h - found

– Looking for stddef.h

– Looking for stddef.h - found

– Check size of long double

– Check size of long double - done

CMake Error at /share/apps/22.04/spack/spack-root/opt/spack/linux-ubuntu22.04-x86_64_v2/gcc-11.3.0/cmake-3.26.3-naq3b4v5ivwapa4ukmvwhqxxrzttzvd4/share/cmake-3.26/Modules/FindPackageHandleStandardArgs.cmake:230 (message):

Could NOT find GMP (missing: GMP_LIBRARIES GMP_INCLUDE_DIRS)

Call Stack (most recent call first):

/share/apps/22.04/spack/spack-root/opt/spack/linux-ubuntu22.04-x86_64_v2/gcc-11.3.0/cmake-3.26.3-naq3b4v5ivwapa4ukmvwhqxxrzttzvd4/share/cmake-3.26/Modules/FindPackageHandleStandardArgs.cmake:600 (_FPHSA_FAILURE_MESSAGE)

cmake/FindGMP.cmake:19 (find_package_handle_standard_args)

CMakeLists.txt:375 (find_package)

– Configuring incomplete, errors occurred!

Failure with exit status: 1

Exit message: There was a problem configuring symengine 0.8.1.

I’m compiling with: 1) slurm/22.05.9 2) gcc/11.3.0 3) openmpi/4.1.5-mpi-io 4) cmake/3.26.3

Is GMP something that should already be installed on our cluster? Is it okay for me to install locally - and then how do I let CMAKE know where to find it?
Thanks for any help you can give,
Magali

You do not need symengine. Just remove it from candi.cfg or even better, download https://github.com/geodynamics/aspect/blob/main/contrib/install/local.cfg and put it in your candi folder.

Ah-ha!! That makes it so much easier.
Thank you,
Magali

I’m not sure how the admins managed to install gcc without GMP. It is a dependency to compile gcc.

Max

Hi Timo,
Sorry for another e-mail…
I started the installation over completely using the local.cfg, but now its having issues with BLAS related to trilinos. :frowning:

I’ve put the output from “Fetching Trilinos" to th error in the attached file. The start and end are below…
Any thoughts?
Magali

Fetching trilinos 13-2-0
Trying to download https://tjhei.info/candi-mirror/trilinos-release-13-2-0.tar.gz
Total Received Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 354 100 354 0 0 1210 0 --:--:-- --:--:-- --:--:-- 1212 0 196 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 curl: (22) The requested URL returned error: 404 **Trying to download [https://cecas.clemson.edu/dealii/mirror/trilinos-release-13-2-0.tar.gz](https://cecas.clemson.edu/dealii/mirror/trilinos-release-13-2-0.tar.gz)** Total Received Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 196 0 0 0 0 0 0 --:–:-- --:–:-- --:–:-- 0
curl: (22) The requested URL returned error: 404
Trying to download https://github.com/trilinos/Trilinos/archive/trilinos-release-13-2-0.tar.gz
Total Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:–:-- --:–:-- --:–:-- 0
100 158M 0 158M 0 0 186k 0 --:–:-- 0:14:27 --:–:-- 205k
Verifying trilinos-release-13-2-0.tar.gz
trilinos-release-13-2-0.tar.gz: OK(md5)
Unpacking trilinos-release-13-2-0.tar.gz
Building trilinos 13-2-0

Configuring Trilinos build directory

– PROJECT_SOURCE_DIR=‘/group/billengrp/Software/deal.ii/deal.ii-9.5.0-Native-32bit-candi-gcc-11.3.0-openmpi4.1.5-mpi-io-rome-256-512/tmp/unpack/Trilinos-trilinos-release-13-2-0’
– PROJECT_BINARY_DIR=‘/group/billengrp/Software/deal.ii/deal.ii-9.5.0-Native-32bit-candi-gcc-11.3.0-openmpi4.1.5-mpi-io-rome-256-512/tmp/build/trilinos-release-13-2-0’
– Trilinos_TRIBITS_DIR=‘/group/billengrp/Software/deal.ii/deal.ii-9.5.0-Native-32bit-candi-gcc-11.3.0-openmpi4.1.5-mpi-io-rome-256-512/tmp/unpack/Trilinos-trilinos-release-13-2-0/cmake/tribits’
– TriBITS_VERSION_STRING=‘0.9 (Dev)’
– CMAKE_VERSION=‘3.20.5’
– CMAKE_GENERATOR=‘Unix Makefiles’
– CMAKE_HOST_SYSTEM_NAME=‘Linux’
– Trilinos_HOSTNAME=‘cpu-9-42’
– Could NOT find PythonInterp (missing: PYTHON_EXECUTABLE) (Required is at least version “2.6”)
– PYTHON_EXECUTABLE=‘PYTHON_EXECUTABLE-NOTFOUND’
– Found Git: /usr/bin/git (found version “2.34.1”)

Setting up major user options …

– Setting Trilinos_ENABLE_TriKota=OFF because ‘/group/billengrp/Software/deal.ii/deal.ii-9.5.0-Native-32bit-candi-gcc-11.3.0-openmpi4.1.5-mpi-io-rome-256-512/tmp/unpack/Trilinos-trilinos-release-13-2-0/packages/TriKota/Dakota’ does not exist!

NOTE: Skipping generation of TrilinosRepoVersion.txt because project source is not a git repo!

Reading list of native TPLs from /group/billengrp/Software/deal.ii/deal.ii-9.5.0-Native-32bit-candi-gcc-11.3.0-openmpi4.1.5-mpi-io-rome-256-512/tmp/unpack/Trilinos-trilinos-release-13-2-0/TPLsList.cmake

– Trilinos_NUM_TPLS=‘116’

Reading list of native packages from /group/billengrp/Software/deal.ii/deal.ii-9.5.0-Native-32bit-candi-gcc-11.3.0-openmpi4.1.5-mpi-io-rome-256-512/tmp/unpack/Trilinos-trilinos-release-13-2-0/PackagesList.cmake

– Trilinos_NUM_PACKAGES=‘64’

Processing Project, Repository, and Package dependency files and building internal dependencies graph …

– Trilinos_NUM_SE_PACKAGES=‘160’
– Tentatively enabling TPL ‘DLlib’

.
.
.
.

Set cache entries for optional packages/TPLs and tests/examples for packages actually enabled …

Enabling the shell of non-enabled parent packages (mostly for show) that have at least one subpackage enabled …

– Setting Trilinos_ENABLE_ShyLU_Node=ON because Trilinos_ENABLE_ShyLU_NodeTacho=ON

Final set of enabled packages: Gtest Kokkos Teuchos KokkosKernels RTOp Sacado Epetra Zoltan Shards Triutils EpetraExt Tpetra TrilinosSS Thyra Xpetra Isorropia AztecOO Galeri Amesos Pamgen Zoltan2Core Ifpack ML Belos ShyLU_Node Amesos2 Anasazi Stratimikos Teko Intrepid Intrepid2 NOX MueLu Tempus ROL 35

Final set of enabled SE packages: Gtest KokkosCore KokkosContainers KokkosAlgorithms Kokkos TeuchosCore TeuchosParser TeuchosParameterList TeuchosComm TeuchosNumerics TeuchosRemainder TeuchosKokkosCompat TeuchosKokkosComm Teuchos KokkosKernels RTOp Sacado Epetra Zoltan Shards Triutils EpetraExt TpetraClassic TpetraTSQR TpetraCore Tpetra TrilinosSS ThyraCore ThyraEpetraAdapters ThyraEpetraExtAdapters ThyraTpetraAdapters Thyra Xpetra Isorropia AztecOO Galeri Amesos Pamgen Zoltan2Core Ifpack ML Belos ShyLU_NodeTacho ShyLU_Node Amesos2 Anasazi Stratimikos Teko Intrepid Intrepid2 NOX MueLu Tempus ROL 54

Final set of non-enabled packages: TrilinosFrameworkTests TrilinosATDMConfigTests MiniTensor Domi Pliris SEACAS Komplex Ifpack2 FEI TriKota Compadre STK Percept Phalanx Moertel Zoltan2Sphynx Zoltan2 ShyLU_DD ShyLU Rythmos Stokhos Piro Panzer PyTrilinos NewPackage Adelus TrilinosCouplings Pike TrilinosBuildStats 29

Final set of non-enabled SE packages: TrilinosFrameworkTests TrilinosATDMConfigTests MiniTensor Domi Pliris ShyLU_NodeHTS ShyLU_NodeBasker ShyLU_NodeFastILU SEACASExodus SEACASExodus_for SEACASExoIIv2for32 SEACASNemesis SEACASIoss SEACASChaco SEACASAprepro_lib SEACASSupes SEACASSuplib SEACASSuplibC SEACASSuplibCpp SEACASSVDI SEACASPLT SEACASAlgebra SEACASAprepro SEACASBlot SEACASConjoin SEACASEjoin SEACASEpu SEACASExo2mat SEACASExodiff SEACASExomatlab SEACASExotxt SEACASExo_format SEACASEx1ex2v2 SEACASExotec2 SEACASFastq SEACASGjoin SEACASGen3D SEACASGenshell SEACASGrepos SEACASExplore SEACASMapvarlib SEACASMapvar SEACASMapvar-kd SEACASMat2exo SEACASNas2exo SEACASZellij SEACASNemslice SEACASNemspread SEACASNumbers SEACASSlice SEACASTxtexo SEACASEx2ex1v2 SEACAS Komplex Ifpack2 FEI TriKota Compadre STKUtil STKEmend STKCoupling STKMath STKSimd STKNGP_TEST STKTopology STKMesh STKIO STKSearch STKTransfer STKTools STKBalance STKUnit_test_utils STKSearchUtil STKUnit_tests STKDoc_tests STKExprEval STK Percept Phalanx Moertel Zoltan2Sphynx Zoltan2 ShyLU_DDBDDC ShyLU_DDFROSch ShyLU_DDCore ShyLU_DDCommon ShyLU_DD ShyLU Rythmos Stokhos Piro PanzerCore PanzerDofMgr PanzerDiscFE PanzerAdaptersSTK PanzerMiniEM PanzerExprEval Panzer PyTrilinos NewPackage Adelus TrilinosCouplings PikeBlackBox PikeImplicit Pike TrilinosBuildStats 106

Final set of enabled TPLs: MPI BLAS LAPACK DLlib 4

Final set of non-enabled TPLs: MKL yaml-cpp Peano CUDA CUBLAS CUSOLVER CUSPARSE Thrust Cusp TBB Pthread HWLOC QTHREAD BinUtils ARPREC QD Boost Scotch OVIS gpcd METIS MTMETIS ParMETIS PuLP TopoManager LibTopoMap PaToH CppUnit ADOLC ADIC TVMET MF ExodusII Nemesis XDMF Zlib HDF5 CGNS Pnetcdf Netcdf ADIOS2 y12m SuperLUDist SuperLUMT SuperLU Cholmod UMFPACK MA28 AMD CSparse HYPRE PETSC BLACS SCALAPACK MUMPS STRUMPACK PARDISO_MKL PARDISO Oski TAUCS ForUQTK Dakota HIPS MATLAB CASK SPARSKIT QT gtest BoostLib BoostAlbLib OpenNURBS Portals CrayPortals Gemini InfiniBand BGPDCMF BGQPAMI Pablo HPCToolkit Clp GLPK qpOASES Matio PAPI MATLABLib Eigen X11 Lemon GLM quadmath CAMAL RTlib AmgX CGAL CGALCore VTune TASMANIAN ArrayFireCPU SimMesh SimModel SimParasolid SimAcis SimField Valgrind QUO ViennaCL Avatar mlpack pebbl MAGMASparse Check SARMA 112

Setting up export dependencies for all enabled SE packages …

Probing the environment …

– USE_XSDK_DEFAULTS=‘FALSE’
– BUILD_SHARED_LIBS=‘ON’
– CMAKE_BUILD_TYPE=‘RELEASE’
– MPI_USE_COMPILER_WRAPPERS=‘ON’
– Leaving current CMAKE_C_COMPILER=mpicc since it is already set!
– Leaving current CMAKE_CXX_COMPILER=mpicxx since it is already set!
– Leaving current CMAKE_Fortran_COMPILER=mpif90 since it is already set!
– MPI_EXEC=‘/share/apps/22.04/manual/openmpi/4.1.5-mpi-io/bin/mpiexec’
– The C compiler identification is GNU 11.3.0
– Detecting C compiler ABI info
– Detecting C compiler ABI info - done
– Check for working C compiler: /share/apps/22.04/manual/openmpi/4.1.5-mpi-io/bin/mpicc - skipped
– Detecting C compile features
– Detecting C compile features - done
– CMAKE_C_COMPILER_ID=‘GNU’
– CMAKE_C_COMPILER_VERSION=‘11.3.0’
– The CXX compiler identification is GNU 11.3.0
– Detecting CXX compiler ABI info
– Detecting CXX compiler ABI info - done
– Check for working CXX compiler: /share/apps/22.04/manual/openmpi/4.1.5-mpi-io/bin/mpicxx - skipped
– Detecting CXX compile features
– Detecting CXX compile features - done
– CMAKE_CXX_COMPILER_ID=‘GNU’
– CMAKE_CXX_COMPILER_VERSION=‘11.3.0’
– The Fortran compiler identification is GNU 11.3.0
– Detecting Fortran compiler ABI info
– Detecting Fortran compiler ABI info - done
– Check for working Fortran compiler: /share/apps/22.04/manual/openmpi/4.1.5-mpi-io/bin/mpif90 - skipped
– Checking whether /share/apps/22.04/manual/openmpi/4.1.5-mpi-io/bin/mpif90 supports Fortran 90
– Checking whether /share/apps/22.04/manual/openmpi/4.1.5-mpi-io/bin/mpif90 supports Fortran 90 - yes
– Skip adding flags for OpenMP because Kokkos flags does that …
– Trilinos_SET_INSTALL_RPATH=‘TRUE’
– CMAKE_INSTALL_RPATH_USE_LINK_PATH=‘TRUE’
– Setting default for CMAKE_INSTALL_RPATH pointing to Trilinos_INSTALL_LIB_DIR
– CMAKE_INSTALL_RPATH=‘/group/billengrp/Software/deal.ii/deal.ii-9.5.0-Native-32bit-candi-gcc-11.3.0-openmpi4.1.5-mpi-io-rome-256-512/trilinos-release-13-2-0/lib’
– Looking for C++ include sys/time.h
– Looking for C++ include sys/time.h - found
– Looking for C++ include time.h
– Looking for C++ include time.h - found
– Looking for C++ include stdint.h
– Looking for C++ include stdint.h - found
– Looking for C++ include inttypes.h
– Looking for C++ include inttypes.h - found
– Found Perl: /usr/bin/perl (found version “5.34.0”)
– Fortran name mangling: LOWER UNDER
– Detecting Fortran/C Interface
– Detecting Fortran/C Interface - Found GLOBAL and MODULE mangling
– Verifying Fortran/CXX Compiler Compatibility
– Verifying Fortran/CXX Compiler Compatibility - Success
– Performing Test MATH_LIBRARY_IS_SUPPLIED
– Performing Test MATH_LIBRARY_IS_SUPPLIED - Success
– Performing Test FINITE_VALUE_HAVE_GLOBAL_ISNAN
– Performing Test FINITE_VALUE_HAVE_GLOBAL_ISNAN - Failed
– Performing Test FINITE_VALUE_HAVE_STD_ISNAN
– Performing Test FINITE_VALUE_HAVE_STD_ISNAN - Success
– Performing Test FINITE_VALUE_HAVE_GLOBAL_ISINF
– Performing Test FINITE_VALUE_HAVE_GLOBAL_ISINF - Failed
– Performing Test FINITE_VALUE_HAVE_STD_ISINF
– Performing Test FINITE_VALUE_HAVE_STD_ISINF - Success
– Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)

Getting information for all enabled TPLs …

Processing enabled TPL: MPI (enabled explicitly, disable with -DTPL_ENABLE_MPI=OFF)
Processing enabled TPL: BLAS (enabled by TeuchosNumerics, disable with -DTPL_ENABLE_BLAS=OFF)
– BLAS_LIBRARY_NAMES=‘blas blas_win32’
– Searching for libs in BLAS_LIBRARY_DIRS=‘’
– Searching for a lib in the set “blas blas_win32”:
– Searching for lib ‘blas’ …
– Searching for lib ‘blas_win32’ …
– NOTE: Did not find a lib in the lib set “blas blas_win32” for the TPL ‘BLAS’!
– ERROR: Could not find the libraries for the TPL ‘BLAS’!
– TIP: If the TPL ‘BLAS’ is on your system then you can set:
-DBLAS_LIBRARY_DIRS=‘;;…’
to point to the directories where these libraries may be found.
Or, just set:
-DTPL_BLAS_LIBRARIES=‘;;…’
to point to the full paths for the libraries which will
bypass any search fo bypass any search for libraries and these libraries will be used without
question in the build. (But this will result in a build-time error
if not all of the necessary symbols are found.)
– ERROR: Failed finding all of the parts of TPL ‘BLAS’ (see above), Aborting!

– NOTE: The find module file for this failed TPL ‘BLAS’ is:
/group/billengrp/Software/deal.ii/deal.ii-9.5.0-Native-32bit-candi-gcc-11.3.0-openmpi4.1.5-mpi-io-rome-256-512/tmp/unpack/Trilinos-trilinos-release-13-2-0/cmake/tribits/common_tpls/FindTPLBLAS.cmake
which is pointed to in the file:
/group/billengrp/Software/deal.ii/deal.ii-9.5.0-Native-32bit-candi-gcc-11.3.0-openmpi4.1.5-mpi-io-rome-256-512/tmp/unpack/Trilinos-trilinos-release-13-2-0/TPLsList.cmake

TIP: One way to get past the configure failure for the
TPL ‘BLAS’ is to simply disable it with:
-DTPL_ENABLE_BLAS=OFF
which will disable it and will recursively disable all of the
downstream packages that have required dependencies on it, including
the package ‘TeuchosNumerics’ which triggered its enable.
When you reconfigure, just grep the cmake stdout for ‘BLAS’
and then follow the disables that occur as a result to see what impact
this TPL disable has on the configuration of Trilinos.

CMake Error at cmake/tribits/core/package_arch/TribitsProcessEnabledTpl.cmake:144 (message):
ERROR: TPL_BLAS_NOT_FOUND=TRUE, aborting!
Call Stack (most recent call first):
cmake/tribits/core/package_arch/TribitsGlobalMacros.cmake:1581 (tribits_process_enabled_tpl)
cmake/tribits/core/package_arch/TribitsProjectImpl.cmake:196 (tribits_process_enabled_tpls)
cmake/tribits/core/package_arch/TribitsProject.cmake:93 (tribits_project_impl)
CMakeLists.txt:109 (TRIBITS_PROJECT)

– Configuring incomplete, errors occurred!
See also “/group/billengrp/Software/deal.ii/deal.ii-9.5.0-Native-32bit-candi-gcc-11.3.0-openmpi4.1.5-mpi-io-rome-256-512/tmp/build/trilinos-release-13-2-0/CMakeFiles/CMakeOutput.log”.
See also “/group/billengrp/Software/deal.ii/deal.ii-9.5.0-Native-32bit-candi-gcc-11.3.0-openmpi4.1.5-mpi-io-rome-256-512/tmp/build/trilinos-release-13-2-0/CMakeFiles/CMakeError.log”.
Failure with exit status: 1
Exit message: There was a problem configuring trilinos 13-2-0.

Hi Magali,

Running into blas/lapack errors during the Trilinos installation is unfortunately not uncommon. It can either be something related to the specific blas/lapack library versions, or Trilinos not locating all the right libraries.

One relatively easy solution and generally robust solution for this is to install openblas with candi. To do this, you should just need to modify the following line to include openblas:

PACKAGES="load:dealii-prepare once:cmake once:astyle once:hdf5 once:sundials once:p4est once:trilinos once:openblas dealii"

Hopefully this does the trick!

Cheers,
John

Hi John,

Thank you. Two general questions:

  1. Does the order matter in the packages list that you updated for local.cfg ? (Its seems like it doesn’t except that “dealii” comes last?)
  2. If I have this kind of error, can I fix the local.cfg and then just continue from where I was, or do I need to start the installation over?
    Thanks
    Magali

Nevermind… .answered own question.

  1. Yes, order matters, it needs to do openblas before trilinos.
  2. Yes, you can just keep going.
    :slight_smile: