diff --git a/.github/workflows/benchmark_models.yml b/.github/workflows/benchmark_models.yml index 85d0005a..f67723e1 100644 --- a/.github/workflows/benchmark_models.yml +++ b/.github/workflows/benchmark_models.yml @@ -35,10 +35,6 @@ jobs: -DBUILD_TESTS=OFF \ && cmake --build "${AMICI_PATH}/build" --parallel -- VERBOSE=1 - - name: Install parPE Python deps - run: | - pip install -r ${PARPE_BASE}/python/requirements.txt - - name: Configure parpe run: | cmake \ diff --git a/.github/workflows/parpe_tests.yml b/.github/workflows/parpe_tests.yml index 5d7d3c90..1b2cf2dd 100644 --- a/.github/workflows/parpe_tests.yml +++ b/.github/workflows/parpe_tests.yml @@ -18,7 +18,6 @@ jobs: # If we are running in docker, we generally don't have SYS_PTRACE # permissions and thus, cannot use vader. Also disable Infiniband. PARPE_TESTS_MPIEXEC: mpiexec -n 5 --oversubscribe --allow-run-as-root --mca btl_vader_single_copy_mechanism none --mca btl ^openib --mca oob_tcp_if_include lo --mca btl_tcp_if_include lo --mca orte_base_help_aggregate 0 - steps: - uses: actions/checkout@master - name: chown checkout directory @@ -58,10 +57,9 @@ jobs: -DBUILD_TESTS=OFF \ && cmake --build "${AMICI_PATH}/build" --parallel -- VERBOSE=1 - - name: Install parPE Python deps + - name: Install parPE deps run: | - pip install -r ${PARPE_BASE}/python/requirements.txt \ - && sudo apt install lcov + sudo apt install lcov - name: "Install parPE deps: fides" run: | diff --git a/.github/workflows/petab_testsuite.yml b/.github/workflows/petab_testsuite.yml index 445d6aa9..6265d2ed 100644 --- a/.github/workflows/petab_testsuite.yml +++ b/.github/workflows/petab_testsuite.yml @@ -36,10 +36,6 @@ jobs: -DBUILD_TESTS=OFF \ && cmake --build "${AMICI_PATH}/build" --parallel -- VERBOSE=1 - - name: Install parPE Python deps - run: | - pip install -r ${PARPE_BASE}/python/requirements.txt - - name: Configure parpe run: | cmake \ diff --git a/cmake/CodeCoverage.cmake b/cmake/CodeCoverage.cmake index d9cd2b88..334b69d7 100644 --- a/cmake/CodeCoverage.cmake +++ b/cmake/CodeCoverage.cmake @@ -41,6 +41,9 @@ # 2017-06-02, Lars Bilke # - Merged with modified version from github.com/ufz/ogs # +# 2024-10-13, Daniel Weindl +# - Added "--ignore-errors mismatch" to lcov command to ignore errors with +# recent gcc # # USAGE: # @@ -157,7 +160,7 @@ function(SETUP_TARGET_FOR_COVERAGE) COMMAND ${Coverage_EXECUTABLE} # Capturing lcov counters and generating report - COMMAND ${LCOV_PATH} --directory . --capture --output-file ${Coverage_NAME}.info + COMMAND ${LCOV_PATH} --directory . --capture --output-file ${Coverage_NAME}.info --ignore-errors mismatch COMMAND ${LCOV_PATH} --remove ${Coverage_NAME}.info ${COVERAGE_EXCLUDES} --output-file ${Coverage_NAME}.info.cleaned COMMAND ${GENHTML_PATH} -o ${Coverage_NAME} ${Coverage_NAME}.info.cleaned COMMAND ${CMAKE_COMMAND} -E remove ${Coverage_NAME}.info ${Coverage_NAME}.info.cleaned diff --git a/container/charliecloud/parpe_base/Dockerfile b/container/charliecloud/parpe_base/Dockerfile index c024ffd1..5389e867 100644 --- a/container/charliecloud/parpe_base/Dockerfile +++ b/container/charliecloud/parpe_base/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:22.04 +FROM ubuntu:24.04 COPY . /container-files @@ -9,7 +9,6 @@ ENV CC clang ENV CXX clang++ ENV OMPI_CC clang ENV OMPI_CXX clang++ - RUN /container-files/install_parpe.sh ENV PARPE_DIR "/parPE" diff --git a/container/charliecloud/parpe_base/install.sh b/container/charliecloud/parpe_base/install.sh index 7223e0d5..c5aa3c04 100755 --- a/container/charliecloud/parpe_base/install.sh +++ b/container/charliecloud/parpe_base/install.sh @@ -39,10 +39,6 @@ apt-get install -q -y \ unzip \ wget -# for setuptools to find: -python3 -m pip install --upgrade pip -pip3 install -U setuptools pkgconfig wheel - echo "================= Cleaning package lists ===================" apt-get clean apt-get autoclean diff --git a/container/charliecloud/parpe_base/install_parpe.sh b/container/charliecloud/parpe_base/install_parpe.sh index e37e320c..d660b517 100755 --- a/container/charliecloud/parpe_base/install_parpe.sh +++ b/container/charliecloud/parpe_base/install_parpe.sh @@ -26,9 +26,6 @@ cmake \ # install fides optimizer cd "$PARPE_BASE/ThirdParty" && ./installFides.sh -# install parPE python requirements -pip3 install -r "${PARPE_BASE}"/python/requirements.txt - # build parPE cd "${PARPE_BASE}" mkdir -p build @@ -45,7 +42,7 @@ mpi_cmd="$mpi_cmd;--mca;oob_tcp_if_include;lo" mpi_cmd="$mpi_cmd;--mca;btl_tcp_if_include;lo;" mpi_cmd="$mpi_cmd;--mca;orte_base_help_aggregate;0" -CC=mpicc CXX=mpiCC cmake \ +cmake \ -DPARPE_BUILD_OPTIMIZED=OFF \ -DPARPE_ENABLE_FIDES=ON \ -DIPOPT_INCLUDE_DIRS=/usr/include/coin/ \ diff --git a/python/requirements.txt b/python/requirements.txt deleted file mode 100644 index f08cca14..00000000 --- a/python/requirements.txt +++ /dev/null @@ -1 +0,0 @@ -termcolor diff --git a/src/parpeamici/CMakeLists.txt b/src/parpeamici/CMakeLists.txt index 9f6e6a6a..0f8bd57d 100644 --- a/src/parpeamici/CMakeLists.txt +++ b/src/parpeamici/CMakeLists.txt @@ -37,11 +37,22 @@ target_include_directories(${PROJECT_NAME} ) target_link_libraries(${PROJECT_NAME} - PUBLIC parpeoptimization PUBLIC parpeloadbalancer PUBLIC parpecommon PUBLIC Upstream::amici PUBLIC ${Boost_SERIALIZATION_LIBRARY_RELEASE} + # For not fully understood reasons, `parpeoptimization` needs to come last. + # There was an issue with the Ubuntu 24.04 ipopt package, which is pulling + # in libdmumps_seq-5.6.so, which exports dummy MPI_* symbols that cause + # problems when building parpe with MPI. Run-time resolution would pick up + # the incorrect MPI symbols. We need to make sure that MPI::MPI_C linker + # flags come first, but CMake first lists all direct dependencies, and only + # then the transitive dependencies (in this case, in an unfortunate order). + # INTERFACE_LINK_LIBRARIES_DIRECT did not help. + # Note that in this case, parpe should *not* be compiled with the MPI + # compiler wrappers (mpicc, mpicxx), because this will prevent CMake from + # adding the MPI linker flags. + PUBLIC parpeoptimization ) if (${OpenMP_FOUND}) diff --git a/tests/parpe.supp b/tests/parpe.supp index 578bc96d..bab5a50b 100644 --- a/tests/parpe.supp +++ b/tests/parpe.supp @@ -84,7 +84,7 @@ libhwloc Memcheck:Leak match-leak-kinds: all - fun:calloc + fun:*alloc ... obj:/usr/lib/x86_64-linux-gnu/libhwloc.so.15.*.* ... @@ -447,7 +447,7 @@ fun:_ZN2H58PredTypeC1El fun:_ZN2H58PredType13makePredTypesEv fun:_ZN2H58PredType12getPredTypesEv - obj:/usr/lib/x86_64-linux-gnu/libhdf5_serial_cpp.so.103.3.0 + obj:/usr/lib/x86_64-linux-gnu/libhdf5_serial_cpp.so.* } @@ -518,3 +518,18 @@ fun:orte_init ... } + + +{ + fides_cpp + Memcheck:BadSize + fun:posix_memalign + fun:_ZN5blaze15alignedAllocateEmm + fun:_ZN5blaze16AlignedAllocatorIdE8allocateEm + fun:_ZN5blaze13DynamicMatrixIdLb0ENS_16AlignedAllocatorIdEENS_8GroupTagILm0EEEEC1EmmmmRKS2_NS5_13UninitializedE + fun:_ZN5blaze13DynamicMatrixIdLb0ENS_16AlignedAllocatorIdEENS_8GroupTagILm0EEEEC1EmmmRKS2_NS5_13UninitializedE + fun:_ZN5blaze13DynamicMatrixIdLb0ENS_16AlignedAllocatorIdEENS_8GroupTagILm0EEEEC1EmmRKS2_ + fun:_ZN5blaze13DynamicMatrixIdLb0ENS_16AlignedAllocatorIdEENS_8GroupTagILm0EEEEC1ERKS5_ + fun:_ZN5fides9Optimizer11do_minimizeEv + ... +}