trilinos / Trilinos

Primary repository for the Trilinos Project
https://trilinos.org/
Other
1.22k stars 570 forks source link

Zoltan2: compilation error with parmetis #13544

Closed kgottiparthi closed 1 month ago

kgottiparthi commented 1 month ago

Hi,

I am trying to compile trilinos-16 on Frontier. I get the following error when setting up with parmetis.

Processing enabled top-level package: TrilinosSS (Libs) Processing enabled top-level package: Thyra (Core, EpetraAdapters, EpetraExtAdapters, TpetraAdapters) -- Thyra ModelEvaluator Hessian interfaces On Processing enabled top-level package: Xpetra (Libs) -- Xpetra: Enabling deprecated code -- NOTE: Setting Xpetra_ENABLE_EpetraExt=OFF since Xpetra_ENABLE_Epetra='OFF' -- Xpetra: Enabling ETI -- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE) Processing enabled top-level package: Isorropia (Libs) Processing enabled top-level package: AztecOO (Libs) Processing enabled top-level package: Galeri (Libs) Processing enabled top-level package: Amesos (Libs) Processing enabled top-level package: Zoltan2Core (Libs) CMake Error at packages/zoltan2/core/CMakeLists.txt:11 (MESSAGE): Zoltan2 requires ParMETIS_version 4.0.3 or later. Upgrade or set TPL_ENABLE_ParMETIS OFF or set Zoltan2_ENABLE_ParMETIS OFF.

Below is my configuration file


!/bin/sh

rm -rf CMakeCache.txt rm -rf CMakeFiles

SOURCE=libs/Trilinos INSTALL=libs/Trilinos-install-16 BUILD="RelWithDebInfo"

