deai.II module on Stampede2

66 views
Skip to first unread message

David Montiel Taboada

unread,
Feb 15, 2021, 7:57:01 PM2/15/21
to deal.II User Group
Hello, 

I compiling PRISMS-PF, a deal.II-based framework on Stampede2 by loading the deal.II module, e.g.:

module load dealii/9.2.0

I have no errors when compiling the core library. But when I do "cmake" for any particular application  I run into the following errors (which also cause "make" to fail):

CMake Warning at CMakeLists.txt:60 (ADD_EXECUTABLE):
  Cannot generate a safe runtime search path for target main because there is
  a cycle in the constraint graph:

    dir 0 is [/home1/apps/intel18/impi18_0/dealii/9.2.0/lib]
    dir 1 is [/opt/apps/intel18/metis/5.0.2/lib]
      dir 9 must precede it due to runtime library [libmetis.so]
    dir 2 is [/home1/apps/intel18/impi18_0/trilinos/12.18.1/lib]
    dir 3 is [/opt/apps/intel18/boost/1.68/lib]
    dir 4 is [/opt/apps/intel18/impi18_0/parallel-netcdf/4.6.2/x86_64/lib]
    dir 5 is [/opt/intel/compilers_and_libraries_2018.2.199/linux/mpi/intel64/lib]
    dir 6 is [/opt/apps/intel18/gsl/2.6/lib]
    dir 7 is [/home1/apps/intel18/impi18_0/p4est/2.0/lib]
    dir 8 is [/home1/apps/intel18/impi18_0/slepc/3.11/skylake/lib]
    dir 9 is [/home1/apps/intel18/impi18_0/petsc/3.11/skylake/lib]
      dir 1 must precede it due to runtime library [libmetis.so]
    dir 10 is [/opt/apps/intel18/impi18_0/phdf5/1.10.4/x86_64/lib]
    dir 11 is [/opt/intel/compilers_and_libraries_2018.2.199/linux/mpi/intel64/lib/release_mt]

  Some of these libraries may not be found correctly.

Does anyone know why this is happening and how to fix it? I also tried including the option "-D CMAKE_IGNORE_PATH=/home1/apps/intel18/impi18_0/petsc/3.11/skylake/lib"

But that did not work. 

By the way, this error does not occur if I manually install and use deal.II on my home directory.

I've copied the contents of my CMakeLists.txt file below.

Thank you,

David

##
#  CMake script for the PRISMS-PF applications:
##

CMAKE_MINIMUM_REQUIRED(VERSION 2.8.8)

# Find deal.II installation
FIND_PACKAGE(deal.II 8.3.0 REQUIRED
HINTS ${DEAL_II_DIR} ../ ../../ $ENV{DEAL_II_DIR})

# Check to make sure deal.II is configured with p4est
IF(NOT ${DEAL_II_WITH_P4EST})
  MESSAGE(FATAL_ERROR "\n"
    "*** deal.II was not installed with p4est. ***\n\n"
    “The p4est library is a mandatory prerequisite for PRISMS-PF. Please consult the \n”
    “user guide to confirm that deal.II and p4est were installed and configured correctly.”
    )
ENDIF()

DEAL_II_INITIALIZE_CACHED_VARIABLES()

# Set up the debug, release, and run targets
ADD_CUSTOM_TARGET(debug
  COMMAND +env ${CMAKE_COMMAND} -DCMAKE_BUILD_TYPE=Debug ${CMAKE_SOURCE_DIR}
  COMMAND +env ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR} --target all
  COMMENT "Switch CMAKE_BUILD_TYPE to Debug"
  )

ADD_CUSTOM_TARGET(release
  COMMAND +env ${CMAKE_COMMAND} -DCMAKE_BUILD_TYPE=Release ${CMAKE_SOURCE_DIR}
  COMMAND +env ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR} --target all
  COMMENT "Switch CMAKE_BUILD_TYPE to Release"
  )

ADD_CUSTOM_TARGET(run COMMAND main
  COMMENT "Run with ${CMAKE_BUILD_TYPE} configuration"
  )

PROJECT(myapp)
if (${CMAKE_BUILD_TYPE} MATCHES DebugRelease)
SET(CMAKE_BUILD_TYPE Debug)
endif()

# Check if postprocess.cc and nucleation.cc exist and set preprocessor variables
if (EXISTS "postprocess.cc")
add_definitions(-DPOSTPROCESS_FILE_EXISTS)
endif()
if (EXISTS "nucleation.cc")
add_definitions(-DNUCLEATION_FILE_EXISTS)
endif()

