[Dune] dune-istl does not find parmetis

Markus Blatt markus at dr-blatt.de
Sat Sep 5 11:26:46 CEST 2015


Hi,

DISCLAIMER: As I am a commercial user parmetis is not free to use for
            me and therefore I only use the free pt-scotch with
	    parmetis bindings. This means I can only guess here.
	    Paying customers demanding help with parmetis would
	    of course change this picture.
	    
On Thu, Sep 03, 2015 at 07:08:19PM +0200, Aleksejs Fomins wrote:
> I am sorry to return to this question again, but it seems to haunt me.
> 
> Say I want to compile dune-istl with parmetis using the attached opts
> file. The parmetis is not found by cmake, and the error is:
> #include<metis.h> - file not found

Would you please provide us with the complete compiler error such that
we know where this error comes from. I do not recall that we actually
use metis in dune-istl and can confirms this:

mblatt at boromir:~/src/dune/current$ find dune-istl -name \*.hh | xargs grep metis.h
dune-istl/dune/istl/repartition.hh:#include <parmetis.h>
mblatt at boromir:~/src/dune/current$

If this is in your own module, then you need to do a
find_package(METIS)
there.

> I have checked that this problem can be solved by copying metis.h into
> the parmetis include directory next to parmetis.h. But this is clearly
> not the desired solution.
> 

Where is metis.h located?

please provide the output of "grep METIS CMakeCache.txt"

BTW: what dune version are using?

>
> [...]

> #################################################################################################################
> ## objective - opts file for building curvilineargrid, based on Dune, with cmake
> ##
> ## history - 2014 apr 16, created
> ##
> ## usage - time ./dune-common/bin/dunecontrol --use-cmake --opts=af.debian7.lsprag.cmakebuild.minimalistic.opts all
> ##
> ##################################################################################################################
> 
> 
> USE_CMAKE=yes
> 
> CONFIGURE_FLAGS="--enable-parallel --enable-experimental-grid-extensions CC=mpicc CXX=mpicxx" 
> 
> CMAKE_PREFIX_PATH="\
> /opt/extlib/boost/1.58.0/gcc/4.8.4;\
> /opt/extlib/parmetis/4.0.3/openmpi/1.8.7/gcc/4.8.4;\
> /opt/extlib/metis/5.1.0/gcc/4.8.4;\
> /opt/extlib/superludist/3.3/openmpi/1.8.7/gcc/4.8.4;\
> /opt/extlib/superludist/3.3/openmpi/1.8.7/gcc/4.8.4/SRC;\
> /opt/extlib/superludist/3.3/openmpi/1.8.7/gcc/4.8.4/lib;\
> "
> 
> GXX_WARNING_OPTS="-Wall -pedantic" 
> GXX_OPTS="-O0 -g3" 
> 
> ## define superludist paths & library
> SUPERLU_DIST_OPTS="-DHAVE_SUPERLU_DIST"
> SUPERLU_DIST_INCLUDE_PATH="-I/opt/extlib/parmetis/4.0.3/openmpi/1.8.7/gcc/4.8.4 -I/opt/extlib/metis/5.1.0/gcc/4.8.4/include -I/opt/extlib/superludist/3.3/openmpi/1.8.7/gcc/4.8.4/SRC"
> SUPERLU_DIST_LIBRARY="-L/opt/extlib/superludist/3.3/openmpi/1.8.7/gcc/4.8.4/lib -L/opt/extlib/parmetis/4.0.3/openmpi/1.8.7/gcc/4.8.4/lib -L/opt/extlib/metis/5.1.0/gcc/4.8.4/lib -framework Accelerate"
> 
> 
> CMAKE_FLAGS=" \
> -DHADES_FLAGS=\" -DHAVE_DEBUG -DHAVE_PARMETIS -DHAVE_CURVGRID\" \
> -DCMAKE_CXXFLAGS=\"$GXX_WARNING_OPTS $GXX_OPTS $SUPERLU_DIST_INCLUDE_PATH \" \
> -DMETIS_ROOT=\"/opt/extlib/metis/5.1.0/gcc/4.8.4\" \
> -DPARMETIS_ROOT=\"/opt/extlib/parmetis/4.0.3/openmpi/1.8.7/gcc/4.8.4\" \
> -DSUPERLUDIST_ROOT=\"/opt/extlib/superludist/3.3/openmpi/1.8.7/gcc/4.8.4\" \
> -DCMAKE_LIBRARY_PATH:RELEASE=\"/opt/extlib/boost/1.58.0/gcc/4.8.4/lib\" \
> -DCMAKE_LIBRARY_PATH:DEBUG=\"/opt/extlib/boost/1.58.0/gcc/4.8.4/lib\" \
> -DCMAKE_STANDARD_LIBRARIES:RELEASE=\"-lboost_system -lprogram_options\" \
> -DCMAKE_STANDARD_LIBRARIES:DEBUG=\"-lboost_system -lprogram_options\" \
> -DCMAKE_PREFIX_PATH=\"$CMAKE_PREFIX_PATH\" \
> -DDUNE_GRID_EXPERIMENTAL_GRID_EXTENSIONS:BOOL=TRUE \
> -DCMAKE_SHARED_LINKER_FLAGS=\"-lzlib\" \
> " 
> 
> 
> 
> # -DMY_WEIRD_FLAGS='-DHAVE_SUPERLU_DIST -DBOOST_LOG_DYN_LINK -DHAVE_DEBUG' \
> # -DMY_WEIRD_LIB_PATH='-L/opt/extlib/superludist/3.3/openmpi/1.8.7/gcc/4.8.4/lib -L/opt/extlib/parmetis/4.0.3/openmpi/1.8.7/gcc/4.8.4/lib -L/opt/extlib/metis/5.1.0/gcc/4.8.4/lib' \

Out of curiosity:

This is a really complicated opts file for a Debian system. Is there a
reason not to use the standard compiler with the stock openmpi,
boost, etc. libraries instead of custom built ones?

Cheers,

Markus
-- 
Join us at the DUNE User Meeting Sept. 28-29, 2015, Heidelberg, Germany
http://users.dune-project.org/projects/dune-user-meeting-2015/wiki

Dr. Markus Blatt - HPC-Simulation-Software & Services http://www.dr-blatt.de
Hans-Bunte-Str. 8-10, 69123 Heidelberg, Germany
Tel.: +49 (0) 160 97590858
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <https://lists.dune-project.org/pipermail/dune/attachments/20150905/fbde8267/attachment.sig>


More information about the Dune mailing list