Skip to content

Commit

Permalink
Merge pull request #3883 from scottwittenburg/another-way-to-mpich-ch…
Browse files Browse the repository at this point in the history
…3-sock-tcp

ci: use mpich built with ch3:sock to speed up tests
  • Loading branch information
scottwittenburg authored Nov 17, 2023
2 parents 5752d99 + d6733a3 commit ced424b
Show file tree
Hide file tree
Showing 16 changed files with 445 additions and 39 deletions.
11 changes: 7 additions & 4 deletions .github/workflows/everything.yml
Original file line number Diff line number Diff line change
Expand Up @@ -127,14 +127,17 @@ jobs:
os: [ubuntu20.04]
compiler: [gcc8, gcc9, gcc10, gcc11, clang6, clang10]
shared: [shared]
parallel: [ompi]
parallel: [mpich]
include:
- os: ubuntu20.04
compiler: gcc10
parallel: mpich
compiler: gcc8
parallel: ompi
- os: ubuntu20.04
compiler: gcc8
parallel: serial
- os: ubuntu20.04
compiler: clang6
parallel: ompi
- os: ubuntu20.04
compiler: clang6
parallel: serial
Expand Down Expand Up @@ -215,7 +218,7 @@ jobs:
matrix:
os: [el8]
compiler: [icc, oneapi]
parallel: [ompi]
parallel: [mpich]

