[Dune] parmetis not found, am a bit puzzled

Aleksejs Fomins aleksejs.fomins at lspr.ch
Fri Mar 6 16:54:28 CET 2015


Dear Dune,

I would like to emphasize that this same code works on my pc.

The cmake/modules/DuneCurvilineargrid.cmake does have the line
find_package(ParMETIS)

I will also forward you the c-make file from the tutorial directory which is being used



Hope this helps,
Aleksejs


On 06/03/15 16:48, Benedikt Oswald wrote:
> Dear Dune, I am struggling with finding ParMETIS also I specify it the
> very same way as Aleksejs does it.
> I probably just oversee a small little detail,but would appreciate a
> hint on it.
> 
> My opts look like this:
> 
> USE_CMAKE=yes
> 
> CONFIGURE_FLAGS="--enable-parallel --enable-experimental-grid-extensions
> CC=mpicc CXX=mpicxx"
> 
> CMAKE_PREFIX_PATH="\
> /opt/extlib/boost/1.57.0/gcc/4.9.2;\
> /opt/extlib/parmetis/4.0.3/openmpi/1.8.4/gcc/4.9.2;\
> /opt/extlib/parmetis/4.0.3/openmpi/1.8.4/gcc/4.9.2/lib;\
> /opt/extlib/metis/5.1.0/gcc/4.9.2;\
> /opt/extlib/superludist/3.3/openmpi/1.8.4/gcc/4.9.2;\
> /opt/extlib/superludist/3.3/openmpi/1.8.4/gcc/4.9.2/SRC;\
> /opt/extlib/superludist/3.3/openmpi/1.8.4/gcc/4.9.2/lib;\
> "
> 
> 
> 
> ## define gcc options - nota bene: -O2 and -g2 cause gcc 4.9.2 to crash
> but -O2 alone works !
> GXX_OPT=""
> GXX_WARNING_OPT="-Wall -pedantic"
> GXX_OPTIMIZATION_OPT="-O2"
> 
> 
> ## define superludist paths & library
> SUPERLU_DIST_OPTS="-DHAVE_SUPERLU_DIST"
> SUPERLU_DIST_INCLUDE_PATH="-I/opt/extlib/parmetis/4.0.3/openmpi/1.8.4/gcc/4.9.2/include
> -I/opt/extlib/metis/5.1.0/gcc/4.9.2/include
> -I/opt/extlib/superludist/3.3/openmpi/1.8.4/gcc/4.9.2/SRC"
> SUPERLU_DIST_LIBRARY="-L/opt/extlib/superludist/3.3/openmpi/1.8.4/gcc/4.9.2/lib
> -lsuperludist -L/opt/extlib/parmetis/4.0.3/openmpi/1.8.4/gcc/4.9.2/lib
> -lparmetis -L/opt/extlib/metis/5.1.0/gcc/4.9.2/lib -lmetis -framework
> Accelerate"
> 
> 
> 
> 
> CMAKE_FLAGS="\
> -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.4/gcc/4.9.2/lib
> -L/opt/extlib/parmetis/4.0.3/openmpi/1.8.4/gcc/4.9.2/lib
> -L/opt/extlib/metis/5.1.0/gcc/4.9.2/lib' \
> -DMY_WEIRD_LIBS='superludist;parmetis;metis' \
> -DCMAKE_CXX_FLAGS=\"$GXX_WARNING_OPT $GXX_OPT $SUPERLU_DIST_INCLUDE_PATH
> \" \
> -DPARMETIS_ROOT="/opt/extlib/parmetis/4.0.3/openmpi/1.8.4/gcc/4.9.2" \
> -DCMAKE_LIBRARY_PATH:RELEASE=\"/opt/extlib/boost/1.57.0/gcc/4.9.2/lib\" \
> -DCMAKE_LIBRARY_PATH:DEBUG=\"/opt/extlib/boost/1.57.0/gcc/4.9.2/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 \
> 
> 
> 
> 
> 
> =================================
> and then it happens like this,namely METIS is found but not ParMETIS,
> cf. output below:
> 
> 
> 
> 
> -- Looking for metis.h
> -- Looking for metis.h - found
> -- Looking for METIS_PartGraphKway
> -- Looking for METIS_PartGraphKway - found
> -- Found METIS: /opt/extlib/metis/5.1.0/gcc/4.9.2/include 
> -- Looking for parmetis.h
> -- Looking for parmetis.h - not found
> -- Could NOT find ParMETIS (missing:  PARMETIS_LIBRARY HAVE_PARMETIS)
> 
> 
> =========
> odysseus:hades-dune oswald$ uname -a
> Darwin odysseus.local 14.1.0 Darwin Kernel Version 14.1.0: Mon Dec 22 23:10:38 PST 2014; root:xnu-2782.10.72~2/RELEASE_X86_64 x86_64
> 
> Dune is latest trunk from this afternoon.
> 
> Greetings & thanks, Benedikt
> 
> 
> 
> 
> 
> ------------------------------------------------------------------------------------------------
> Dr. sc. techn. Benedikt Oswald - first engineer - LSPR AG - phone - +41 43 366 90 74
> Technoparkstrasse 1, CH-8005 Zürich, benedikt.oswald at lspr.ch - labor vincit omnia improbus
> ------------------------------------------------------------------------------------------------
> 
> 
> _______________________________________________
> Dune mailing list
> Dune at dune-project.org
> http://lists.dune-project.org/mailman/listinfo/dune
> 
-------------- next part --------------
# Define variable with path to the grids to be used in the code
add_definitions("-DDUNE_CURVILINEARGRID_EXAMPLE_GRIDS_PATH=\"${PROJECT_SOURCE_DIR}/doc/grids/\"")

# Define tests to be run
set(TESTS
	tutorial1gettingstarted
	tutorial2traversal
	tutorial3visualisation
)

add_executable(tutorial1gettingstarted tutorial1gettingstarted.cc)
add_executable(tutorial2traversal tutorial2traversal.cc)
add_executable(tutorial3visualisation tutorial3visualisation.cc)
target_link_libraries(tutorial1gettingstarted dunecommon dunegeometry dunegrid) # dunecurvilineargeometry
target_link_libraries(tutorial2traversal dunecommon dunegeometry dunegrid) # dunecurvilineargeometry
target_link_libraries(tutorial3visualisation dunecommon dunegeometry dunegrid) # dunecurvilineargeometry


# We do not want want to build the tests during make all,
# but just build them on demand
add_directory_test_target(_test_target)
add_dependencies(${_test_target} ${TESTS})

foreach(_test ${TESTS})
  add_test(${_test} ${_test})
endforeach(_test ${TESTS})


# Add parmetis
if(HAVE_MPI)
    add_dune_mpi_flags(tutorial1gettingstarted)
    add_dune_mpi_flags(tutorial2traversal)
    add_dune_mpi_flags(tutorial3visualisation)
    add_dune_parmetis_flags(tutorial1gettingstarted)
    add_dune_parmetis_flags(tutorial2traversal)
    add_dune_parmetis_flags(tutorial3visualisation)
endif(HAVE_MPI)

# Add boost
if(Boost_FOUND)
   target_link_libraries(tutorial1gettingstarted ${Boost_LIBRARIES})
   target_link_libraries(tutorial2traversal ${Boost_LIBRARIES})
   target_link_libraries(tutorial3visualisation ${Boost_LIBRARIES})
endif()


More information about the Dune mailing list