[Dune] a problem with ALUGrid and Metis

Arya Fallahi arya.fallahi at gmail.com
Mon Jul 5 11:13:42 CEST 2021


Dear Simon,

thank you very much for your email and answer to my question.

I checked your branch and did exactly the same thing as your changes in my
alugrid but it still does not work.

The strange thing I see now is that during compilation, first metis is
found:

Found METIS: /Users/afallahi/Documents/library/metis-5.1/lib/libmetis.a
(found version "5.1")

but afterward I see the following message:

-- Could NOT find METIS (missing: METIS_LIBRARY METIS_INCLUDE_DIR
METIS_API_VERSION)

I am now enabling the metis support in my opts file using

-DMETIS_ROOT=/Users/afallahi/Documents/library/metis-5.1

Is there anything else I should do?

Again thanks a lot for your help and best regards,

Arya

On Sat, Jul 3, 2021 at 8:49 PM Simon Praetorius <
simon.praetorius at tu-dresden.de> wrote:

> Dear Arya,
>
> in ALUGrid, METIS is disabled additionally by a variable ALUGRID_DISABLE_METIS
> that is set to true by default (I don't know why, maybe the developers can
> answer) and also you have to set METIS flags on your cmake target to get it
> properly enabled, by using `dune_add_mets_flags(<target>)`with `<target`
> your cmake target name (e.g. an executable).
>
> I suggest, you try out the branch bugfix/cmake-add-metis-flags that I have
> uploaded quiet recently, so solve these shortcoming with METIS in ALUGrid.
>
> Best regards,
> Simon
>
>
> Am 02.07.21 um 19:16 schrieb Arya Fallahi:
>
> Dear Dune,
>
> I am having a trouble with installing ALUGrid with support metis. In my
> opts file I write the following to tell ALUGrid the location of metis:
>
> CMAKE_FLAGS="
>
>   -DCMAKE_CXX_COMPILER=/Users/afallahi/Documents/library/gcc-9.2/bin/g++ \
>
>   -DCMAKE_CXX_FLAGS='-O3' \
>
>   -DCMAKE_C_COMPILER=/Users/afallahi/Documents/library/gcc-9.2/bin/gcc \
>
>   -DCMAKE_C_FLAGS='-O3' \
>
>   -DDUNE_GRID_GRIDTYPE_SELECTOR=ON \
>
>   -DMETIS_DIR=/usr/local/Cellar/metis/5.1.0
>
> "
>
> then, during the compilation it seems metis is found:
>
> --- calling all for dune-alugrid ---
>
> --- calling vcsetup for dune-alugrid ---
>
> --- calling cmake for dune-alugrid ---
>
> ----- using default flags $CMAKE_FLAGS from
> /Users/afallahi/Documents/codes/leist.opts -----
>
> WARNING: could not find module 'dune-uggrid',
>
>        module is also unknown to pkg-config.
>
>        Maybe you need to adjust PKG_CONFIG_PATH!
>
>        'dune-uggrid' is suggested by dune-grid
>
> Skipping 'dune-uggrid'!
>
> cmake   -DCMAKE_CXX_COMPILER=/Users/afallahi/Documents/library/gcc-9.2/bin/g++
> -DCMAKE_CXX_FLAGS='-O3'
> -DCMAKE_C_COMPILER=/Users/afallahi/Documents/library/gcc-9.2/bin/gcc
> -DCMAKE_C_FLAGS='-O3' -DDUNE_GRID_GRIDTYPE_SELECTOR=ON
> -DMETIS_DIR=/usr/local/Cellar/metis/5.1.0
> "-Ddune-common_DIR=/Users/afallahi/Documents/codes/dune-common/build-cmake"
> "-Ddune-geometry_DIR=/Users/afallahi/Documents/codes/dune-geometry/build-cmake"
> "-Ddune-grid_DIR=/Users/afallahi/Documents/codes/dune-grid/build-cmake"
> -DCMAKE_CXX_COMPILER=/Users/afallahi/Documents/library/gcc-9.2/bin/g++
> -DCMAKE_CXX_FLAGS='-O3'
> -DCMAKE_C_COMPILER=/Users/afallahi/Documents/library/gcc-9.2/bin/gcc
> -DCMAKE_C_FLAGS='-O3' -DDUNE_GRID_GRIDTYPE_SELECTOR=ON
> -DMETIS_DIR=/usr/local/Cellar/metis/5.1.0
> "/Users/afallahi/Documents/codes/dune-alugrid"
>
> -- Dependencies for dune-alugrid: dune-grid (>= 2.8)
>
> -- Dependencies for dune-grid: dune-geometry (>= 2.8)
>
> -- Suggestions for dune-grid: dune-uggrid (>=2.8)
>
> -- Dependencies for dune-geometry: dune-common (>= 2.8)
>
> -- Could NOT find dune-uggrid (missing: dune-uggrid_DIR)
>
> -- No full CMake package configuration support available. Falling back to
> pkg-config.
>
> -- Checking for module 'dune-uggrid>=2.8'
>
> --   No package 'dune-uggrid' found
>
> -- Could NOT find Sphinx (missing: SPHINX_EXECUTABLE)
>
> -- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
>
> -- Searching for macro file 'DuneCommonMacros' for module 'dune-common'.
>
> -- Performing tests specific to dune-common from file
> /Users/afallahi/Documents/codes/dune-common/cmake/modules/DuneCommonMacros.cmake.
>
> -- Set Minimal Debug Level to 4
>
> -- Could NOT find GMP (missing: GMPXX_LIB GMPXX_INCLUDE_DIR
> GMP_INCLUDE_DIR GMP_LIB)
>
> -- Found MPI_C:
> /Users/afallahi/Documents/library/openmpi-4.0/lib/libmpi.dylib (found
> suitable version "3.1", minimum required is "3.0")
>
> -- Found MPI: TRUE (found suitable version "3.1", minimum required is
> "3.0") found components: C
>
> -- Could NOT find TBB (set TBB_DIR to path containing TBBConfig.cmake or
> set PKG_CONFIG_PATH to include the location of the tbb.pc file) (missing:
> PkgConfigTBB_LINK_LIBRARIES PkgConfigTBB_FOUND) (found version "")
>
> -- Could NOT find PTScotch (missing: SCOTCH_LIBRARY SCOTCHERR_LIBRARY
> SCOTCH_INCLUDE_DIR)
>
> -- Found MPI_C:
> /Users/afallahi/Documents/library/openmpi-4.0/lib/libmpi.dylib (found
> version "3.1")
>
> -- Found MPI: TRUE (found version "3.1") found components: C
>
> -- Could NOT find ParMETIS (missing: PARMETIS_LIBRARY
> PARMETIS_INCLUDE_DIR) (Required is at least version "4.0")
>
> -- Could NOT find Vc (missing: Vc_DIR)
>
> -- Setting
> dune-common_INCLUDE_DIRS=/Users/afallahi/Documents/codes/dune-common
>
> -- Setting dune-common_LIBRARIES=dunecommon
>
> -- Searching for macro file 'DuneUggridMacros' for module 'dune-uggrid'.
>
> -- No module specific tests performed for module 'dune-uggrid' because
> macro file 'DuneUggridMacros.cmake' not found in
> /Users/afallahi/Documents/codes/dune-alugrid/cmake/modules;/Users/afallahi/Documents/codes/dune-grid/cmake/modules;/Users/afallahi/Documents/codes/dune-geometry/cmake/modules;/Users/afallahi/Documents/codes/dune-common/cmake/modules.
>
> -- Searching for macro file 'DuneGeometryMacros' for module
> 'dune-geometry'.
>
> -- No module specific tests performed for module 'dune-geometry' because
> macro file 'DuneGeometryMacros.cmake' not found in
> /Users/afallahi/Documents/codes/dune-alugrid/cmake/modules;/Users/afallahi/Documents/codes/dune-grid/cmake/modules;/Users/afallahi/Documents/codes/dune-geometry/cmake/modules;/Users/afallahi/Documents/codes/dune-common/cmake/modules.
>
> -- Setting
> dune-geometry_INCLUDE_DIRS=/Users/afallahi/Documents/codes/dune-geometry
>
> -- Setting dune-geometry_LIBRARIES=dunegeometry
>
> -- Searching for macro file 'DuneGridMacros' for module 'dune-grid'.
>
> -- Performing tests specific to dune-grid from file
> /Users/afallahi/Documents/codes/dune-grid/cmake/modules/DuneGridMacros.cmake.
>
> -- Could NOT find ParMETIS (missing: PARMETIS_LIBRARY PARMETIS_INCLUDE_DIR)
>
>
> -- Checking for module 'alberta-grid_1d>=3.0'
>
> --   No package 'alberta-grid_1d' found
>
> -- Checking for module 'alberta-grid_2d>=3.0'
>
> --   No package 'alberta-grid_2d' found
>
> -- Checking for module 'alberta-grid_3d>=3.0'
>
> --   No package 'alberta-grid_3d' found
>
> -- Checking for module 'alberta-grid_4d>=3.0'
>
> --   No package 'alberta-grid_4d' found
>
> -- Checking for module 'alberta-grid_5d>=3.0'
>
> --   No package 'alberta-grid_5d' found
>
> -- Checking for module 'alberta-grid_6d>=3.0'
>
> --   No package 'alberta-grid_6d' found
>
> -- Checking for module 'alberta-grid_7d>=3.0'
>
> --   No package 'alberta-grid_7d' found
>
> -- Checking for module 'alberta-grid_8d>=3.0'
>
> --   No package 'alberta-grid_8d' found
>
> -- Checking for module 'alberta-grid_9d>=3.0'
>
> --   No package 'alberta-grid_9d' found
>
> -- Could NOT find Alberta (set PKG_CONFIG_PATH to include the location of
> the alberta-grid_[n]d.pc files) (missing: ALBERTA_GRID_PREFIX) (Required is
> at least version "3.0")
>
> CMake Warning (dev) at
> /Applications/CMake.app/Contents/share/cmake-3.20/Modules/FindPackageHandleStandardArgs.cmake:438
> (message):
>
>   The package name passed to `find_package_handle_standard_args`
> (PkgConfig)
>
>   does not match the name of the calling package (Psurface).  This can
> lead
>
>   to problems in calling code that expects `find_package` result variables
>
>   (e.g., `_FOUND`) to follow a certain pattern.
>
> Call Stack (most recent call first):
>
>   /Applications/CMake.app/Contents/share/cmake-3.20/Modules/FindPkgConfig.cmake:70
> (find_package_handle_standard_args)
>
>   /Users/afallahi/Documents/codes/dune-grid/cmake/modules/FindPsurface.cmake:63
> (include)
>
>   /Users/afallahi/Documents/codes/dune-grid/cmake/modules/DuneGridMacros.cmake:20
> (find_package)
>
>   /Users/afallahi/Documents/codes/dune-common/cmake/modules/DuneMacros.cmake:614
> (include)
>
>   /Users/afallahi/Documents/codes/dune-common/cmake/modules/DuneMacros.cmake:704
> (dune_process_dependency_macros)
>
>   CMakeLists.txt:48 (dune_project)
>
> This warning is for project developers.  Use -Wno-dev to suppress it.
>
>
> -- Checking for one of the modules 'psurface'
>
> -- Checking for module 'psurface'
>
> --   No package 'psurface' found
>
> -- Could NOT find Psurface (missing: PSURFACE_INCLUDE_DIR PSURFACE_LIBRARY)
>
>
> -- Could NOT find AmiraMesh (missing: AMIRAMESH_INCLUDE_DIR
> AMIRAMESH_LIBRARY)
>
> -- Setting dune-grid_INCLUDE_DIRS=/Users/afallahi/Documents/codes/dune-grid
>
> -- Setting dune-grid_LIBRARIES=dunegrid
>
> -- Searching for macro file 'DuneAlugridMacros' for module 'dune-alugrid'.
>
> -- Performing tests specific to dune-alugrid from file
> /Users/afallahi/Documents/codes/dune-alugrid/cmake/modules/DuneAlugridMacros.cmake.
>
> -- Could NOT find SIONlib (missing: SIONLIB_INCLUDE_DIR SIONLIB_LIBRARY
> SIONLIB_HEADER_USABLE SIONLIB_LIB_WORKS SIONLIB_LIB_SIONSER_WORKS)
>
> -- Could NOT find DLMalloc (missing: DLMALLOC_INCLUDE_DIR
> DLMALLOC_SOURCE_INCLUDE)
>
> -- Could NOT find PTScotch (missing: SCOTCH_LIBRARY SCOTCHERR_LIBRARY
> SCOTCH_INCLUDE_DIR)
>
> Found ZOLTAN_INCLUDE_DIRS-NOTFOUND
>
> Found ZOLTAN_LIBRARIES-NOTFOUND
>
> -- Not enabling torture-tests
>
> -- Using scripts from
> /Users/afallahi/Documents/codes/dune-common/cmake/scripts for creating
> doxygen stuff.
>
> CMake Deprecation Warning at
> /Users/afallahi/Documents/codes/dune-common/cmake/modules/DuneMacros.cmake:168
> (message):
>
>   Calling target_link_libraries without the <scope> argument is
> deprecated.
>
> Call Stack (most recent call first):
>
>   /Users/afallahi/Documents/codes/dune-common/cmake/modules/DuneMacros.cmake:159
> (target_link_libraries_helper)
>
>   lib/CMakeLists.txt:28 (target_link_libraries)
>
>
>
> CMake Deprecation Warning at
> /Users/afallahi/Documents/codes/dune-common/cmake/modules/DuneMacros.cmake:168
> (message):
>
>   Calling target_link_libraries without the <scope> argument is
> deprecated.
>
> Call Stack (most recent call first):
>
>   /Users/afallahi/Documents/codes/dune-common/cmake/modules/DuneMacros.cmake:159
> (target_link_libraries_helper)
>
>   lib/CMakeLists.txt:32 (target_link_libraries)
>
>
>
> CMake Deprecation Warning at
> /Users/afallahi/Documents/codes/dune-common/cmake/modules/DuneMacros.cmake:168
> (message):
>
>   Calling target_link_libraries without the <scope> argument is
> deprecated.
>
> Call Stack (most recent call first):
>
>   /Users/afallahi/Documents/codes/dune-common/cmake/modules/DuneMacros.cmake:159
> (target_link_libraries_helper)
>
>   lib/CMakeLists.txt:44 (target_link_libraries)
>
>
>
> -- Adding custom target for config.h generation
>
> -- The following OPTIONAL packages have been found:
>
>
>  * LATEX
>
>  * LatexMk
>
>  * BLAS, fast linear algebra routines
>
>  * LAPACK, fast linear algebra routines
>
>  * QuadMath, GCC Quad-Precision Math Library, <
> https://gcc.gnu.org/onlinedocs/libquadmath>
>
>  * Inkscape, converts SVG images, <www.inkscape.org>
>
>    To generate the documentation with LaTeX
>
>  * Threads, Multi-threading library
>
>  * Python3
>
>  * PkgConfig, Unified interface for querying installed libraries
>
>    To find Dune module dependencies
>
>  * ZLIB
>
>  * METIS, Serial Graph Partitioning
>
>
> -- The following REQUIRED packages have been found:
>
>
>  * dune-common
>
>  * dune-grid
>
>  * dune-geometry
>
>
> -- The following OPTIONAL packages have not been found:
>
>
>  * dune-uggrid
>
>  * Sphinx, Documentation generator, <www.sphinx-doc.org>
>
>    To generate the documentation from CMake and Python sources
>
>  * Doxygen, Class documentation generator, <www.doxygen.org>
>
>    To generate the class documentation from C++ sources
>
>  * GMP, GNU multi-precision library, <https://gmplib.org>
>
>  * TBB, Intel's Threading Building Blocks
>
>  * Vc, C++ Vectorization library, <https://github.com/VcDevel/Vc>
>
>    For use of SIMD instructions
>
>  * ParMETIS, Parallel Graph Partitioning
>
>  * Alberta (required version >= 3.0), An adaptive hierarchical finite
> element toolbox and grid manager
>
>  * Psurface, Piecewise linear bijections between triangulated surfaces
>
>  * AmiraMesh
>
>  * SIONlib
>
>  * DLMalloc
>
>  * PTScotch, Sequential and Parallel Graph Partitioning
>
>  * ZOLTAN
>
>
> -- Configuring done
>
> CMake Warning (dev) in CMakeLists.txt:
>
>   Policy CMP0087 is not set: Install CODE|SCRIPT allow the use of
> generator
>
>   expressions.  Run "cmake --help-policy CMP0087" for policy details.  Use
>
>   the cmake_policy command to set the policy and suppress this warning.
>
> This warning is for project developers.  Use -Wno-dev to suppress it.
>
>
> -- Generating done
>
> -- Build files have been written to:
> /Users/afallahi/Documents/codes/dune-alugrid/build-cmake
>
> --- calling make for dune-alugrid ---
>
> build directory: build-cmake
>
> cmake --build . --
>
> Consolidate compiler generated dependencies of target dunealugrid
>
> [  4%] Building CXX object
> lib/CMakeFiles/dunealugrid.dir/__/dune/alugrid/impl/binaryio.cc.o
>
> [  8%] Building CXX object
> lib/CMakeFiles/dunealugrid.dir/__/dune/alugrid/impl/macrofileheader.cc.o
>
> [ 12%] Building CXX object
> lib/CMakeFiles/dunealugrid.dir/__/dune/alugrid/impl/serial/ghost_info.cc.o
>
> [ 16%] Building CXX object
> lib/CMakeFiles/dunealugrid.dir/__/dune/alugrid/impl/serial/gitter_geo.cc.o
>
> [ 20%] Building CXX object
> lib/CMakeFiles/dunealugrid.dir/__/dune/alugrid/impl/serial/gitter_hexa_top.cc.o
>
> [ 24%] Building CXX object
> lib/CMakeFiles/dunealugrid.dir/__/dune/alugrid/impl/serial/gitter_impl.cc.o
>
> [ 28%] Building CXX object
> lib/CMakeFiles/dunealugrid.dir/__/dune/alugrid/impl/serial/gitter_mgb.cc.o
>
> [ 32%] Building CXX object
> lib/CMakeFiles/dunealugrid.dir/__/dune/alugrid/impl/serial/gitter_sti.cc.o
>
> [ 32%] Building CXX object
> lib/CMakeFiles/dunealugrid.dir/__/dune/alugrid/impl/serial/gitter_tetra_top.cc.o
>
> [ 36%] Building CXX object
> lib/CMakeFiles/dunealugrid.dir/__/dune/alugrid/impl/serial/mapp_cube_3d.cc.o
>
> [ 40%] Building CXX object
> lib/CMakeFiles/dunealugrid.dir/__/dune/alugrid/impl/serial/mapp_tetra_3d.cc.o
>
> [ 44%] Building CXX object
> lib/CMakeFiles/dunealugrid.dir/__/dune/alugrid/impl/serial/myalloc.cc.o
>
> [ 48%] Building CXX object
> lib/CMakeFiles/dunealugrid.dir/__/dune/alugrid/impl/duneinterface/gitter_dune_impl.cc.o
>
> [ 52%] Building CXX object
> lib/CMakeFiles/dunealugrid.dir/__/dune/alugrid/impl/serial/ghost_elements.cc.o
>
> [ 56%] Building CXX object
> lib/CMakeFiles/dunealugrid.dir/__/dune/alugrid/impl/duneinterface/gitter_dune_pll_impl.cc.o
>
> [ 60%] Building CXX object
> lib/CMakeFiles/dunealugrid.dir/__/dune/alugrid/impl/parallel/mpAccess.cc.o
>
> [ 64%] Building CXX object
> lib/CMakeFiles/dunealugrid.dir/__/dune/alugrid/impl/parallel/gitter_hexa_top_pll.cc.o
>
> [ 68%] Building CXX object
> lib/CMakeFiles/dunealugrid.dir/__/dune/alugrid/impl/parallel/gitter_pll_impl.cc.o
>
> [ 68%] Building CXX object
> lib/CMakeFiles/dunealugrid.dir/__/dune/alugrid/impl/parallel/gitter_pll_idn.cc.o
>
> [ 72%] Building CXX object
> lib/CMakeFiles/dunealugrid.dir/__/dune/alugrid/impl/parallel/gitter_pll_ldb.cc.o
>
> [ 76%] Building CXX object
> lib/CMakeFiles/dunealugrid.dir/__/dune/alugrid/impl/parallel/gitter_pll_mgb.cc.o
>
> [ 80%] Building CXX object
> lib/CMakeFiles/dunealugrid.dir/__/dune/alugrid/impl/parallel/gitter_pll_sti.cc.o
>
> [ 84%] Building CXX object
> lib/CMakeFiles/dunealugrid.dir/__/dune/alugrid/impl/parallel/gitter_tetra_top_pll.cc.o
>
> [ 88%] Building CXX object
> lib/CMakeFiles/dunealugrid.dir/__/dune/alugrid/3d/faceutility.cc.o
>
> [ 92%] Building CXX object
> lib/CMakeFiles/dunealugrid.dir/__/dune/alugrid/3d/mappings.cc.o
>
> [ 96%] Building CXX object
> lib/CMakeFiles/dunealugrid.dir/__/dune/alugrid/3d/topology.cc.o
>
> [100%] Linking CXX static library libdunealugrid.a
>
> [100%] Built target dunealugrid
>
> --- dune-alugrid done ---
>
> but when I run my code at the point I call loadBalance(), I still get the
> following error message:
>
> **ERROR The use of METIS_PartGraphRecursive is not supported, when the
> METIS library is missing!  in:
> /Users/afallahi/Documents/codes/dune-alugrid/dune/alugrid/impl/parallel/alumetis.hh
> line: 137
>
> **INFO Due to license reasons the library METIS is
>
>        not part of the ALUGrid library distribution.
>
>        To use this feature get a copy of the METIS library
>
>        (see http://www-users.cs.umn.edu/~karypis/metis/metis/ )
>
>        and re-configure the ALUGrid library with the
>
>        --with-metis=PATH_TO_METIS option,
>
>        or choose another Graph partitioning method.
>
>        Exiting program, bye!
>
> I am stuck since several days in the problem, I will be thankful if you
> give me a hint how to resolve the issue.
>
> Best regards
>
> _______________________________________________
> Dune mailing listDune at lists.dune-project.orghttps://lists.dune-project.org/mailman/listinfo/dune
>
> --
> Dr. Simon Praetorius
> Technische Universität Dresden
> Institute of Scientific Computing
> phone: +49 351 463-34432
> mail: simon.praetorius at tu-dresden.de
> web: https://tu-dresden.de/mn/math/wir/das-institut/beschaeftigte/simon-praetorius
>
> _______________________________________________
> Dune mailing list
> Dune at lists.dune-project.org
> https://lists.dune-project.org/mailman/listinfo/dune
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.dune-project.org/pipermail/dune/attachments/20210705/9d67d0fc/attachment.htm>


More information about the Dune mailing list