# Append extra flags for the GNU compiler to suppress some warnings
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
        set(DEAL_II_CXX_FLAGS_DEBUG "${DEAL_II_CXX_FLAGS_DEBUG} -Wno-maybe-uninitialized -Wno-unused-parameter -Wno-extra")
        set(DEAL_II_CXX_FLAGS_RELEASE "${DEAL_II_CXX_FLAGS_RELEASE} -Wno-maybe-uninitialized -Wno-unused-parameter -Wno-extra")
        #set(DEAL_II_CXX_FLAGS_DEBUG "${DEAL_II_CXX_FLAGS_DEBUG} -Wno-maybe-uninitialized -Wno-deprecated-declarations -Wno-comment -Wno-unused-parameter -Wno-unused-variable -Wno-unused-but-set-variable")
        #set(DEAL_II_CXX_FLAGS_RELEASE "${DEAL_II_CXX_FLAGS_RELEASE} -Wno-maybe-uninitialized -Wno-deprecated-declarations -Wno-comment -Wno-unused-parameter -Wno-unused-variable -Wno-unused-but-set-variable")
endif()

ADD_EXECUTABLE(main main.cc )

DEAL_II_SETUP_TARGET(main)

set(cmd "cmake")
set(arg "CMakeLists.txt")
set(dir ${PROJECT_SOURCE_DIR}/../..)
EXECUTE_PROCESS(COMMAND ${cmd} ${arg}
WORKING_DIRECTORY ${dir})

set(cmd "make")

EXECUTE_PROCESS(COMMAND ${cmd}
WORKING_DIRECTORY ${dir})

if (${CMAKE_BUILD_TYPE} STREQUAL "Release")
TARGET_LINK_LIBRARIES(main ${CMAKE_SOURCE_DIR}/../../libprisms_pf.a)
elseif(${CMAKE_BUILD_TYPE} STREQUAL "DebugRelease")
TARGET_LINK_LIBRARIES(main ${CMAKE_SOURCE_DIR}/../../libprisms_pf.a)
else()
TARGET_LINK_LIBRARIES(main ${CMAKE_SOURCE_DIR}/../../libprisms_pf_debug.a)
endif()

Bruno Turcksin

unread,
Feb 16, 2021, 8:32:41 AM2/16/21
to deal.II User Group
David,

It looks like you have two modules that provides metis /opt/apps/intel18/metis/5.0.2/lib and /home1/apps/intel18/impi18_0/petsc/3.11/skylake/lib  This creates a conflict because the cmake see the symbols twice Which modules are you loading? Are you loading both yourself?

Best,

Bruno

David Montiel Taboada

unread,
Feb 16, 2021, 10:16:24 AM2/16/21
to dea...@googlegroups.com
Thank you, Bruno

I figured that was going on, that is why I attempted including the option to ignore one of the paths but it did not seem to have any effect. 

Here is a list of my loaded modules:

 1) intel/18.0.2      3) impi/18.0.2   5) autotools/1.1    7) cmake/3.16.1   9) TACC        11) phdf5/1.10.4*
  2) libfabric/1.7.0   4) git/2.24.1    6) python2/2.7.15   8) xalt/2.8      10) boost/1.68*  12) dealii/9.2.0*

Out of those modules, the ones I marked with an asterisk are automatically added when I load the dealii module. The rest are the default modules that are loaded when I login. 

David




--
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see https://groups.google.com/d/forum/dealii?hl=en
---
You received this message because you are subscribed to a topic in the Google Groups "deal.II User Group" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/dealii/a_LhOKG2lOo/unsubscribe.
To unsubscribe from this group and all its topics, send an email to dealii+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/dealii/3ecea24b-fa7c-4994-96ed-ec5059b8349dn%40googlegroups.com.

Bruno Turcksin

unread,
Feb 16, 2021, 1:51:11 PM2/16/21
to dea...@googlegroups.com
David,

I don't see many solutions here: 1) try to load metis yourself, if
you're lucky it may override the other metis (I doubt this will work
but it's easy to try) 2) you can try a different compiler and hope
that the stack was better compiled 3) send an email to the helpdesk.
It looks like there is a problem in the way they built their modules.

Best,

Bruno

Le mar. 16 févr. 2021 à 10:16, David Montiel Taboada
<dmon...@umich.edu> a écrit :
> To view this discussion on the web visit https://groups.google.com/d/msgid/dealii/CAJdNbL-%3DafjMAaOrh-UmX%2B7GLEJ8oMUr5UDX4XS-H17jnhwjAg%40mail.gmail.com.

David Montiel Taboada

unread,
Feb 16, 2021, 2:05:12 PM2/16/21
to dea...@googlegroups.com
Thank you, Bruno

David

You received this message because you are subscribed to the Google Groups "deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to dealii+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/dealii/CAGVt9eNWzysEZZYSr%3Dk7BcF3pvkvUWaP3aLnvrucaGsdb_cAag%40mail.gmail.com.
Reply all
Reply to author
Forward
0 new messages