cmake \ -D CMAKE_BUILD_TYPE:STRING="$BUILD" \ -D CMAKE_INSTALL_PREFIX:PATH=$INSTALL \ -D CMAKE_CXX_STANDARD=17 \ -D CMAKE_CXX_COMPILER=hipcc \ -D BUILD_SHARED_LIBS=ON \ -D TPL_ENABLE_MPI=ON \ -D TPL_ENABLE_BLAS=ON \ -D BLAS_LIBRARY_DIRS=${NETLIB_SCALAPACK_ROOT}/lib \ -D TPL_BLAS_LIBRARIES=${NETLIB_SCALAPACK_ROOT}/lib/libscalapack.so \ -D LAPACK_LIBRARY_DIRS=${NETLIB_SCALAPACK_ROOT}/lib \ -D TPL_LAPACK_LIBRARIES=${NETLIB_SCALAPACK_ROOT}/lib/libscalapack.so \ -D TPL_ENABLE_ParMETIS:BOOL=ON \ -D ParMETIS_INCLUDE_DIRS:PATH="libs/ParMETIS/build/Linux-x86_64/install/include" \ -D ParMETIS_LIBRARY_DIRS:PATH="libs/ParMETIS/build/Linux-x86_64/install/lib" \ -D HAVE_PARMETIS_VERSION_4_0_3l=ON \ -D TPL_ENABLE_LAPACK=ON \ -D TPL_ENABLE_HDF5=ON \ -D HDF5_INCLUDE_DIRS:PATH="/autofs/nccs-svm1_sw/frontier/ums/ums002/E4S/23.05/PrgEnv-gnu/spack/opt/spack/linux-sles15-zen3/gcc-11.2.0/hdf5-1.14.0-iatkt6wbck5ocuzkpicvsprjbf44kqwb/include" \ -D HDF5_LIBRARY_DIRS:PATH="/autofs/nccs-svm1_sw/frontier/ums/ums002/E4S/23.05/PrgEnv-gnu/spack/opt/spack/linux-sles15-zen3/gcc-11.2.0/hdf5-1.14.0-iatkt6wbck5ocuzkpicvsprjbf44kqwb/lib" \ -D TPL_ENABLE_Netcdf=ON \ -D TPL_ENABLE_Boost=ON \ -D TPL_ENABLE_BoostLib=OFF \ -D TPL_ENABLE_Matio=OFF \ -D TPL_ENABLE_METIS=ON \ -D TPL_ENABLE_ParMETIS=ON \ -D TPL_ENABLE_PARDISO_MKL=OFF \ -D TPL_ENABLE_HIP=ON \ -D TPL_ENABLE_HIPSPARSE=ON \ -D Trilinos_ENABLE_EXPLICIT_INSTANTIATION=ON \ -D Trilinos_ENABLE_ALL_PACKAGES=OFF \ -D Trilinos_ENABLE_ALL_OPTIONAL_PACKAGES=OFF \ -D Trilinos_ENABLE_TESTS=OFF \ -D Trilinos_ENABLE_EXAMPLES=OFF \ -D Trilinos_ENABLE_OpenMP=ON \ -D Trilinos_ENABLE_Kokkos=ON \ -D Kokkos_ENABLE_SERIAL=ON \ -D Kokkos_ENABLE_OPENMP=ON \ -D Kokkos_ENABLE_HIP=ON \ -D Kokkos_ENABLE_CUDA_UVM=OFF \ -D Kokkos_ARCH_AMD_GFX90A:BOOL=ON \ -D Trilinos_ENABLE_KokkosKernels=ON \ -D Trilinos_ENABLE_Sacado=ON \ -D Trilinos_ENABLE_Tpetra=ON \ -D Tpetra_INST_COMPLEX_DOUBLE=OFF \ -D Tpetra_INST_COMPLEX_FLOAT=OFF \ -D Tpetra_INST_SERIAL=ON \ -D Tpetra_INST_OPENMP=ON \ -D Tpetra_INST_HIP=ON \ -D Tpetra_ASSUME_GPU_AWARE_MPI=OFF \ -D Trilinos_SHOW_DEPRECATED_WARNINGS=OFF \ -D Trilinos_ENABLE_Intrepid2=ON \ -D Trilinos_ENABLE_Belos=ON \ -D Trilinos_ENABLE_Ifpack2=ON \ -D Trilinos_ENABLE_Amesos2=ON \ -D Trilinos_ENABLE_MueLu=ON \ -D Trilinos_ENABLE_NOX=ON \ -D Trilinos_ENABLE_SEACAS=ON \ -D Trilinos_ENABLE_STKMesh=ON \ -D Trilinos_ENABLE_STKIO=ON \ -D Trilinos_ENABLE_Zoltan2=ON \ -D Trilinos_ENABLE_Tempus=ON \ -D Trilinos_ENABLE_Piro=ON \ -D Trilinos_ENABLE_PanzerCore=ON \ -D Trilinos_ENABLE_PanzerDofMgr=ON \ -D Trilinos_ENABLE_PanzerDiscFE=ON \ -D Trilinos_ENABLE_PanzerAdaptersSTK=ON \ -D Trilinos_ENABLE_PanzerMiniEM=ON \ -D Trilinos_ENABLE_PanzerExprEval=ON \ -D Trilinos_ENABLE_Amesos=ON \ -D Trilinos_ENABLE_AztecOO=ON \ -D Trilinos_ENABLE_Ifpack=ON \ -D Trilinos_ENABLE_EpetraExt=ON \ -D Trilinos_ENABLE_ThyraEpetraExtAdapters=ON \ -D Trilinos_ENABLE_ML=ON \ -D Trilinos_ENABLE_ShyLU=ON \ -D Trilinos_ENABLE_ShyLU_NodeTacho=ON \ -D Panzer_ENABLE_EXAMPLES=OFF \ -D Sacado_ENABLE_HIERARCHICAL_DFAD=ON \ -D TPL_ENABLE_gtest=OFF \ -D Trilinos_ENABLE_Gtest=OFF \ ${SOURCE}

Thank you, Kalyan

cgcgcg commented 1 month ago

I am not sure I understand what the issue is. Would you mind explaining, @kgottiparthi ?

kgottiparthi commented 1 month ago

Code configuring stops with the message below.

CMake Error at packages/zoltan2/core/CMakeLists.txt:11 (MESSAGE): Zoltan2 requires ParMETIS_version 4.0.3 or later. Upgrade or set TPL_ENABLE_ParMETIS OFF or set Zoltan2_ENABLE_ParMETIS OFF.

I have latest ParMetis installed. I even tried with -D HAVE_PARMETIS_VERSION_4_0_3l=ON. Please inform me if I need to set anything specific to configure and compile the code.

Thank you, Kalyan

cgcgcg commented 1 month ago

Ok. Can you check the output from the TPL detection for ParMETIS? The block should start with

Processing enabled external package/TPL: ParMETIS

Check that that indeed points to your installation of ParMETIS and not some old one. The next thing you can check is why the CMake check fails since it's really just compiling a small code snippet against your parmetis.h: https://github.com/trilinos/Trilinos/blob/master/packages/zoltan2/core/cmake/Zoltan2CheckParMETISVersion.cmake

kgottiparthi commented 1 month ago

Thank you. I checked parmetis.h for version and it is 4.0.3. I do not have other versions of parmetis installed. Configuration passed after I set

-D HAVE_PARMETIS_VERSION_4_0_3l="1"