From 9452653f7d9e8533fa0d94ae903f89380f2209d3 Mon Sep 17 00:00:00 2001 From: Kris Beckwith Date: Tue, 4 Jun 2019 16:56:18 -0600 Subject: [PATCH 1/2] Add Intel 18.0.5 compiler to ATDM environment. --- cmake/std/atdm/sems-rhel7/environment.sh | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/cmake/std/atdm/sems-rhel7/environment.sh b/cmake/std/atdm/sems-rhel7/environment.sh index bc3f8d67cfb0..ef03402dd8b1 100755 --- a/cmake/std/atdm/sems-rhel7/environment.sh +++ b/cmake/std/atdm/sems-rhel7/environment.sh @@ -160,6 +160,20 @@ elif [[ "$ATDM_CONFIG_COMPILER" == "INTEL-17.0.1" ]] ; then if [[ "${ATDM_CONFIG_LM_LICENSE_FILE_OVERRIDE}" != "" ]] ; then export LM_LICENSE_FILE=${ATDM_CONFIG_LM_LICENSE_FILE_OVERRIDE} fi +elif [[ "$ATDM_CONFIG_COMPILER" == "INTEL-18.0.5" ]] ; then + module load sems-gcc/7.2.0 + module load sems-intel/18.0.5 + module load atdm-env + module load atdm-mkl/18.0.5 + export OMPI_CXX=`which icpc` + export OMPI_CC=`which icc` + export OMPI_FC=`which ifort` + export ATDM_CONFIG_LAPACK_LIBS="-mkl" + export ATDM_CONFIG_BLAS_LIBS="-mkl" + export LM_LICENSE_FILE=28518@cee-infra009.sandia.gov + if [[ "${ATDM_CONFIG_LM_LICENSE_FILE_OVERRIDE}" != "" ]] ; then + export LM_LICENSE_FILE=${ATDM_CONFIG_LM_LICENSE_FILE_OVERRIDE} + fi elif [[ "$ATDM_CONFIG_COMPILER" == "CUDA-9.2" ]] ; then module load sems-gcc/7.2.0 module load sems-cuda/9.2 From 263062a355d9dbf7af715f9394827cf3c92c19b5 Mon Sep 17 00:00:00 2001 From: Alan Williams Date: Tue, 4 Jun 2019 17:01:45 -0600 Subject: [PATCH 2/2] Fixes to make stk build when BoostLib is not enabled. This does of course exclude some files/capabilities... --- .../stk_balance/stk_balance/CMakeLists.txt | 14 ++++++---- packages/stk/stk_io/stk_io/InputFile.cpp | 7 ++++- .../stk/stk_io/stk_io/StkMeshIoBroker.cpp | 7 +++++ packages/stk/stk_search/CMakeLists.txt | 2 -- .../stk/stk_search/cmake/Dependencies.cmake | 2 +- .../stk_search/integrationtest/CMakeLists.txt | 28 +++++++++++++++++-- .../stk_search/stk_search/CoarseSearch.hpp | 12 ++++++++ .../stk/stk_search/unit_tests/CMakeLists.txt | 17 +++++++++-- .../stk_search/unit_tests/UnitTestUtils.hpp | 2 ++ .../PeriodicBoundarySearch.hpp | 3 ++ .../stk_tools/block_extractor/main.cpp | 14 ++++++++++ .../stk/stk_transfer/cmake/Dependencies.cmake | 2 +- packages/stk/stk_util/stk_util/CMakeLists.txt | 2 +- 13 files changed, 95 insertions(+), 17 deletions(-) diff --git a/packages/stk/stk_balance/stk_balance/CMakeLists.txt b/packages/stk/stk_balance/stk_balance/CMakeLists.txt index 0278cc810dfe..cc3f9ba47a89 100644 --- a/packages/stk/stk_balance/stk_balance/CMakeLists.txt +++ b/packages/stk/stk_balance/stk_balance/CMakeLists.txt @@ -65,6 +65,11 @@ FILE(GLOB SOURCES *.cpp) FILE(GLOB HEADERS_INTERNAL ${CMAKE_CURRENT_SOURCE_DIR}/internal/*.hpp) FILE(GLOB SOURCES_INTERNAL ${CMAKE_CURRENT_SOURCE_DIR}/internal/*.cpp) +IF(NOT TPL_ENABLE_BoostLib) +LIST(REMOVE_ITEM HEADERS_INTERNAL "${CMAKE_CURRENT_SOURCE_DIR}/internal/balanceCommandLine.hpp") +LIST(REMOVE_ITEM SOURCES_INTERNAL "${CMAKE_CURRENT_SOURCE_DIR}/internal/balanceCommandLine.cpp") +ENDIF() + FILE(GLOB HEADERS_SEARCH_TOLERANCE ${CMAKE_CURRENT_SOURCE_DIR}/search_tolerance/*.hpp) FILE(GLOB HEADERS_SEARCH_TOLERANCE_ALGS ${CMAKE_CURRENT_SOURCE_DIR}/search_tolerance_algs/*.hpp) @@ -88,12 +93,7 @@ TRIBITS_ADD_LIBRARY( DEPLIBS ) -# TRIBITS_ADD_LIBRARY( -# stk_balance_search_tolerance_algs -# NOINSTALLHEADERS ${HEADERS_SEARCH_TOLERANCE_ALGS} -# SOURCES ${SOURCES_SEARCH_TOLERANCE_ALGS} -# DEPLIBS -# ) +IF(TPL_ENABLE_BoostLib) TRIBITS_ADD_EXECUTABLE( stk_balance @@ -109,6 +109,8 @@ TRIBITS_ADD_EXECUTABLE( NOEXEPREFIX INSTALLABLE ) +ENDIF() + INSTALL(FILES ${HEADERS} DESTINATION ${CMAKE_INSTALL_PREFIX}/${${PROJECT_NAME}_INSTALL_INCLUDE_DIR}/stk_balance) INSTALL(FILES ${HEADERS_INTERNAL} DESTINATION diff --git a/packages/stk/stk_io/stk_io/InputFile.cpp b/packages/stk/stk_io/stk_io/InputFile.cpp index f7f8918d2e70..275de1806599 100644 --- a/packages/stk/stk_io/stk_io/InputFile.cpp +++ b/packages/stk/stk_io/stk_io/InputFile.cpp @@ -33,6 +33,7 @@ // ####################### Start Clang Header Tool Managed Headers ######################## // clang-format off +#include #include #include // for fmod #include // for size_t @@ -46,7 +47,9 @@ #include // for FieldBase, etc #include // for find_restriction #include // for MetaData +#if defined(STK_HAVE_BOOSTLIB) #include +#endif #include // for ThrowErrorMsgIf #include // for pair #include "Ioss_DBUsage.h" // for DatabaseUsage, etc @@ -132,8 +135,10 @@ namespace stk { Ioss::DatabaseUsage db_usage = Ioss::READ_MODEL; if (m_db_purpose == stk::io::READ_RESTART) db_usage = Ioss::READ_RESTART; - + +#if defined(STK_HAVE_BOOSTLIB) stk::util::filename_substitution(mesh_filename); +#endif m_database = Teuchos::rcp(Ioss::IOFactory::create(mesh_type, mesh_filename, db_usage, communicator, properties)); diff --git a/packages/stk/stk_io/stk_io/StkMeshIoBroker.cpp b/packages/stk/stk_io/stk_io/StkMeshIoBroker.cpp index 0855f0953ede..b50a871131e4 100644 --- a/packages/stk/stk_io/stk_io/StkMeshIoBroker.cpp +++ b/packages/stk/stk_io/stk_io/StkMeshIoBroker.cpp @@ -33,6 +33,7 @@ // ####################### Start Clang Header Tool Managed Headers ######################## // clang-format off +#include #include #include #include // for Initializer @@ -55,7 +56,9 @@ #include // for Field #include #include // for MetaData, etc +#if defined(STK_HAVE_BOOSTLIB) #include +#endif #include // for ThrowErrorMsgIf, etc #include // for pair, make_pair #include "Ioss_CodeTypes.h" // for NameList @@ -505,7 +508,9 @@ size_t StkMeshIoBroker::create_output_mesh(const std::string &filename, Database } std::string out_filename = filename; +#if defined(STK_HAVE_BOOSTLIB) stk::util::filename_substitution(out_filename); +#endif Ioss::Region *input_region = nullptr; if (is_index_valid(m_inputFiles, m_activeMeshIndex)) { input_region = get_input_io_region().get(); @@ -1157,7 +1162,9 @@ size_t StkMeshIoBroker::add_heartbeat_output(const std::string &filename, Heartb const Ioss::PropertyManager &properties, bool openFileImmediately) { std::string out_filename = filename; +#if defined(STK_HAVE_BOOSTLIB) stk::util::filename_substitution(out_filename); +#endif auto heartbeat = Teuchos::rcp(new impl::Heartbeat(out_filename, hb_type, properties, m_communicator, openFileImmediately)); m_heartbeat.push_back(heartbeat); diff --git a/packages/stk/stk_search/CMakeLists.txt b/packages/stk/stk_search/CMakeLists.txt index e832fa72c0f4..1b2de6461c22 100644 --- a/packages/stk/stk_search/CMakeLists.txt +++ b/packages/stk/stk_search/CMakeLists.txt @@ -1,7 +1,6 @@ TRIBITS_SUBPACKAGE(Search) - ADD_SUBDIRECTORY(stk_search) IF(Trilinos_ENABLE_STKNGP_TEST) @@ -9,5 +8,4 @@ TRIBITS_ADD_TEST_DIRECTORIES(unit_tests) TRIBITS_ADD_TEST_DIRECTORIES(integrationtest) ENDIF() - TRIBITS_SUBPACKAGE_POSTPROCESS() diff --git a/packages/stk/stk_search/cmake/Dependencies.cmake b/packages/stk/stk_search/cmake/Dependencies.cmake index e128c8692ad2..9985b8ecbe70 100644 --- a/packages/stk/stk_search/cmake/Dependencies.cmake +++ b/packages/stk/stk_search/cmake/Dependencies.cmake @@ -3,6 +3,6 @@ SET(LIB_OPTIONAL_DEP_PACKAGES) SET(TEST_REQUIRED_DEP_PACKAGES STKUnit_test_utils Gtest) SET(TEST_OPTIONAL_DEP_PACKAGES) SET(LIB_REQUIRED_DEP_TPLS MPI) -SET(LIB_OPTIONAL_DEP_TPLS Boost) +SET(LIB_OPTIONAL_DEP_TPLS Boost BoostLib) SET(TEST_REQUIRED_DEP_TPLS) SET(TEST_OPTIONAL_DEP_TPLS Boost) diff --git a/packages/stk/stk_search/integrationtest/CMakeLists.txt b/packages/stk/stk_search/integrationtest/CMakeLists.txt index eeeba839938e..9ff143a9e9df 100644 --- a/packages/stk/stk_search/integrationtest/CMakeLists.txt +++ b/packages/stk/stk_search/integrationtest/CMakeLists.txt @@ -38,12 +38,36 @@ FILE(GLOB SOURCES *.cpp) LIST(REMOVE_ITEM SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/UnitTestPerformance.cpp) LIST(REMOVE_ITEM SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/UnitTestNaluPerformance.cpp) -TRIBITS_ADD_EXECUTABLE_AND_TEST( +TRIBITS_ADD_EXECUTABLE( search_integration_tests SOURCES ${SOURCES} TESTONLYLIBS stk_unit_main + COMM serial mpi + ) + +IF(TPL_ENABLE_BoostLib) + +TRIBITS_ADD_TEST( + search_integration_tests + NAME STKSearch_integration_tests ARGS "" COMM serial mpi + PASS_REGULAR_EXPRESSION "PASS" + FAIL_REGULAR_EXPRESSION "FAIL" NUM_MPI_PROCS 1 - ) +) + +else() + +TRIBITS_ADD_TEST( + search_integration_tests + NAME STKSearch_integration_tests + ARGS "--gtest_filter=*KDTREE" + COMM serial mpi + PASS_REGULAR_EXPRESSION "PASS" + FAIL_REGULAR_EXPRESSION "FAIL" + NUM_MPI_PROCS 1 +) + +ENDIF() diff --git a/packages/stk/stk_search/stk_search/CoarseSearch.hpp b/packages/stk/stk_search/stk_search/CoarseSearch.hpp index 3034fa7f3150..772207ef604f 100644 --- a/packages/stk/stk_search/stk_search/CoarseSearch.hpp +++ b/packages/stk/stk_search/stk_search/CoarseSearch.hpp @@ -34,9 +34,13 @@ #ifndef stk_search_CoarseSearch_hpp #define stk_search_CoarseSearch_hpp +#include +#include #include #include +#if defined(STK_HAVE_BOOSTLIB) #include +#endif #include #include #include @@ -73,7 +77,11 @@ void coarse_search_nonIdentProc( switch( method ) { case BOOST_RTREE: +#if defined(STK_HAVE_BOOSTLIB) coarse_search_boost_rtree_output_locally(domain,range,comm,intersections); +#else + ThrowRequireMsg(false,"ERROR, the BOOST_RTREE option in stk_search requires that Trilinos was configured with TPL_ENABLE_BoostLib:BOOL=ON"); +#endif break; default: std::cerr << "coarse_search(..) interface used does not support std::search::coarse_search_nonIdentProc(..) yet" << method << std::endl; @@ -115,7 +123,11 @@ void coarse_search( std::vector > const& domain { case BOOST_RTREE: #ifndef __NVCC__ +#if defined(STK_HAVE_BOOSTLIB) coarse_search_boost_rtree(domain,range,comm,intersections,communicateRangeBoxInfo); +#else + ThrowRequireMsg(false,"ERROR, the BOOST_RTREE option in stk_search requires that Trilinos was configured with TPL_ENABLE_BoostLib:BOOL=ON"); +#endif break; #endif case KDTREE: diff --git a/packages/stk/stk_search/unit_tests/CMakeLists.txt b/packages/stk/stk_search/unit_tests/CMakeLists.txt index 56a62e639a3f..caa2abab23aa 100644 --- a/packages/stk/stk_search/unit_tests/CMakeLists.txt +++ b/packages/stk/stk_search/unit_tests/CMakeLists.txt @@ -37,12 +37,23 @@ FILE(GLOB SOURCES *.cpp) #removing due to dependence on geometry toolkit which is not available to Trilinos LIST(REMOVE_ITEM SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/UnitTestCoarseSearch.cpp") -TRIBITS_ADD_EXECUTABLE_AND_TEST( +IF(NOT TPL_ENABLE_BoostLib) +LIST(REMOVE_ITEM SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/UnitTestCoarseSearchBoostImpl.cpp") +ENDIF() + +TRIBITS_ADD_EXECUTABLE( search_unit_tests SOURCES ${SOURCES} TESTONLYLIBS stk_unit_main - ARGS "" COMM serial mpi - NUM_MPI_PROCS 1 ) +TRIBITS_ADD_TEST( + search_unit_tests + NAME STKSearch_unit_tests + ARGS "" + COMM serial mpi + PASS_REGULAR_EXPRESSION "PASS" + FAIL_REGULAR_EXPRESSION "FAIL" + NUM_MPI_PROCS 1 +) diff --git a/packages/stk/stk_search/unit_tests/UnitTestUtils.hpp b/packages/stk/stk_search/unit_tests/UnitTestUtils.hpp index 62665204475f..c70ed2aaf48d 100644 --- a/packages/stk/stk_search/unit_tests/UnitTestUtils.hpp +++ b/packages/stk/stk_search/unit_tests/UnitTestUtils.hpp @@ -47,6 +47,8 @@ #include +#include + typedef stk::search::IdentProc Ident; typedef stk::search::Point Point; typedef stk::search::Sphere Sphere; diff --git a/packages/stk/stk_search_util/stk_search_util/PeriodicBoundarySearch.hpp b/packages/stk/stk_search_util/stk_search_util/PeriodicBoundarySearch.hpp index 087893fea120..a521dff66444 100644 --- a/packages/stk/stk_search_util/stk_search_util/PeriodicBoundarySearch.hpp +++ b/packages/stk/stk_search_util/stk_search_util/PeriodicBoundarySearch.hpp @@ -34,6 +34,7 @@ #ifndef STK_SEARCH_UTIL_STK_MESH_PERIODIC_BOUNDARY_SEARCH_HPP #define STK_SEARCH_UTIL_STK_MESH_PERIODIC_BOUNDARY_SEARCH_HPP +#include #include #include #include @@ -160,6 +161,7 @@ class PeriodicBoundarySearch // Default is identity transform. } +#if defined(STK_HAVE_BOOST) TransformHelper(const boost::array & trans_arg) : m_transform_type(TRANSLATION) , m_translation(3,0) @@ -168,6 +170,7 @@ class PeriodicBoundarySearch m_translation[1] = trans_arg[1]; m_translation[2] = trans_arg[2]; } +#endif TransformHelper(double angle, const double axis[3]) : m_transform_type(ROTATIONAL) diff --git a/packages/stk/stk_tools/stk_tools/block_extractor/main.cpp b/packages/stk/stk_tools/stk_tools/block_extractor/main.cpp index ec06021e4c9d..1115d5740a9d 100644 --- a/packages/stk/stk_tools/stk_tools/block_extractor/main.cpp +++ b/packages/stk/stk_tools/stk_tools/block_extractor/main.cpp @@ -1,6 +1,10 @@ #include "mpi.h" #include #include +#include + +#if defined(STK_HAVE_BOOSTLIB) + #include #include #include @@ -29,4 +33,14 @@ int main(int argc, const char**argv) return 0; } +#else + +int main(int argc, const char**argv) +{ + std::cerr<<"ERROR, stk_block_extractor requires that Trilinos was configured with -DTPL_ENABLE_BoostLib:BOOL=ON" + << std::endl; + return -1; +} + +#endif diff --git a/packages/stk/stk_transfer/cmake/Dependencies.cmake b/packages/stk/stk_transfer/cmake/Dependencies.cmake index 81ef14aca487..1b3117019fb5 100644 --- a/packages/stk/stk_transfer/cmake/Dependencies.cmake +++ b/packages/stk/stk_transfer/cmake/Dependencies.cmake @@ -2,7 +2,7 @@ SET(LIB_REQUIRED_DEP_PACKAGES STKUtil STKSearch) SET(LIB_OPTIONAL_DEP_PACKAGES) SET(TEST_REQUIRED_DEP_PACKAGES) SET(TEST_OPTIONAL_DEP_PACKAGES) -SET(LIB_REQUIRED_DEP_TPLS) +SET(LIB_REQUIRED_DEP_TPLS BoostLib) SET(LIB_OPTIONAL_DEP_TPLS Boost) SET(TEST_REQUIRED_DEP_TPLS) SET(TEST_OPTIONAL_DEP_TPLS) diff --git a/packages/stk/stk_util/stk_util/CMakeLists.txt b/packages/stk/stk_util/stk_util/CMakeLists.txt index d9cfe97760a6..d40a2fbc971d 100644 --- a/packages/stk/stk_util/stk_util/CMakeLists.txt +++ b/packages/stk/stk_util/stk_util/CMakeLists.txt @@ -4,8 +4,8 @@ ADD_SUBDIRECTORY(util) IF(TPL_ENABLE_MPI) ADD_SUBDIRECTORY(parallel) -ADD_SUBDIRECTORY(registry) ADD_SUBDIRECTORY(environment) +ADD_SUBDIRECTORY(registry) ADD_SUBDIRECTORY(diag) IF ( ${PACKAGE_NAME}_ENABLE_SEACASIoss )