Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

4.2.1rc #4611

Merged
merged 51 commits into from
Apr 17, 2023
Merged

4.2.1rc #4611

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
383dbbf
Use new codecov uploader (#4600)
kodiakhq[bot] Nov 7, 2022
82f6585
core: Remove unused parameter
jngrad Jul 4, 2022
d168ff3
doc: Add support for VS Code Jupyter backend
jngrad Jul 7, 2022
4870af6
doc: Add support for KaTeX
jngrad Jul 7, 2022
e5d7313
Fix bugs in espressomd.analyze module (#4534)
kodiakhq[bot] Jul 18, 2022
06cee16
Brownian dynamics: propagate spatially fixed yet freely rotatable par…
kodiakhq[bot] Aug 8, 2022
ffe8b73
GitHub Workflows security hardening (#4577)
kodiakhq[bot] Sep 27, 2022
1f57b81
Test LB profile observables in parallel (#4583)
kodiakhq[bot] Oct 4, 2022
ee96c17
update, shorten text in active matter tutorial (#4585)
kodiakhq[bot] Oct 5, 2022
f8f59d5
Reaction methods bug fixes (#4589)
kodiakhq[bot] Oct 14, 2022
fd26065
Add support for modern Clang compilers (#4601)
kodiakhq[bot] Oct 28, 2022
1f50293
Summer School wrap-up (#4597)
kodiakhq[bot] Oct 28, 2022
203b050
Core maintenance (#4606)
kodiakhq[bot] Nov 18, 2022
ac2332e
Fix unit tests environment variables (#4607)
kodiakhq[bot] Nov 21, 2022
66c0357
CMake: Add missing license headers
jngrad Nov 17, 2022
d99da37
Build system improvements (#4608)
kodiakhq[bot] Nov 25, 2022
12acd00
tests: Check reaction algorithm more thoroughly
jngrad Nov 8, 2022
cec34e2
Allow multiple concurrent reaction methods (#4609)
kodiakhq[bot] Dec 12, 2022
1370eb3
Implement override_cutoff_check property for vs. (#4623)
kodiakhq[bot] Dec 7, 2022
19c7a54
fixed system.part.pairs() (#4628)
kodiakhq[bot] Dec 12, 2022
1d299e7
Remove deprecated numpy options (#4635)
kodiakhq[bot] Dec 21, 2022
24a5a0c
Bump GitHub Actions dependencies (#4638)
kodiakhq[bot] Dec 23, 2022
992f093
Rewrite particle serialization mechanism (#4637)
kodiakhq[bot] Dec 23, 2022
1f96dd9
Improve testing and code coverage (#4631)
kodiakhq[bot] Dec 23, 2022
847983f
CMake: Fix broken test target for label parallel_odd
jngrad Jul 25, 2022
11d7ccd
Update type map when clearing the particle list (#4648)
jngrad Jan 12, 2023
aadd283
Code maintenance (#4562)
kodiakhq[bot] Sep 13, 2022
db7ec79
Restore LB boundaries during checkpointing (#4649)
jngrad Jan 12, 2023
d54012e
Fix regressions in auto-exclusions (#4654)
kodiakhq[bot] Jan 19, 2023
4f97192
Fix build on Boost 1.81 (#4655)
kodiakhq[bot] Jan 20, 2023
56a2172
Fix tutorial deployment to GitHub Pages (#4656)
kodiakhq[bot] Jan 23, 2023
2e1fe34
build(deps): bump nbconvert from 6.4.5 to 6.5.1 (#4658)
kodiakhq[bot] Jan 23, 2023
9d10d3d
script_interface: Fix dict_keys-list merge bug (#4674)
kodiakhq[bot] Feb 20, 2023
8b8025e
Make trajectories more reproducible during checkpointing (#4677)
kodiakhq[bot] Feb 24, 2023
c79506a
Remove 1-core restriction for NSquare and HybridDecomposition + LB. (…
kodiakhq[bot] Mar 1, 2023
066a25c
Enable P3M for hybrid decomposition with one MPI node (#4678)
kodiakhq[bot] Mar 1, 2023
61f7656
Prevent insertion of particles with negative mass (#4679)
kodiakhq[bot] Mar 2, 2023
6e2c1df
core: Check reaction gamma
jngrad Mar 2, 2023
13efb9b
Documentation maintenance (#4681)
kodiakhq[bot] Mar 9, 2023
c3b2732
Fix operator transformation from body frame to lab frame (#4683)
kodiakhq[bot] Mar 9, 2023
1d4c309
Visualizer bugfixes (#4686)
kodiakhq[bot] Mar 10, 2023
985cfc6
fix particle anisotropy in thermostats (#4690)
kodiakhq[bot] Mar 20, 2023
db25215
Catch invalid reaction method argument
jngrad Mar 21, 2023
289ac79
Fix regression in OpenGL visualizer
jngrad Mar 21, 2023
6ff3501
Improve freeglut support in OpenGL visualizer (#4691)
kodiakhq[bot] Mar 21, 2023
523f84c
Simplify VS_Relative, fix VS support for Lees Edwards (#4564)
kodiakhq[bot] Mar 28, 2023
565d188
Fix issues with cluster analysis and chain analysis (#4698)
kodiakhq[bot] Mar 29, 2023
7b502df
Rewrite coordinates folding of virtual sites relative (#4707)
kodiakhq[bot] Apr 14, 2023
3e9a6bf
tests: Remove flaky test
jngrad Apr 14, 2023
dce211d
Fix minor regressions in 4.2.0 (#4538)
kodiakhq[bot] Jul 21, 2022
75a2173
Add support for ARM architectures (#4708)
kodiakhq[bot] Apr 17, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .clang-tidy
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@ Checks: |
-clang-analyzer-core.NullDereference,
-clang-analyzer-core.uninitialized.UndefReturn,
-clang-analyzer-optin.mpi.MPI-Checker,
-clang-analyzer-security.FloatLoopCounter,
bugprone-*,
-bugprone-easily-swappable-parameters,
-bugprone-implicit-widening-of-multiplication-result,
-bugprone-macro-parentheses,
-bugprone-reserved-identifier,
clang-analyzer-alpha.*,
modernize-deprecated-headers,
modernize-make-shared,
Expand Down
2 changes: 1 addition & 1 deletion .codecov.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ coverage:
patch:
default:
enabled: yes
threshold: 1%
threshold: 2%
changes: no

parsers:
Expand Down
8 changes: 2 additions & 6 deletions .github/actions/build_and_check/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,20 +9,16 @@ inputs:
description: 'Whether to build with undefined behavior sanitizer'
required: true
default: 'false'
check_skip_long: # id of input
description: 'Whether to skip long python tests'
required: true
default: 'false'
runs:
using: "composite"
steps:
- run: |
brew install boost boost-mpi fftw
brew install hdf5-mpi
pip3 install numpy cython h5py scipy
pip3 install -c requirements.txt numpy cython h5py scipy
shell: bash
- run: |
export myconfig=maxset with_cuda=false test_timeout=800 with_asan=${{ inputs.asan }} with_ubsan=${{ inputs.ubsan }} check_skip_long=${{ inputs.check_skip_long }}
export myconfig=maxset with_cuda=false test_timeout=800 with_asan=${{ inputs.asan }} with_ubsan=${{ inputs.ubsan }} check_skip_long=true
bash maintainer/CI/build_cmake.sh
shell: bash
# This is a workaround for the unfortunate interaction of MacOS and OpenMPI 4
Expand Down
9 changes: 6 additions & 3 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,19 @@ on:
schedule:
- cron: '0 7 * * *'

permissions:
contents: read # to fetch code (actions/checkout)

jobs:
deploy_docs:
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
if: github.repository == 'espressomd/espresso'
environment: deploy_documentation
steps:
- name: Install pandoc
uses: r-lib/actions/setup-pandoc@v1
uses: r-lib/actions/setup-pandoc@v2
- name: Setup SSH agent
uses: webfactory/ssh-agent@v0.5.2
uses: webfactory/ssh-agent@v0.7.0
with:
ssh-private-key: ${{ secrets.GH_PAGES_SSH_PRIVATE_KEY }}
- name: Checkout
Expand Down
17 changes: 11 additions & 6 deletions .github/workflows/push_pull.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,40 +6,45 @@ on:
schedule:
- cron: '0 3 * * *'

permissions:
contents: read # to fetch code (actions/checkout)

jobs:
regular_check:
runs-on: macos-latest
runs-on: macos-12
if: github.event_name != 'schedule'
steps:
- name: Checkout
uses: actions/checkout@main
- name: Setup Python environment
uses: actions/setup-python@v2
uses: actions/setup-python@v4.3.1
with:
python-version: '3.8'
- name: Check without sanitizer
uses: ./.github/actions/build_and_check
with:
asan: false
ubsan: false
check_skip_long: false

sanitizer_check:
runs-on: macos-latest
permissions:
contents: read # to fetch code (actions/checkout)
issues: write # to create an issue

runs-on: macos-12
if: (github.event_name == 'schedule' && github.repository == 'espressomd/espresso')
steps:
- name: Checkout
uses: actions/checkout@main
- name: Setup Python environment
uses: actions/setup-python@v2
uses: actions/setup-python@v4.3.1
with:
python-version: '3.8'
- name: Check with sanitizer
uses: ./.github/actions/build_and_check
with:
asan: true
ubsan: true
check_skip_long: true
- name: Setting job link variable
if: ${{ failure() }}
run: |
Expand Down
17 changes: 10 additions & 7 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
image: ghcr.io/espressomd/docker/ubuntu-20.04:7ec021ab4af6f89d65121db2eb24acb1ed452e02
image: ghcr.io/espressomd/docker/ubuntu-20.04:7db5674cf3eca1ce80a5ce970661494ec6612924

stages:
- prepare
Expand Down Expand Up @@ -136,7 +136,7 @@ no_rotation:
ubuntu:wo-dependencies:
<<: *global_job_definition
stage: build
image: ghcr.io/espressomd/docker/ubuntu-wo-dependencies:7ec021ab4af6f89d65121db2eb24acb1ed452e02
image: ghcr.io/espressomd/docker/ubuntu-wo-dependencies:7db5674cf3eca1ce80a5ce970661494ec6612924
variables:
myconfig: 'maxset'
with_cuda: 'false'
Expand All @@ -154,7 +154,7 @@ ubuntu:wo-dependencies:
debian:10:
<<: *global_job_definition
stage: build
image: ghcr.io/espressomd/docker/debian:7ec021ab4af6f89d65121db2eb24acb1ed452e02
image: ghcr.io/espressomd/docker/debian:7db5674cf3eca1ce80a5ce970661494ec6612924
variables:
with_cuda: 'false'
myconfig: 'maxset'
Expand All @@ -169,7 +169,7 @@ debian:10:
fedora:36:
<<: *global_job_definition
stage: build
image: ghcr.io/espressomd/docker/fedora:7ec021ab4af6f89d65121db2eb24acb1ed452e02
image: ghcr.io/espressomd/docker/fedora:7db5674cf3eca1ce80a5ce970661494ec6612924
variables:
with_cuda: 'false'
myconfig: 'maxset'
Expand Down Expand Up @@ -210,7 +210,7 @@ clang-sanitizer:
fast_math:
<<: *global_job_definition
stage: build
image: ghcr.io/espressomd/docker/cuda:7ec021ab4af6f89d65121db2eb24acb1ed452e02
image: ghcr.io/espressomd/docker/cuda:7db5674cf3eca1ce80a5ce970661494ec6612924
variables:
CC: 'gcc-9'
CXX: 'g++-9'
Expand All @@ -230,7 +230,7 @@ fast_math:
cuda11-maxset-ubuntu20.04:
<<: *global_job_definition
stage: build
image: ghcr.io/espressomd/docker/cuda:7ec021ab4af6f89d65121db2eb24acb1ed452e02
image: ghcr.io/espressomd/docker/cuda:7db5674cf3eca1ce80a5ce970661494ec6612924
variables:
CC: 'gcc-9'
CXX: 'g++-9'
Expand All @@ -251,7 +251,7 @@ cuda11-maxset-ubuntu20.04:
cuda11-maxset-ubuntu22.04:
<<: *global_job_definition
stage: build
image: ghcr.io/espressomd/docker/ubuntu-22.04:7ec021ab4af6f89d65121db2eb24acb1ed452e02
image: ghcr.io/espressomd/docker/ubuntu-22.04:7db5674cf3eca1ce80a5ce970661494ec6612924
variables:
CC: 'gcc-10'
CXX: 'g++-10'
Expand Down Expand Up @@ -305,6 +305,7 @@ tutorials-samples-maxset:
with_coverage: 'false'
with_coverage_python: 'true'
with_scafacos: 'true'
with_stokesian_dynamics: 'true'
make_check_unit_tests: 'false'
make_check_python: 'false'
make_check_tutorials: 'true'
Expand Down Expand Up @@ -438,6 +439,8 @@ empty:
with_static_analysis: 'true'
with_scafacos: 'false'
with_stokesian_dynamics: 'false'
with_coverage: 'false'
with_coverage_python: 'true'
script:
- bash maintainer/CI/build_cmake.sh
tags:
Expand Down
56 changes: 43 additions & 13 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,10 @@ if(CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND NOT APPLE)
"Build with memory sanitizer (experimental; requires a memory-sanitized Python interpreter)"
OFF)
endif()
option(
ESPRESSO_ADD_OMPI_SINGLETON_WARNING
"Add a runtime warning in the pypresso script for NUMA architectures that aren't supported in singleton mode by Open MPI 4.x"
ON)
option(WARNINGS_ARE_ERRORS "Treat warnings as errors during compilation" OFF)
option(WITH_CCACHE "Use ccache compiler invocation." OFF)
option(WITH_PROFILER "Enable profiler annotations." OFF)
Expand All @@ -104,14 +108,13 @@ set(TEST_TIMEOUT "300" CACHE STRING
"Timeout in seconds for each testsuite test")

if(WITH_CCACHE)
find_program(CCACHE ccache)
if(CCACHE)
message(STATUS "Found ccache ${CCACHE}")
set(CMAKE_CXX_COMPILER_LAUNCHER ${CCACHE} CACHE STRING "ccache executable")
else()
message(FATAL_ERROR "ccache not found.")
endif(CCACHE)
endif(WITH_CCACHE)
find_program(CCACHE_PROGRAM ccache REQUIRED)
if(CCACHE_PROGRAM)
message(STATUS "Found ccache: ${CCACHE_PROGRAM}")
set(CMAKE_CXX_COMPILER_LAUNCHER ${CCACHE_PROGRAM})
set(CMAKE_CUDA_COMPILER_LAUNCHER ${CCACHE_PROGRAM})
endif()
endif()

# Write compile commands to file, for various tools...
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
Expand Down Expand Up @@ -280,11 +283,38 @@ find_package(MPI 3.0 REQUIRED)
find_package(MpiexecBackend)

# OpenMPI checks the number of processes against the number of CPUs
if("${MPIEXEC_BACKEND_NAME}" STREQUAL "OpenMPI" AND "${MPIEXEC_BACKEND_VERSION}"
VERSION_GREATER_EQUAL 2.0.0)
set(MPIEXEC_OVERSUBSCRIBE "-oversubscribe")
else()
set(MPIEXEC_OVERSUBSCRIBE "")
set(MPIEXEC_OVERSUBSCRIBE "")
# Open MPI 4.x has a bug on NUMA archs that prevents running in singleton mode
set(ESPRESSO_MPIEXEC_GUARD_SINGLETON_NUMA OFF)
set(ESPRESSO_CPU_MODEL_NAME_OMPI_SINGLETON_NUMA_PATTERN "AMD (EPYC|Ryzen)")

if("${MPIEXEC_BACKEND_NAME}" STREQUAL "OpenMPI")
if("${MPIEXEC_BACKEND_VERSION}" VERSION_GREATER_EQUAL 2.0.0)
set(MPIEXEC_OVERSUBSCRIBE "-oversubscribe")
endif()
if("${MPIEXEC_BACKEND_VERSION}" VERSION_GREATER_EQUAL 4.0
AND "${MPIEXEC_BACKEND_VERSION}" VERSION_LESS 5.0)
if(NOT DEFINED ESPRESSO_CPU_MODEL_NAME)
if(CMAKE_SYSTEM_NAME STREQUAL Linux)
if(EXISTS /proc/cpuinfo)
file(READ /proc/cpuinfo ESPRESSO_CPU_INFO)
string(REGEX
REPLACE ".*\n[Mm]odel name[ \t]*:[ \t]+([^\n]+).*" "\\1"
ESPRESSO_CPU_MODEL_NAME_STRING "${ESPRESSO_CPU_INFO}")
else()
set(ESPRESSO_CPU_MODEL_NAME_STRING "__unreadable")
endif()
else()
set(ESPRESSO_CPU_MODEL_NAME_STRING "__unaffected")
endif()
set(ESPRESSO_CPU_MODEL_NAME "${ESPRESSO_CPU_MODEL_NAME_STRING}"
CACHE INTERNAL "")
endif()
if(ESPRESSO_CPU_MODEL_NAME MATCHES
"^${ESPRESSO_CPU_MODEL_NAME_OMPI_SINGLETON_NUMA_PATTERN}")
set(ESPRESSO_MPIEXEC_GUARD_SINGLETON_NUMA ON)
endif()
endif()
endif()

# OpenMPI cannot run two jobs in parallel in a Docker container, because the
Expand Down
17 changes: 17 additions & 0 deletions cmake/FindCUDACompilerClang.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -62,8 +62,25 @@ set(CUDA_NVCC_FLAGS_RELWITHASSERT "${CUDA_NVCC_FLAGS_RELWITHASSERT} -O3 -g")
string(TOUPPER ${CMAKE_BUILD_TYPE} CMAKE_BUILD_TYPE_UPPER)
set(gpu_interface_flags "${CUDA_NVCC_FLAGS} ${CUDA_NVCC_FLAGS_${CMAKE_BUILD_TYPE_UPPER}} --cuda-gpu-arch=sm_52")
if(CMAKE_CUDA_COMPILER_VERSION VERSION_LESS 11)
# GTX-600 series (Kepler)
set(gpu_interface_flags "${gpu_interface_flags} --cuda-gpu-arch=sm_30")
endif()
if(CMAKE_CUDA_COMPILER_VERSION VERSION_LESS 12)
# GTX-900 series (Maxwell)
set(gpu_interface_flags "${gpu_interface_flags} --cuda-gpu-arch=sm_52")
endif()
if(CMAKE_CUDA_COMPILER_VERSION VERSION_GREATER_EQUAL 10)
# GTX-1000 series (Pascal)
set(gpu_interface_flags "${gpu_interface_flags} --cuda-gpu-arch=sm_61")
endif()
if(CMAKE_CUDA_COMPILER_VERSION VERSION_GREATER_EQUAL "10.0.0" AND
(CMAKE_CUDA_COMPILER_VERSION VERSION_LESS "14.0.0" OR
CUDA_VERSION VERSION_GREATER_EQUAL "11.3.0"))
# RTX-2000 series (Turing)
# With Clang 14+, architectures sm_70+ are only supported with Thrust 1.11+
# from CUDA 11.3+, for details see https://github.com/NVIDIA/cub/pull/170
set(gpu_interface_flags "${gpu_interface_flags} --cuda-gpu-arch=sm_75")
endif()
if(CMAKE_CUDA_COMPILER_VERSION VERSION_GREATER_EQUAL "12.0.0" AND
CMAKE_CUDA_COMPILER_VERSION VERSION_LESS "13.0.0" AND
CUDA_VERSION VERSION_GREATER_EQUAL "11.0" AND
Expand Down
2 changes: 1 addition & 1 deletion cmake/FindCUDACompilerNVCC.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ find_gpu_library(VARNAME CUDA_CUFFT_LIBRARIES NAMES cufft REQUIRED)
function(add_gpu_library)
cuda_add_library(${ARGV})
set(GPU_TARGET_NAME ${ARGV0})
set_property(TARGET ${GPU_TARGET_NAME} PROPERTY CUDA_SEPARABLE_COMPILATION ON)
set_target_properties(${GPU_TARGET_NAME} PROPERTIES CUDA_SEPARABLE_COMPILATION ON)
target_link_libraries(${GPU_TARGET_NAME} PRIVATE
${CUDA_LIBRARY} ${CUDART_LIBRARY} ${CUDA_CUFFT_LIBRARIES})
endfunction()
Expand Down
19 changes: 19 additions & 0 deletions cmake/FindClangTidy.cmake
Original file line number Diff line number Diff line change
@@ -1,3 +1,22 @@
#
# Copyright (C) 2017-2022 The ESPResSo project
#
# This file is part of ESPResSo.
#
# ESPResSo is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# ESPResSo is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#

# Find Clang-tidy

# get Clang version
Expand Down
19 changes: 19 additions & 0 deletions cmake/FindSphinx.cmake
Original file line number Diff line number Diff line change
@@ -1,3 +1,22 @@
#
# Copyright (C) 2016-2022 The ESPResSo project
#
# This file is part of ESPResSo.
#
# ESPResSo is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# ESPResSo is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#

include(FindPackageHandleStandardArgs)

set(SPHINX_EXECUTABLE ${PYTHON_EXECUTABLE} -m sphinx)
Expand Down
6 changes: 0 additions & 6 deletions cmake/cmake_config.cmakein
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@

#cmakedefine CUDA

#cmakedefine HIP

#cmakedefine FFTW

#cmakedefine H5MD
Expand All @@ -13,10 +11,6 @@

#cmakedefine GSL

#cmakedefine BLAS

#cmakedefine LAPACK

#cmakedefine STOKESIAN_DYNAMICS

#cmakedefine VALGRIND_INSTRUMENTATION
Expand Down
Loading