steps:
- uses: actions/checkout@v4
Expand Down
3 changes: 3 additions & 0 deletions plugins/operators/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ if(ADIOS2_HAVE_Sodium)
EncryptionOperator.cpp
)
target_link_libraries(EncryptionOperator adios2_core sodium)
if (NOT CMAKE_SKIP_INSTALL_RPATH)
set_target_properties(EncryptionOperator PROPERTIES INSTALL_RPATH_USE_LINK_PATH TRUE)
endif()
install(TARGETS EncryptionOperator EXPORT adios2Exports
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT adios2_core-runtime
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT adios2_core-libraries NAMELINK_COMPONENT adios2_core-development
Expand Down
37 changes: 37 additions & 0 deletions scripts/ci/cmake/ci-el8-icc-mpich.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
include(ProcessorCount)
ProcessorCount(NCPUS)
math(EXPR N2CPUS "${NCPUS}*2")

set(ENV{CC} icc)
set(ENV{CXX} icpc)
set(ENV{FC} ifort)

set(dashboard_cache "
BUILD_TESTING:BOOL=ON
ADIOS2_BUILD_EXAMPLES:BOOL=ON
ADIOS2_USE_BZip2:BOOL=ON
ADIOS2_USE_Blosc:BOOL=ON
ADIOS2_USE_DataMan:BOOL=ON
ADIOS2_USE_DataSpaces:BOOL=OFF
ADIOS2_USE_Fortran:BOOL=OFF
ADIOS2_USE_HDF5:BOOL=ON
ADIOS2_USE_MPI:BOOL=ON
ADIOS2_USE_Python:BOOL=ON
ADIOS2_USE_SZ:BOOL=ON
ADIOS2_USE_ZeroMQ:STRING=ON
ADIOS2_USE_ZFP:BOOL=ON
CMAKE_C_COMPILER_LAUNCHER=ccache
CMAKE_CXX_COMPILER_LAUNCHER=ccache
CMAKE_C_FLAGS:STRING=-Wall -diag-disable=10441
CMAKE_C_FLAGS_DEBUG:STRING=-g -O0
CMAKE_CXX_FLAGS:STRING=-Wall -diag-disable=10441
CMAKE_CXX_FLAGS_DEBUG:STRING=-g -O0
MPIEXEC_MAX_NUMPROCS:STRING=${N2CPUS}
")

set(CTEST_CMAKE_GENERATOR "Unix Makefiles")
list(APPEND CTEST_UPDATE_NOTES_FILES "${CMAKE_CURRENT_LIST_FILE}")
include(${CMAKE_CURRENT_LIST_DIR}/ci-common.cmake)
38 changes: 38 additions & 0 deletions scripts/ci/cmake/ci-el8-oneapi-mpich.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
include(ProcessorCount)
ProcessorCount(NCPUS)
math(EXPR N2CPUS "${NCPUS}*2")

set(ENV{CC} icx)
set(ENV{CXX} icpx)
set(ENV{FC} ifort) # oneapi fortran compiler currently has issues

set(dashboard_cache "
BUILD_TESTING:BOOL=ON
ADIOS2_BUILD_EXAMPLES:BOOL=ON
ADIOS2_USE_BZip2:BOOL=ON
ADIOS2_USE_Blosc:BOOL=OFF
ADIOS2_USE_DataMan:BOOL=ON
ADIOS2_USE_DataSpaces:BOOL=OFF
ADIOS2_USE_Fortran:BOOL=OFF
ADIOS2_USE_HDF5:BOOL=ON
ADIOS2_USE_MPI:BOOL=ON
ADIOS2_USE_Python:BOOL=ON
ADIOS2_USE_SZ:BOOL=ON
ADIOS2_USE_ZeroMQ:STRING=ON
ADIOS2_USE_ZFP:BOOL=ON
CMAKE_C_COMPILER_LAUNCHER=ccache
CMAKE_CXX_COMPILER_LAUNCHER=ccache
CMAKE_C_FLAGS:STRING=-Wall
CMAKE_C_FLAGS_DEBUG:STRING=-g -O0
CMAKE_CXX_FLAGS:STRING=-Wall
CMAKE_CXX_FLAGS_DEBUG:STRING=-g -O0
CMAKE_Fortran_FLAGS:STRING=-W1
MPIEXEC_MAX_NUMPROCS:STRING=${N2CPUS}
")

set(CTEST_CMAKE_GENERATOR "Unix Makefiles")
list(APPEND CTEST_UPDATE_NOTES_FILES "${CMAKE_CURRENT_LIST_FILE}")
include(${CMAKE_CURRENT_LIST_DIR}/ci-common.cmake)
49 changes: 49 additions & 0 deletions scripts/ci/cmake/ci-ubuntu20.04-clang10-mpich.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
include(ProcessorCount)
ProcessorCount(NCPUS)
math(EXPR N2CPUS "${NCPUS}*2")

set(ENV{CC} clang-10)
set(ENV{CXX} clang++-10)
set(ENV{FC} gfortran-11)

execute_process(
COMMAND "python3-config" "--prefix"
OUTPUT_VARIABLE PY_ROOT
OUTPUT_STRIP_TRAILING_WHITESPACE)

set(dashboard_cache "
BUILD_TESTING:BOOL=ON
ADIOS2_BUILD_EXAMPLES:BOOL=ON
ADIOS2_USE_Blosc:BOOL=ON
ADIOS2_USE_BZip2:BOOL=ON
ADIOS2_USE_DataMan:BOOL=ON
ADIOS2_USE_Fortran:BOOL=ON
ADIOS2_USE_HDF5:BOOL=ON
ADIOS2_USE_MPI:BOOL=ON
ADIOS2_USE_Python:BOOL=ON
ADIOS2_USE_SZ:BOOL=ON
ADIOS2_USE_ZeroMQ:STRING=ON
ADIOS2_USE_ZFP:BOOL=ON
Python_ROOT_DIR:PATH=${PY_ROOT}
Python_FIND_STRATEGY:STRING=LOCATION
Python_FIND_FRAMEWORK:STRING=FIRST
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
MPIEXEC_MAX_NUMPROCS:STRING=${N2CPUS}
")

# TODO: The Kill* and PreciousTimeStep tests fail (due to timeout) when
# TODO: adios2 is built "--with-device=ch3:sock:tcp". Once this is fixed
# TODO: in the mpi_dp, we can re-enable these tests.
set(CTEST_TEST_ARGS EXCLUDE "KillReader|KillWriter|PreciousTimestep")

set(CTEST_CMAKE_GENERATOR "Ninja")
list(APPEND CTEST_UPDATE_NOTES_FILES "${CMAKE_CURRENT_LIST_FILE}")
include(${CMAKE_CURRENT_LIST_DIR}/ci-common.cmake)
51 changes: 51 additions & 0 deletions scripts/ci/cmake/ci-ubuntu20.04-clang6-mpich.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
include(ProcessorCount)
ProcessorCount(NCPUS)
math(EXPR N2CPUS "${NCPUS}*2")

set(ENV{CC} clang-6.0)
set(ENV{CXX} clang++-6.0)
set(ENV{FC} gfortran-11)

execute_process(
COMMAND "python3-config" "--prefix"
OUTPUT_VARIABLE PY_ROOT
OUTPUT_STRIP_TRAILING_WHITESPACE)

set(dashboard_cache "
BUILD_TESTING:BOOL=ON
ADIOS2_BUILD_EXAMPLES:BOOL=ON
ADIOS2_USE_Blosc:BOOL=ON
ADIOS2_USE_BZip2: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
ADIOS2_USE_ZeroMQ:STRING=ON
ADIOS2_USE_ZFP:BOOL=ON
Python_ROOT_DIR:PATH=${PY_ROOT}
Python_FIND_STRATEGY:STRING=LOCATION
Python_FIND_FRAMEWORK:STRING=FIRST
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
MPIEXEC_MAX_NUMPROCS:STRING=${N2CPUS}
")

# We have a dedicated build for clang6 + serial, so we exclude ".Serial$"
# TODO: The Kill* and PreciousTimeStep tests fail (due to timeout) when
# TODO: adios2 is built "--with-device=ch3:sock:tcp". Once this is fixed
# TODO: in the mpi_dp, we can re-enable these tests.
set(CTEST_TEST_ARGS EXCLUDE "KillReader|KillWriter|PreciousTimestep|.Serial$")

set(CTEST_CMAKE_GENERATOR "Ninja")
list(APPEND CTEST_UPDATE_NOTES_FILES "${CMAKE_CURRENT_LIST_FILE}")
include(${CMAKE_CURRENT_LIST_DIR}/ci-common.cmake)
13 changes: 11 additions & 2 deletions scripts/ci/cmake/ci-ubuntu20.04-gcc10-mpich.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,17 @@ CMAKE_Fortran_FLAGS:STRING=-Wall
MPIEXEC_MAX_NUMPROCS:STRING=${N2CPUS}
")

set(CTEST_TEST_ARGS
EXCLUDE "Engine.BPEngineTest.SzComplex.MPI|Engine.BPEngineTest.ZfpComplex.MPI|.Serial$")
# TODO: The Kill* and PreciousTimeStep tests fail (due to timeout) when
# TODO: adios2 is built "--with-device=ch3:sock:tcp". Once this is fixed
# TODO: in the mpi_dp, we can re-enable these tests.
list(APPEND EXCLUDE_EXPRESSIONS
"Engine.BPEngineTest.SzComplex.MPI"
"Engine.BPEngineTest.ZfpComplex.MPI"
"KillReader"
"KillWriter"
"PreciousTimestep")
list(JOIN EXCLUDE_EXPRESSIONS "|" TEST_EXCLUDE_STRING)
set(CTEST_TEST_ARGS EXCLUDE "${TEST_EXCLUDE_STRING}")

set(CTEST_CMAKE_GENERATOR "Ninja")
list(APPEND CTEST_UPDATE_NOTES_FILES "${CMAKE_CURRENT_LIST_FILE}")
Expand Down
49 changes: 49 additions & 0 deletions scripts/ci/cmake/ci-ubuntu20.04-gcc11-mpich.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
include(ProcessorCount)
ProcessorCount(NCPUS)
math(EXPR N2CPUS "${NCPUS}*2")

set(ENV{CC} gcc)
set(ENV{CXX} g++)
set(ENV{FC} gfortran)

execute_process(
COMMAND "python3-config" "--prefix"
OUTPUT_VARIABLE PY_ROOT
OUTPUT_STRIP_TRAILING_WHITESPACE)

set(dashboard_cache "
BUILD_TESTING:BOOL=ON
ADIOS2_BUILD_EXAMPLES:BOOL=ON
ADIOS2_USE_BZip2:BOOL=ON
ADIOS2_USE_Blosc:BOOL=ON
ADIOS2_USE_DataMan:BOOL=ON
ADIOS2_USE_Fortran:BOOL=ON
ADIOS2_USE_HDF5:BOOL=ON
ADIOS2_USE_MPI:BOOL=ON
ADIOS2_USE_Python:BOOL=ON
ADIOS2_USE_SZ:BOOL=ON
ADIOS2_USE_ZeroMQ:STRING=ON
ADIOS2_USE_ZFP:BOOL=ON
Python_ROOT_DIR:PATH=${PY_ROOT}
Python_FIND_STRATEGY:STRING=LOCATION
Python_FIND_FRAMEWORK:STRING=FIRST
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
MPIEXEC_MAX_NUMPROCS:STRING=${N2CPUS}
")

# TODO: The Kill* and PreciousTimeStep tests fail (due to timeout) when
# TODO: adios2 is built "--with-device=ch3:sock:tcp". Once this is fixed
# TODO: in the mpi_dp, we can re-enable these tests.
set(CTEST_TEST_ARGS EXCLUDE "KillReader|KillWriter|PreciousTimestep")

set(CTEST_CMAKE_GENERATOR "Ninja")
list(APPEND CTEST_UPDATE_NOTES_FILES "${CMAKE_CURRENT_LIST_FILE}")
include(${CMAKE_CURRENT_LIST_DIR}/ci-common.cmake)
50 changes: 50 additions & 0 deletions scripts/ci/cmake/ci-ubuntu20.04-gcc8-mpich.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
include(ProcessorCount)
ProcessorCount(NCPUS)
math(EXPR N2CPUS "${NCPUS}*2")

set(ENV{CC} gcc)
set(ENV{CXX} g++)
set(ENV{FC} gfortran)

execute_process(
COMMAND "python3-config" "--prefix"
OUTPUT_VARIABLE PY_ROOT
OUTPUT_STRIP_TRAILING_WHITESPACE)

set(dashboard_cache "
BUILD_TESTING:BOOL=ON
ADIOS2_BUILD_EXAMPLES:BOOL=ON
ADIOS2_USE_BZip2:BOOL=ON
ADIOS2_USE_Blosc:BOOL=ON
ADIOS2_USE_DataMan:BOOL=ON
ADIOS2_USE_Fortran:BOOL=ON
ADIOS2_USE_HDF5:BOOL=ON
ADIOS2_USE_MPI:BOOL=ON
ADIOS2_USE_Python:BOOL=ON
ADIOS2_USE_SZ:BOOL=ON
ADIOS2_USE_ZeroMQ:STRING=ON
ADIOS2_USE_ZFP:BOOL=ON
Python_ROOT_DIR:PATH=${PY_ROOT}
Python_FIND_STRATEGY:STRING=LOCATION
Python_FIND_FRAMEWORK:STRING=FIRST
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
MPIEXEC_MAX_NUMPROCS:STRING=${N2CPUS}
")

# We have a dedicated build for gcc8 + serial, so we exclude ".Serial$"
# TODO: The Kill* and PreciousTimeStep tests fail (due to timeout) when
# TODO: adios2 is built "--with-device=ch3:sock:tcp". Once this is fixed
# TODO: in the mpi_dp, we can re-enable these tests.
set(CTEST_TEST_ARGS EXCLUDE "KillReader|KillWriter|PreciousTimestep|.Serial$")

set(CTEST_CMAKE_GENERATOR "Ninja")
list(APPEND CTEST_UPDATE_NOTES_FILES "${CMAKE_CURRENT_LIST_FILE}")
include(${CMAKE_CURRENT_LIST_DIR}/ci-common.cmake)
3 changes: 3 additions & 0 deletions scripts/ci/cmake/ci-ubuntu20.04-gcc8-ompi.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,9 @@ CMAKE_CXX_FLAGS:STRING=-Wall
CMAKE_Fortran_FLAGS:STRING=-Wall
")

# We have a dedicated build for this setup without MPI
set(CTEST_TEST_ARGS EXCLUDE ".Serial$")

set(CTEST_CMAKE_GENERATOR "Ninja")
list(APPEND CTEST_UPDATE_NOTES_FILES "${CMAKE_CURRENT_LIST_FILE}")
include(${CMAKE_CURRENT_LIST_DIR}/ci-common.cmake)
49 changes: 49 additions & 0 deletions scripts/ci/cmake/ci-ubuntu20.04-gcc9-mpich.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
include(ProcessorCount)
ProcessorCount(NCPUS)
math(EXPR N2CPUS "${NCPUS}*2")

set(ENV{CC} gcc)
set(ENV{CXX} g++)
set(ENV{FC} gfortran)

execute_process(
COMMAND "python3-config" "--prefix"
OUTPUT_VARIABLE PY_ROOT
OUTPUT_STRIP_TRAILING_WHITESPACE)

set(dashboard_cache "
BUILD_TESTING:BOOL=ON
ADIOS2_BUILD_EXAMPLES:BOOL=ON
ADIOS2_USE_BZip2:BOOL=ON
ADIOS2_USE_Blosc:BOOL=ON
ADIOS2_USE_DataMan:BOOL=ON
ADIOS2_USE_Fortran:BOOL=ON
ADIOS2_USE_HDF5:BOOL=ON
ADIOS2_USE_MPI:BOOL=ON
ADIOS2_USE_Python:BOOL=ON
ADIOS2_USE_SZ:BOOL=ON
ADIOS2_USE_ZeroMQ:STRING=ON
ADIOS2_USE_ZFP:BOOL=ON
Python_ROOT_DIR:PATH=${PY_ROOT}
Python_FIND_STRATEGY:STRING=LOCATION
Python_FIND_FRAMEWORK:STRING=FIRST
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
MPIEXEC_MAX_NUMPROCS:STRING=${N2CPUS}
")

# TODO: The Kill* and PreciousTimeStep tests fail (due to timeout) when
# TODO: adios2 is built "--with-device=ch3:sock:tcp". Once this is fixed
# TODO: in the mpi_dp, we can re-enable these tests.
set(CTEST_TEST_ARGS EXCLUDE "KillReader|KillWriter|PreciousTimestep")

set(CTEST_CMAKE_GENERATOR "Ninja")
list(APPEND CTEST_UPDATE_NOTES_FILES "${CMAKE_CURRENT_LIST_FILE}")
include(${CMAKE_CURRENT_LIST_DIR}/ci-common.cmake)
Loading

0 comments on commit ced424b

Please sign in to comment.