From 7283f5e06987ea397440277b6340f261a2291897 Mon Sep 17 00:00:00 2001 From: Vicente Adolfo Bolea Sanchez Date: Tue, 15 Aug 2023 19:28:37 -0400 Subject: [PATCH 1/5] ci: Create static minimal build --- .github/workflows/everything.yml | 4 ++ .../ci-ubuntu20.04-gcc8-static-serial.cmake | 45 +++++++++++++++++++ scripts/dashboard/common.cmake | 4 +- 3 files changed, 51 insertions(+), 2 deletions(-) create mode 100644 scripts/ci/cmake/ci-ubuntu20.04-gcc8-static-serial.cmake diff --git a/.github/workflows/everything.yml b/.github/workflows/everything.yml index a34d758595..ea3e35d732 100644 --- a/.github/workflows/everything.yml +++ b/.github/workflows/everything.yml @@ -148,6 +148,10 @@ jobs: shared: static parallel: ompi constrains: build_only + - os: ubuntu20.04 + compiler: gcc8 + shared: static + parallel: serial steps: - uses: actions/checkout@v3 with: diff --git a/scripts/ci/cmake/ci-ubuntu20.04-gcc8-static-serial.cmake b/scripts/ci/cmake/ci-ubuntu20.04-gcc8-static-serial.cmake new file mode 100644 index 0000000000..2660945304 --- /dev/null +++ b/scripts/ci/cmake/ci-ubuntu20.04-gcc8-static-serial.cmake @@ -0,0 +1,45 @@ +set(ENV{CC} gcc) +set(ENV{CXX} g++) + +set(dashboard_cache " +BUILD_SHARED_LIBS=OFF +CMAKE_BUILD_TYPE:STRING=Release + +ADIOS2_BUILD_EXAMPLES:BOOL=OFF +ADIOS2_USE_AWSSDK:STRING=OFF +ADIOS2_USE_Blosc2:STRING=OFF +ADIOS2_USE_Blosc:BOOL=OFF +ADIOS2_USE_BP5:STRING=OFF +ADIOS2_USE_BZip2:BOOL=OFF +ADIOS2_USE_Catalyst:STRING=OFF +ADIOS2_USE_CUDA:STRING=OFF +ADIOS2_USE_DAOS:STRING=OFF +ADIOS2_USE_DataMan:BOOL=OFF +ADIOS2_USE_DataSpaces:STRING=OFF +ADIOS2_USE_Fortran:BOOL=OFF +ADIOS2_USE_HDF5:BOOL=OFF +ADIOS2_USE_HDF5_VOL:STRING=OFF +ADIOS2_USE_IME:STRING=OFF +ADIOS2_USE_Kokkos:STRING=OFF +ADIOS2_USE_LIBPRESSIO:STRING=OFF +ADIOS2_USE_MGARD:STRING=OFF +ADIOS2_USE_MHS:STRING=OFF +ADIOS2_USE_MPI:BOOL=OFF +ADIOS2_USE_PNG:BOOL=OFF +ADIOS2_USE_Python:BOOL=OFF +ADIOS2_USE_SSC:BOOL=OFF +ADIOS2_USE_SST:BOOL=OFF +ADIOS2_USE_SZ:BOOL=OFF +ADIOS2_USE_ZeroMQ:STRING=OFF +ADIOS2_USE_ZFP:BOOL=OFF + +CMAKE_C_COMPILER_LAUNCHER=ccache +CMAKE_CXX_COMPILER_LAUNCHER=ccache +CMAKE_C_FLAGS:STRING=-Wall +CMAKE_CXX_FLAGS:STRING=-Wall +CMAKE_Fortran_FLAGS:STRING=-Wall +") + +set(CTEST_CMAKE_GENERATOR "Ninja") +list(APPEND CTEST_UPDATE_NOTES_FILES "${CMAKE_CURRENT_LIST_FILE}") +include(${CMAKE_CURRENT_LIST_DIR}/ci-common.cmake) diff --git a/scripts/dashboard/common.cmake b/scripts/dashboard/common.cmake index 012d2cf11e..cbdeb4f101 100644 --- a/scripts/dashboard/common.cmake +++ b/scripts/dashboard/common.cmake @@ -443,7 +443,7 @@ if(dashboard_do_build) if(COMMAND dashboard_hook_build) dashboard_hook_build() endif() - message("Calling ctest_build") + message("Calling ctest_build with CTEST_BUILD_FLAGS: " ${CTEST_BUILD_FLAGS}) ctest_build( NUMBER_WARNINGS ctest_build_num_warnings ) @@ -458,7 +458,7 @@ if(dashboard_do_test) if(COMMAND dashboard_hook_test) dashboard_hook_test() endif() - message("Calling ctest_test") + message("Calling ctest_test with CTEST_TEST_ARGS: " ${CTEST_TEST_ARGS}) ctest_test(${CTEST_TEST_ARGS} RETURN_VALUE TEST_RESULTS) if(${TEST_RESULTS} EQUAL 0) message("ctest test results return value: ${TEST_RESULTS}") From 26b01718e74cf84c6ff67a902d0b02f93efc775e Mon Sep 17 00:00:00 2001 From: Vicente Adolfo Bolea Sanchez Date: Tue, 15 Aug 2023 21:23:07 -0400 Subject: [PATCH 2/5] operators: fix module library --- CTestCustom.cmake.in | 1 + plugins/engines/CMakeLists.txt | 2 +- plugins/operators/CMakeLists.txt | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/CTestCustom.cmake.in b/CTestCustom.cmake.in index e118eb3e31..8356e4f57f 100644 --- a/CTestCustom.cmake.in +++ b/CTestCustom.cmake.in @@ -24,6 +24,7 @@ list(APPEND CTEST_CUSTOM_WARNING_EXCEPTION "Warning #20208-D: '.*' is treated as '.*' in device code" "Warning: '.*' is treated as '.*' in device code" ".*was specified as both a system and non-system include directory.*" + "Wunused-command-line-argument" ) list(APPEND CTEST_CUSTOM_COVERAGE_EXCLUDE ".*/thirdparty/.*" diff --git a/plugins/engines/CMakeLists.txt b/plugins/engines/CMakeLists.txt index 2a207abbad..794a57ee95 100644 --- a/plugins/engines/CMakeLists.txt +++ b/plugins/engines/CMakeLists.txt @@ -4,7 +4,7 @@ #------------------------------------------------------------------------------# if(ADIOS2_HAVE_Catalyst) - add_library(ParaViewADIOSInSituEngine + add_library(ParaViewADIOSInSituEngine MODULE ParaViewFidesEngine.cpp) target_link_libraries(ParaViewADIOSInSituEngine PUBLIC diff --git a/plugins/operators/CMakeLists.txt b/plugins/operators/CMakeLists.txt index b115218c0f..44f9a0f2a2 100644 --- a/plugins/operators/CMakeLists.txt +++ b/plugins/operators/CMakeLists.txt @@ -4,7 +4,7 @@ #------------------------------------------------------------------------------# if(ADIOS2_HAVE_Sodium) - add_library(EncryptionOperator + add_library(EncryptionOperator MODULE EncryptionOperator.cpp ) target_link_libraries(EncryptionOperator adios2_core sodium) From e79c75f365c596a52836996796b93498584e7d7e Mon Sep 17 00:00:00 2001 From: Vicente Adolfo Bolea Sanchez Date: Tue, 22 Aug 2023 16:20:02 -0400 Subject: [PATCH 3/5] bp5: remove ADIOS2_USE_BP5 option --- CMakeLists.txt | 8 +- cmake/DetectOptions.cmake | 5 - .../ci-ubuntu20.04-gcc8-static-serial.cmake | 1 - source/adios2/CMakeLists.txt | 51 +++++---- source/adios2/core/IO.cpp | 16 +-- source/adios2/core/Info.cpp | 2 - testing/adios2/engine/bp/CMakeLists.txt | 106 ++++++++---------- testing/adios2/engine/common/CMakeLists.txt | 10 +- .../engine/staging-common/CMakeLists.txt | 34 +++--- thirdparty/CMakeLists.txt | 40 ++++--- 10 files changed, 116 insertions(+), 157 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 638cc06fed..8836679e75 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -154,7 +154,6 @@ adios_option(DataMan "Enable support for DataMan" AUTO) adios_option(DataSpaces "Enable support for DATASPACES" AUTO) adios_option(MHS "Enable support for MHS" AUTO) adios_option(SST "Enable support for SST" AUTO) -adios_option(BP5 "Enable support for BP5" AUTO) adios_option(ZeroMQ "Enable support for ZeroMQ" AUTO) adios_option(HDF5 "Enable support for the HDF5 engine" AUTO) adios_option(HDF5_VOL "Enable support for HDF5 ADIOS2 VOL" AUTO) @@ -238,9 +237,10 @@ endif() set(ADIOS2_CONFIG_OPTS - BP5 DataMan DataSpaces HDF5 HDF5_VOL MHS SST Fortran MPI Python Blosc2 - BZip2 LIBPRESSIO MGARD PNG SZ ZFP DAOS IME O_DIRECT Sodium Catalyst SysVShMem UCX ZeroMQ - Profiling Endian_Reverse AWSSDK GPU_Support CUDA Kokkos Kokkos_CUDA Kokkos_HIP Kokkos_SYCL + DataMan DataSpaces HDF5 HDF5_VOL MHS SST Fortran MPI Python Blosc2 BZip2 + LIBPRESSIO MGARD PNG SZ ZFP DAOS IME O_DIRECT Sodium Catalyst SysVShMem UCX + ZeroMQ Profiling Endian_Reverse AWSSDK GPU_Support CUDA Kokkos Kokkos_CUDA + Kokkos_HIP Kokkos_SYCL ) GenerateADIOSHeaderConfig(${ADIOS2_CONFIG_OPTS}) diff --git a/cmake/DetectOptions.cmake b/cmake/DetectOptions.cmake index c74706d0c5..4044cb822f 100644 --- a/cmake/DetectOptions.cmake +++ b/cmake/DetectOptions.cmake @@ -485,11 +485,6 @@ if(DAOS_FOUND) set(ADIOS2_HAVE_DAOS TRUE) endif() -# BP5 -if(ADIOS2_USE_BP5) - set(ADIOS2_HAVE_BP5 TRUE) -endif() - #SysV IPC if(UNIX) include(CheckSymbolExists) diff --git a/scripts/ci/cmake/ci-ubuntu20.04-gcc8-static-serial.cmake b/scripts/ci/cmake/ci-ubuntu20.04-gcc8-static-serial.cmake index 2660945304..4de978d424 100644 --- a/scripts/ci/cmake/ci-ubuntu20.04-gcc8-static-serial.cmake +++ b/scripts/ci/cmake/ci-ubuntu20.04-gcc8-static-serial.cmake @@ -9,7 +9,6 @@ ADIOS2_BUILD_EXAMPLES:BOOL=OFF ADIOS2_USE_AWSSDK:STRING=OFF ADIOS2_USE_Blosc2:STRING=OFF ADIOS2_USE_Blosc:BOOL=OFF -ADIOS2_USE_BP5:STRING=OFF ADIOS2_USE_BZip2:BOOL=OFF ADIOS2_USE_Catalyst:STRING=OFF ADIOS2_USE_CUDA:STRING=OFF diff --git a/source/adios2/CMakeLists.txt b/source/adios2/CMakeLists.txt index eb55d7b1e4..225afb3962 100644 --- a/source/adios2/CMakeLists.txt +++ b/source/adios2/CMakeLists.txt @@ -50,6 +50,15 @@ add_library(adios2_core engine/bp4/BP4Reader.cpp engine/bp4/BP4Reader.tcc engine/bp4/BP4Writer.cpp engine/bp4/BP4Writer.tcc + engine/bp5/BP5Engine.cpp + engine/bp5/BP5Reader.cpp + engine/bp5/BP5Reader.tcc + engine/bp5/BP5Writer.cpp + engine/bp5/BP5Writer_EveryoneWrites_Async.cpp + engine/bp5/BP5Writer.tcc + engine/bp5/BP5Writer_TwoLevelShm_Async.cpp + engine/bp5/BP5Writer_TwoLevelShm.cpp + engine/skeleton/SkeletonReader.cpp engine/skeleton/SkeletonReader.tcc engine/skeleton/SkeletonWriter.cpp engine/skeleton/SkeletonWriter.tcc @@ -61,12 +70,17 @@ add_library(adios2_core engine/plugin/PluginEngine.cpp engine/plugin/PluginEngineInterface.cpp operator/plugin/PluginOperator.cpp operator/plugin/PluginOperatorInterface.cpp + #toolkit + toolkit/burstbuffer/FileDrainer.cpp + toolkit/burstbuffer/FileDrainerSingleThread.cpp + toolkit/format/buffer/Buffer.cpp toolkit/format/buffer/BufferV.cpp - toolkit/format/buffer/malloc/MallocV.cpp toolkit/format/buffer/chunk/ChunkV.cpp + toolkit/format/buffer/ffs/BufferFFS.cpp toolkit/format/buffer/heap/BufferSTL.cpp + toolkit/format/buffer/malloc/MallocV.cpp toolkit/format/bp/BPBase.cpp toolkit/format/bp/BPBase.tcc toolkit/format/bp/BPSerializer.cpp toolkit/format/bp/BPSerializer.tcc @@ -80,6 +94,11 @@ add_library(adios2_core toolkit/format/bp/bp4/BP4Deserializer.cpp toolkit/format/bp/bp4/BP4Deserializer.tcc toolkit/format/bp/bpBackCompatOperation/compress/BPBackCompatBlosc.cpp + toolkit/format/bp5/BP5Base.cpp + toolkit/format/bp5/BP5Deserializer.cpp + toolkit/format/bp5/BP5Deserializer.tcc + toolkit/format/bp5/BP5Serializer.cpp + toolkit/profiling/iochrono/Timer.cpp toolkit/profiling/iochrono/IOChrono.cpp @@ -104,9 +123,6 @@ add_library(adios2_core toolkit/aggregator/mpi/MPIAggregator.cpp toolkit/aggregator/mpi/MPIChain.cpp toolkit/aggregator/mpi/MPIShmChain.cpp - - toolkit/burstbuffer/FileDrainer.cpp - toolkit/burstbuffer/FileDrainerSingleThread.cpp ) set_property(TARGET adios2_core PROPERTY EXPORT_NAME core) set_property(TARGET adios2_core PROPERTY OUTPUT_NAME adios2${ADIOS2_LIBRARY_SUFFIX}_core) @@ -145,8 +161,14 @@ target_include_directories(adios2_core $ $ ) -target_link_libraries(adios2_core PRIVATE adios2sys_interface adios2::thirdparty::pugixml - adios2::thirdparty::yaml-cpp adios2::thirdparty::nlohmann_json adios2::thirdparty::perfstubs-interface) +target_link_libraries(adios2_core PRIVATE + adios2sys_interface + adios2::thirdparty::pugixml + adios2::thirdparty::yaml-cpp + adios2::thirdparty::nlohmann_json + adios2::thirdparty::perfstubs-interface + ffs::ffs +) target_link_libraries(adios2_core PUBLIC ${CMAKE_THREAD_LIBS_INIT}) target_compile_features(adios2_core PUBLIC "$") @@ -165,24 +187,7 @@ if (ADIOS2_HAVE_SST) target_link_libraries(adios2_core PRIVATE EVPath::EVPath) add_subdirectory(toolkit/remote) endif() - -if (ADIOS2_HAVE_BP5) - target_sources(adios2_core PRIVATE - engine/bp5/BP5Engine.cpp - engine/bp5/BP5Reader.cpp engine/bp5/BP5Reader.tcc - engine/bp5/BP5Writer.cpp engine/bp5/BP5Writer.tcc engine/bp5/BP5Writer_TwoLevelShm.cpp engine/bp5/BP5Writer_TwoLevelShm_Async.cpp engine/bp5/BP5Writer_EveryoneWrites_Async.cpp - ) -endif() -if (ADIOS2_HAVE_BP5 OR ADIOS2_HAVE_SST) - target_sources(adios2_core PRIVATE - toolkit/format/buffer/ffs/BufferFFS.cpp - toolkit/format/bp5/BP5Base.cpp - toolkit/format/bp5/BP5Serializer.cpp - toolkit/format/bp5/BP5Deserializer.cpp toolkit/format/bp5/BP5Deserializer.tcc - ) - target_link_libraries(adios2_core PRIVATE ffs::ffs) -endif() if(ADIOS2_HAVE_DAOS) target_sources(adios2_core PRIVATE toolkit/transport/file/FileDaos.cpp diff --git a/source/adios2/core/IO.cpp b/source/adios2/core/IO.cpp index 89764aa71b..1b99463b54 100644 --- a/source/adios2/core/IO.cpp +++ b/source/adios2/core/IO.cpp @@ -22,10 +22,8 @@ #include "adios2/engine/bp3/BP3Writer.h" #include "adios2/engine/bp4/BP4Reader.h" #include "adios2/engine/bp4/BP4Writer.h" -#ifdef ADIOS2_HAVE_BP5 #include "adios2/engine/bp5/BP5Reader.h" #include "adios2/engine/bp5/BP5Writer.h" -#endif #include "adios2/engine/inline/InlineReader.h" #include "adios2/engine/inline/InlineWriter.h" #include "adios2/engine/mhs/MhsReader.h" @@ -68,14 +66,7 @@ namespace std::unordered_map Factory = { {"bp3", {IO::MakeEngine, IO::MakeEngine}}, {"bp4", {IO::MakeEngine, IO::MakeEngine}}, - {"bp5", -#ifdef ADIOS2_HAVE_BP5 - {IO::MakeEngine, IO::MakeEngine} -#else - IO::NoEngineEntry("ERROR: this version didn't compile with " - "BP5 library, can't use BP5 engine\n") -#endif - }, + {"bp5", {IO::MakeEngine, IO::MakeEngine}}, {"dataman", #ifdef ADIOS2_HAVE_DATAMAN {IO::MakeEngine, IO::MakeEngine} @@ -576,13 +567,8 @@ Engine &IO::Open(const std::string &name, const Mode mode, helper::Comm comm) } else { -#ifdef ADIOS2_HAVE_BP5 // File default for writing: BP5 engineTypeLC = "bp5"; -#else - // File default for writing: BP4 - engineTypeLC = "bp4"; -#endif } } diff --git a/source/adios2/core/Info.cpp b/source/adios2/core/Info.cpp index f6fab45756..39686b8e0f 100644 --- a/source/adios2/core/Info.cpp +++ b/source/adios2/core/Info.cpp @@ -25,9 +25,7 @@ const char adios2_version_str[] = ADIOS2_VERSION_STR; static const char *const engines[] = {"BP3", "BP4", -#ifdef ADIOS2_HAVE_BP5 "BP5", -#endif #ifdef ADIOS2_HAVE_HDF5 "HDF5", #endif diff --git a/testing/adios2/engine/bp/CMakeLists.txt b/testing/adios2/engine/bp/CMakeLists.txt index 196126d30a..a57f950a23 100644 --- a/testing/adios2/engine/bp/CMakeLists.txt +++ b/testing/adios2/engine/bp/CMakeLists.txt @@ -32,12 +32,9 @@ macro(bp4_bp5_gtest_add_tests_helper testname mpi) gtest_add_tests_helper(${testname} ${mpi} BP Engine.BP. .BP4 WORKING_DIRECTORY ${BP4_DIR} EXTRA_ARGS "BP4" ) - - if(ADIOS2_HAVE_BP5) - gtest_add_tests_helper(${testname} ${mpi} BP Engine.BP. .BP5 - WORKING_DIRECTORY ${BP5_DIR} EXTRA_ARGS "BP5" - ) - endif() + gtest_add_tests_helper(${testname} ${mpi} BP Engine.BP. .BP5 + WORKING_DIRECTORY ${BP5_DIR} EXTRA_ARGS "BP5" + ) endmacro() macro(bp_gtest_add_tests_helper testname mpi) @@ -47,29 +44,24 @@ macro(bp_gtest_add_tests_helper testname mpi) gtest_add_tests_helper(${testname} ${mpi} BP Engine.BP. .BP4 WORKING_DIRECTORY ${BP4_DIR} EXTRA_ARGS "BP4" ) - - if(ADIOS2_HAVE_BP5) - gtest_add_tests_helper(${testname} ${mpi} BP Engine.BP. .BP5 - WORKING_DIRECTORY ${BP5_DIR} EXTRA_ARGS "BP5" - ) - endif() + gtest_add_tests_helper(${testname} ${mpi} BP Engine.BP. .BP5 + WORKING_DIRECTORY ${BP5_DIR} EXTRA_ARGS "BP5" + ) endmacro() macro(async_gtest_add_tests_helper testname mpi) - if(ADIOS2_HAVE_BP5) - gtest_add_tests_helper(${testname} ${mpi} BP Engine.BP. .Async.BP5.TLS.Guided - WORKING_DIRECTORY ${BP5_ASYNC_DIR}/tls-guided EXTRA_ARGS "BP5" "AggregationType=TwoLevelShm,AsyncWrite=Guided" - ) - gtest_add_tests_helper(${testname} ${mpi} BP Engine.BP. .Async.BP5.TLS.Naive - WORKING_DIRECTORY ${BP5_ASYNC_DIR}/tls-naive EXTRA_ARGS "BP5" "AggregationType=TwoLevelShm,AsyncWrite=Naive" - ) - gtest_add_tests_helper(${testname} ${mpi} BP Engine.BP. .Async.BP5.EWS.Guided - WORKING_DIRECTORY ${BP5_ASYNC_DIR}/ews-guided EXTRA_ARGS "BP5" "AggregationType=EveryoneWritesSerial,AsyncWrite=Guided" - ) - gtest_add_tests_helper(${testname} ${mpi} BP Engine.BP. .Async.BP5.EWS.Naive - WORKING_DIRECTORY ${BP5_ASYNC_DIR}/ews-naive EXTRA_ARGS "BP5" "AggregationType=EveryoneWritesSerial,AsyncWrite=Naive" - ) - endif() + gtest_add_tests_helper(${testname} ${mpi} BP Engine.BP. .Async.BP5.TLS.Guided + WORKING_DIRECTORY ${BP5_ASYNC_DIR}/tls-guided EXTRA_ARGS "BP5" "AggregationType=TwoLevelShm,AsyncWrite=Guided" + ) + gtest_add_tests_helper(${testname} ${mpi} BP Engine.BP. .Async.BP5.TLS.Naive + WORKING_DIRECTORY ${BP5_ASYNC_DIR}/tls-naive EXTRA_ARGS "BP5" "AggregationType=TwoLevelShm,AsyncWrite=Naive" + ) + gtest_add_tests_helper(${testname} ${mpi} BP Engine.BP. .Async.BP5.EWS.Guided + WORKING_DIRECTORY ${BP5_ASYNC_DIR}/ews-guided EXTRA_ARGS "BP5" "AggregationType=EveryoneWritesSerial,AsyncWrite=Guided" + ) + gtest_add_tests_helper(${testname} ${mpi} BP Engine.BP. .Async.BP5.EWS.Naive + WORKING_DIRECTORY ${BP5_ASYNC_DIR}/ews-naive EXTRA_ARGS "BP5" "AggregationType=EveryoneWritesSerial,AsyncWrite=Naive" + ) endmacro() if(ADIOS2_HAVE_Fortran) @@ -81,12 +73,9 @@ if(ADIOS2_HAVE_Fortran) gtest_add_tests_helper_Fortran(${testname} ${mpi} BP Engine.BP. .BP4 ${BP4_DIR} "BP4" ) - - if(ADIOS2_HAVE_BP5) - gtest_add_tests_helper_Fortran(${testname} ${mpi} BP Engine.BP. .BP5 - ${BP5_DIR} "BP5" - ) - endif() + gtest_add_tests_helper_Fortran(${testname} ${mpi} BP Engine.BP. .BP5 + ${BP5_DIR} "BP5" + ) endmacro() else() macro(bp_gtest_add_tests_helper_Fortran testname mpi) @@ -115,16 +104,14 @@ bp_gtest_add_tests_helper(WriteReadVector MPI_ALLOW) bp_gtest_add_tests_helper(WriteReadAttributesMultirank MPI_ALLOW) bp_gtest_add_tests_helper(LargeMetadata MPI_ALLOW) -if(ADIOS2_HAVE_BP5) - set(BP5LargeMeta "Engine.BP.BPLargeMetadata.BPWrite1D_LargeMetadata.BP5.Serial") - - if(ADIOS2_HAVE_MPI) - list(APPEND BP5LargeMeta "Engine.BP.BPLargeMetadata.BPWrite1D_LargeMetadata.BP5.MPI" "Engine.BP.BPLargeMetadata.ManyLongStrings.BP5.MPI") - endif() +set(BP5LargeMeta "Engine.BP.BPLargeMetadata.BPWrite1D_LargeMetadata.BP5.Serial") - set_tests_properties(${BP5LargeMeta} PROPERTIES RUN_SERIAL TRUE) +if(ADIOS2_HAVE_MPI) + list(APPEND BP5LargeMeta "Engine.BP.BPLargeMetadata.BPWrite1D_LargeMetadata.BP5.MPI" "Engine.BP.BPLargeMetadata.ManyLongStrings.BP5.MPI") endif() +set_tests_properties(${BP5LargeMeta} PROPERTIES RUN_SERIAL TRUE) + bp_gtest_add_tests_helper(WriteMemorySelectionRead MPI_ALLOW) bp_gtest_add_tests_helper(WriteReadLocalVariables MPI_ALLOW) bp_gtest_add_tests_helper(WriteReadLocalVariablesSel MPI_ALLOW) @@ -158,20 +145,18 @@ if(ADIOS2_HAVE_MPI) endif() # BP5 only for now -if(ADIOS2_HAVE_BP5) - gtest_add_tests_helper(ParameterSelectSteps MPI_ALLOW BP Engine.BP. .BP5 - WORKING_DIRECTORY ${BP5_DIR} EXTRA_ARGS "BP5" - ) - gtest_add_tests_helper(AppendAfterSteps MPI_ALLOW BP Engine.BP. .BP5 - WORKING_DIRECTORY ${BP5_DIR} EXTRA_ARGS "BP5" - ) - gtest_add_tests_helper(DirectIO MPI_NONE BP Engine.BP. .BP5 - WORKING_DIRECTORY ${BP5_DIR} EXTRA_ARGS "BP5" - ) - gtest_add_tests_helper(ReadMultithreaded MPI_NONE BP Engine.BP. .BP5 - WORKING_DIRECTORY ${BP5_DIR} EXTRA_ARGS "BP5" - ) -endif(ADIOS2_HAVE_BP5) +gtest_add_tests_helper(ParameterSelectSteps MPI_ALLOW BP Engine.BP. .BP5 + WORKING_DIRECTORY ${BP5_DIR} EXTRA_ARGS "BP5" +) +gtest_add_tests_helper(AppendAfterSteps MPI_ALLOW BP Engine.BP. .BP5 + WORKING_DIRECTORY ${BP5_DIR} EXTRA_ARGS "BP5" +) +gtest_add_tests_helper(DirectIO MPI_NONE BP Engine.BP. .BP5 + WORKING_DIRECTORY ${BP5_DIR} EXTRA_ARGS "BP5" +) +gtest_add_tests_helper(ReadMultithreaded MPI_NONE BP Engine.BP. .BP5 + WORKING_DIRECTORY ${BP5_DIR} EXTRA_ARGS "BP5" +) # BP3 only for now gtest_add_tests_helper(WriteNull MPI_ALLOW BP Engine.BP. .BP3 @@ -223,15 +208,12 @@ if(ADIOS2_HAVE_CUDA OR ADIOS2_HAVE_Kokkos_CUDA) gtest_add_tests_helper(SelectionsCuda MPI_ALLOW BP Engine.BP. .BP4 WORKING_DIRECTORY ${BP4_DIR} EXTRA_ARGS "BP4" ) - - if(ADIOS2_HAVE_BP5) - gtest_add_tests_helper(WriteReadCuda MPI_ALLOW BP Engine.BP. .BP5 - WORKING_DIRECTORY ${BP5_DIR} EXTRA_ARGS "BP5" - ) - gtest_add_tests_helper(SelectionsCuda MPI_ALLOW BP Engine.BP. .BP5 - WORKING_DIRECTORY ${BP5_DIR} EXTRA_ARGS "BP5" - ) - endif() + gtest_add_tests_helper(WriteReadCuda MPI_ALLOW BP Engine.BP. .BP5 + WORKING_DIRECTORY ${BP5_DIR} EXTRA_ARGS "BP5" + ) + gtest_add_tests_helper(SelectionsCuda MPI_ALLOW BP Engine.BP. .BP5 + WORKING_DIRECTORY ${BP5_DIR} EXTRA_ARGS "BP5" + ) foreach(tgt ${Test.Engine.BP.WriteReadCuda-TARGETS}) target_sources(${tgt} PRIVATE operations/CudaRoutines.cu) diff --git a/testing/adios2/engine/common/CMakeLists.txt b/testing/adios2/engine/common/CMakeLists.txt index 72db89c08d..e19392d424 100644 --- a/testing/adios2/engine/common/CMakeLists.txt +++ b/testing/adios2/engine/common/CMakeLists.txt @@ -43,13 +43,11 @@ if(NOT MSVC) ) endif() -if (ADIOS2_HAVE_BP5) - gtest_add_tests_helper(Common MPI_ONLY "" Engine. .BP5 - EXTRA_ARGS "BP5" "1") -endif() +gtest_add_tests_helper(Common MPI_ONLY "" Engine. .BP5 + EXTRA_ARGS "BP5" "1") - gtest_add_tests_helper(Common MPI_ONLY "" Engine. .BP3 - EXTRA_ARGS "BP3" "1") +gtest_add_tests_helper(Common MPI_ONLY "" Engine. .BP3 + EXTRA_ARGS "BP3" "1") #if(ADIOS2_HAVE_DataMan) # gtest_add_tests_helper(Common MPI_ONLY "" Engine. .DataMan diff --git a/testing/adios2/engine/staging-common/CMakeLists.txt b/testing/adios2/engine/staging-common/CMakeLists.txt index 9fdcea85c7..a5a3f09056 100644 --- a/testing/adios2/engine/staging-common/CMakeLists.txt +++ b/testing/adios2/engine/staging-common/CMakeLists.txt @@ -233,24 +233,22 @@ if(NOT WIN32) # not on windows endif() # BP5 tests -if(ADIOS2_HAVE_BP5) - set (BP5_TESTS ${ALL_SIMPLE_TESTS} ${SPECIAL_TESTS} ${BP5File_ONLY_TESTS}) - # Delayed reader not worth testing on file engines - list (FILTER BP5_TESTS EXCLUDE REGEX "DelayedReader") - # Discard not a feature of BP5 - list (FILTER BP5_TESTS EXCLUDE REGEX ".*DiscardWriter.1x1") - # PreciousTimestep not a feature of BP5 - list (FILTER BP5_TESTS EXCLUDE REGEX ".*PreciousTimestep") - # LatestTimestep not a feature of BP5 - list (FILTER BP5_TESTS EXCLUDE REGEX ".*LatestReader") - # KillWriter fails with BP5 - list (FILTER BP5_TESTS EXCLUDE REGEX ".*KillWriter") - # KillReaders We swear this isn't necessary for BP5 streaming - list (FILTER BP5_TESTS EXCLUDE REGEX ".*KillReaders") - foreach(test ${BP5_TESTS}) - add_common_test(${test} BP5) - endforeach() -endif() +set (BP5_TESTS ${ALL_SIMPLE_TESTS} ${SPECIAL_TESTS} ${BP5File_ONLY_TESTS}) +# Delayed reader not worth testing on file engines +list (FILTER BP5_TESTS EXCLUDE REGEX "DelayedReader") +# Discard not a feature of BP5 +list (FILTER BP5_TESTS EXCLUDE REGEX ".*DiscardWriter.1x1") +# PreciousTimestep not a feature of BP5 +list (FILTER BP5_TESTS EXCLUDE REGEX ".*PreciousTimestep") +# LatestTimestep not a feature of BP5 +list (FILTER BP5_TESTS EXCLUDE REGEX ".*LatestReader") +# KillWriter fails with BP5 +list (FILTER BP5_TESTS EXCLUDE REGEX ".*KillWriter") +# KillReaders We swear this isn't necessary for BP5 streaming +list (FILTER BP5_TESTS EXCLUDE REGEX ".*KillReaders") +foreach(test ${BP5_TESTS}) + add_common_test(${test} BP5) +endforeach() # diff --git a/thirdparty/CMakeLists.txt b/thirdparty/CMakeLists.txt index 750abed0b8..6f47abea1f 100644 --- a/thirdparty/CMakeLists.txt +++ b/thirdparty/CMakeLists.txt @@ -105,33 +105,31 @@ cmake_dependent_option(ADIOS2_USE_EXTERNAL_ENET "NOT ADIOS2_USE_EXTERNAL_EVPATH" OFF ) -if(ADIOS2_HAVE_SST OR ADIOS2_HAVE_BP5) - if(NOT ADIOS2_USE_EXTERNAL_EVPATH) - if(NOT ADIOS2_USE_EXTERNAL_ATL) - add_subdirectory(atl) - endif() - find_package(atl REQUIRED) - - if(NOT ADIOS2_USE_EXTERNAL_FFS) - if(NOT ADIOS2_USE_EXTERNAL_DILL) - add_subdirectory(dill) - endif() - find_package(dill REQUIRED) +if(NOT ADIOS2_USE_EXTERNAL_EVPATH) + if(NOT ADIOS2_USE_EXTERNAL_ATL) + add_subdirectory(atl) + endif() + find_package(atl REQUIRED) - add_subdirectory(ffs) + if(NOT ADIOS2_USE_EXTERNAL_FFS) + if(NOT ADIOS2_USE_EXTERNAL_DILL) + add_subdirectory(dill) endif() - find_package(ffs REQUIRED) + find_package(dill REQUIRED) - if(NOT ADIOS2_USE_EXTERNAL_ENET) - add_subdirectory(enet) - endif() - find_package(enet REQUIRED) + add_subdirectory(ffs) + endif() + find_package(ffs REQUIRED) - add_subdirectory(EVPath) + if(NOT ADIOS2_USE_EXTERNAL_ENET) + add_subdirectory(enet) endif() - find_package(EVPath REQUIRED) - adios2_add_thirdparty_target(EVPath EVPath::EVPath) + find_package(enet REQUIRED) + + add_subdirectory(EVPath) endif() +find_package(EVPath REQUIRED) +adios2_add_thirdparty_target(EVPath EVPath::EVPath) # Keep this at the end so we see the verbose messages at least once set(ADIOS2_THIRDPARTY_VERBOSE_DISABLE TRUE CACHE INTERNAL "" FORCE) From 52600da3d6e78e74882b82816911c7c0d6016a22 Mon Sep 17 00:00:00 2001 From: Vicente Adolfo Bolea Sanchez Date: Tue, 22 Aug 2023 19:12:12 -0400 Subject: [PATCH 4/5] cmake: fix ffs dependency --- cmake/adios2-config-common.cmake.in | 6 ++++++ cmake/adios2-config.cmake.in | 9 ++++++--- source/adios2/CMakeLists.txt | 4 ++-- thirdparty/CMakeLists.txt | 19 ++++++++++--------- 4 files changed, 24 insertions(+), 14 deletions(-) diff --git a/cmake/adios2-config-common.cmake.in b/cmake/adios2-config-common.cmake.in index 97e98e54b4..0d536e8904 100644 --- a/cmake/adios2-config-common.cmake.in +++ b/cmake/adios2-config-common.cmake.in @@ -162,6 +162,12 @@ if(NOT @BUILD_SHARED_LIBS@) adios2_add_thirdparty_target(perfstubs-interface) + find_dependency(ffs) + adios2_add_thirdparty_target(ffs) + set_target_properties(adios2::thirdparty::ffs PROPERTIES + INTERFACE_LINK_LIBRARIES ffs::ffs + ) + set(ADIOS2_HAVE_SST @ADIOS2_HAVE_SST@) if(ADIOS2_HAVE_SST) set(ADIOS2_SST_HAVE_LIBFABRIC @ADIOS2_SST_HAVE_LIBFABRIC@) diff --git a/cmake/adios2-config.cmake.in b/cmake/adios2-config.cmake.in index 4bb68c27da..21946d6fd2 100644 --- a/cmake/adios2-config.cmake.in +++ b/cmake/adios2-config.cmake.in @@ -1,12 +1,15 @@ set(_ADIOS2_CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH}) list(INSERT CMAKE_MODULE_PATH 0 "@ADIOS2_SOURCE_DIR@/cmake") +if(NOT @BUILD_SHARED_LIBS@) + set(atl_DIR @atl_DIR@) + set(dill_DIR @dill_DIR@) + set(ffs_DIR @ffs_DIR@) +endif() + if(@ADIOS2_HAVE_SST@) set(EVPath_DIR @EVPath_DIR@) if(NOT @BUILD_SHARED_LIBS@) - set(atl_DIR @atl_DIR@) - set(dill_DIR @dill_DIR@) - set(ffs_DIR @ffs_DIR@) set(enet_DIR @enet_DIR@) endif() endif() diff --git a/source/adios2/CMakeLists.txt b/source/adios2/CMakeLists.txt index 225afb3962..343c70d421 100644 --- a/source/adios2/CMakeLists.txt +++ b/source/adios2/CMakeLists.txt @@ -167,7 +167,7 @@ target_link_libraries(adios2_core PRIVATE adios2::thirdparty::yaml-cpp adios2::thirdparty::nlohmann_json adios2::thirdparty::perfstubs-interface - ffs::ffs + adios2::thirdparty::ffs ) target_link_libraries(adios2_core PUBLIC ${CMAKE_THREAD_LIBS_INIT}) target_compile_features(adios2_core PUBLIC "$") @@ -184,7 +184,7 @@ endif() if (ADIOS2_HAVE_SST) # EVPath-enabled remote file transport target_sources(adios2_core PRIVATE toolkit/remote/remote_common.cpp toolkit/transport/file/FileRemote.cpp) - target_link_libraries(adios2_core PRIVATE EVPath::EVPath) + target_link_libraries(adios2_core PRIVATE adios2::thirdparty::EVPath) add_subdirectory(toolkit/remote) endif() diff --git a/thirdparty/CMakeLists.txt b/thirdparty/CMakeLists.txt index 6f47abea1f..72646b85e9 100644 --- a/thirdparty/CMakeLists.txt +++ b/thirdparty/CMakeLists.txt @@ -105,22 +105,23 @@ cmake_dependent_option(ADIOS2_USE_EXTERNAL_ENET "NOT ADIOS2_USE_EXTERNAL_EVPATH" OFF ) -if(NOT ADIOS2_USE_EXTERNAL_EVPATH) +if(NOT ADIOS2_USE_EXTERNAL_FFS) if(NOT ADIOS2_USE_EXTERNAL_ATL) add_subdirectory(atl) endif() find_package(atl REQUIRED) - if(NOT ADIOS2_USE_EXTERNAL_FFS) - if(NOT ADIOS2_USE_EXTERNAL_DILL) - add_subdirectory(dill) - endif() - find_package(dill REQUIRED) - - add_subdirectory(ffs) + if(NOT ADIOS2_USE_EXTERNAL_DILL) + add_subdirectory(dill) endif() - find_package(ffs REQUIRED) + find_package(dill REQUIRED) + add_subdirectory(ffs) +endif() +find_package(ffs REQUIRED) +adios2_add_thirdparty_target(ffs ffs::ffs) + +if(NOT ADIOS2_USE_EXTERNAL_EVPATH) if(NOT ADIOS2_USE_EXTERNAL_ENET) add_subdirectory(enet) endif() From 1291865cb901fc91d0449d3da23e83cd0eabc7ad Mon Sep 17 00:00:00 2001 From: Vicente Adolfo Bolea Sanchez Date: Wed, 23 Aug 2023 11:42:33 -0400 Subject: [PATCH 5/5] ci: disable MGARD static build --- scripts/ci/cmake/ci-ubuntu20.04-clang6-static-ompi.cmake | 1 + scripts/ci/cmake/ci-ubuntu20.04-gcc8-static-ompi.cmake | 1 + 2 files changed, 2 insertions(+) diff --git a/scripts/ci/cmake/ci-ubuntu20.04-clang6-static-ompi.cmake b/scripts/ci/cmake/ci-ubuntu20.04-clang6-static-ompi.cmake index ce9699c794..b09c2fd203 100644 --- a/scripts/ci/cmake/ci-ubuntu20.04-clang6-static-ompi.cmake +++ b/scripts/ci/cmake/ci-ubuntu20.04-clang6-static-ompi.cmake @@ -19,6 +19,7 @@ ADIOS2_USE_Blosc:BOOL=ON ADIOS2_USE_DataMan:BOOL=ON ADIOS2_USE_Fortran:BOOL=ON ADIOS2_USE_HDF5:BOOL=ON +ADIOS2_USE_MGARD:BOOL=OFF ADIOS2_USE_MPI:BOOL=ON ADIOS2_USE_Python:BOOL=ON ADIOS2_USE_SZ:BOOL=ON diff --git a/scripts/ci/cmake/ci-ubuntu20.04-gcc8-static-ompi.cmake b/scripts/ci/cmake/ci-ubuntu20.04-gcc8-static-ompi.cmake index 40ba13974d..e3767519f0 100644 --- a/scripts/ci/cmake/ci-ubuntu20.04-gcc8-static-ompi.cmake +++ b/scripts/ci/cmake/ci-ubuntu20.04-gcc8-static-ompi.cmake @@ -19,6 +19,7 @@ ADIOS2_USE_Blosc:BOOL=ON ADIOS2_USE_DataMan:BOOL=ON ADIOS2_USE_Fortran:BOOL=ON ADIOS2_USE_HDF5:BOOL=ON +ADIOS2_USE_MGARD:BOOL=OFF ADIOS2_USE_MPI:BOOL=ON ADIOS2_USE_Python:BOOL=ON ADIOS2_USE_SZ:BOOL=ON