Skip to content

Commit

Permalink
Release 0.4.5
Browse files Browse the repository at this point in the history
Merge pull request #327 from ICB-DCM/develop
  • Loading branch information
dweindl authored Mar 13, 2021
2 parents 0750546 + 80a152a commit ee1de80
Show file tree
Hide file tree
Showing 1,001 changed files with 35,221 additions and 199,308 deletions.
8 changes: 2 additions & 6 deletions .github/workflows/benchmark_models.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ on: [push, pull_request, workflow_dispatch]
jobs:
container:
runs-on: ubuntu-latest
container: dweindl/parpeci:1511078
container: dweindl/parpeci:1902967
name: benchmark models
steps:
- uses: actions/checkout@master
Expand Down Expand Up @@ -38,15 +38,11 @@ jobs:
- name: Configure parpe
run: |
CC=mpicc CXX=mpiCC \
cmake \
cmake \
-S"${PARPE_BASE}" \
-B"${PARPE_BUILD}" \
-DIPOPT_INCLUDE_DIRS=/usr/include/coin/ \
-DIPOPT_LIBRARIES=/usr/lib/libipopt.so \
-DCERES_LIBRARIES="/usr/lib/libceres.so;/usr/lib/x86_64-linux-gnu/libglog.so;/usr/lib/x86_64-linux-gnu/libgflags.so" \
-DCERES_INCLUDE_DIRS="/usr/include/;/usr/include/eigen3" \
-DMPI_INCLUDE_DIRS=/usr/include/openmpi-x86_64/ \
-DGCOVR_REPORT=TRUE \
-DBUILD_TESTING=FALSE
Expand Down
23 changes: 10 additions & 13 deletions .github/workflows/parpe_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ on: [push, pull_request, workflow_dispatch]
jobs:
container:
runs-on: ubuntu-latest
container: dweindl/parpeci:1511078
container: dweindl/parpeci:1902967
name: parPE tests
env:
# mpiexec prefix for running tests
Expand All @@ -22,7 +22,7 @@ jobs:
- run: echo "AMICI_PATH=${PARPE_BASE}/deps/AMICI/" >> $GITHUB_ENV

# sonar cloud
- run: echo "SONAR_SCANNER_VERSION=4.2.0.1873" >> $GITHUB_ENV
- run: echo "SONAR_SCANNER_VERSION=4.6.0.2311" >> $GITHUB_ENV
- run: echo "SONAR_SCANNER_HOME=/root/.sonar/sonar-scanner-$SONAR_SCANNER_VERSION-linux" >> $GITHUB_ENV
- run: echo "SONAR_SCANNER_OPTS=-server" >> $GITHUB_ENV
- run: echo "${SONAR_SCANNER_HOME}/bin" >> $GITHUB_PATH
Expand Down Expand Up @@ -62,17 +62,14 @@ jobs:
- name: Configure parPE
run: |
CC=mpicc CXX=mpiCC \
cmake \
-S"${PARPE_BASE}" \
-B"${PARPE_BUILD}" \
-DIPOPT_INCLUDE_DIRS=/usr/include/coin/ \
-DIPOPT_LIBRARIES=/usr/lib/libipopt.so \
-DCERES_LIBRARIES="/usr/lib/libceres.so;/usr/lib/x86_64-linux-gnu/libglog.so;/usr/lib/x86_64-linux-gnu/libgflags.so" \
-DCERES_INCLUDE_DIRS="/usr/include/;/usr/include/eigen3" \
-DMPI_INCLUDE_DIRS=/usr/include/openmpi-x86_64/ \
-DGCOV_REPORT=TRUE \
-DBUILD_TESTING=TRUE
cmake \
-S"${PARPE_BASE}" \
-B"${PARPE_BUILD}" \
-DCMAKE_CXX_FLAGS="-Wall -Wextra -Werror -Wno-deprecated-copy" \
-DIPOPT_INCLUDE_DIRS=/usr/include/coin/ \
-DIPOPT_LIBRARIES=/usr/lib/libipopt.so \
-DGCOV_REPORT=TRUE \
-DBUILD_TESTING=TRUE
- name: Build parPE
# with sonar build wrapper
Expand Down
10 changes: 3 additions & 7 deletions .github/workflows/petab_testsuite.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ on: [push, pull_request, workflow_dispatch]
jobs:
container:
runs-on: ubuntu-latest
container: dweindl/parpeci:1511078
container: dweindl/parpeci:1902967
name: PEtab test suite
steps:
- uses: actions/checkout@master
Expand Down Expand Up @@ -39,15 +39,11 @@ jobs:
- name: Configure parpe
run: |
CC=mpicc CXX=mpiCC \
cmake \
cmake \
-S"${PARPE_BASE}" \
-B"${PARPE_BUILD}" \
-DIPOPT_INCLUDE_DIRS=/usr/include/coin/ \
-DIPOPT_LIBRARIES=/usr/lib/libipopt.so \
-DCERES_LIBRARIES="/usr/lib/libceres.so;/usr/lib/x86_64-linux-gnu/libglog.so;/usr/lib/x86_64-linux-gnu/libgflags.so" \
-DCERES_INCLUDE_DIRS="/usr/include/;/usr/include/eigen3" \
-DMPI_INCLUDE_DIRS=/usr/include/openmpi-x86_64/ \
-DGCOVR_REPORT=TRUE \
-DBUILD_TESTING=FALSE
Expand All @@ -67,7 +63,7 @@ jobs:
PETAB_TEST_URL: https://github.com/PEtab-dev/petab_test_suite.git
run: |
cd $PARPE_BASE/ \
&& git clone --depth 1 $PETAB_TEST_URL \
&& git clone --depth 1 --branch develop $PETAB_TEST_URL \
&& $PARPE_BASE/misc/run_in_venv.sh $PARPE_BASE/build/venv \
pip3 install -e petab_test_suite
Expand Down
12 changes: 6 additions & 6 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,9 @@ CMakeLists.txt.user
/data/*
/ThirdParty/*
/doc/Doxyfile
/doc/doxy/*
/doc/exhale_cpp_api/
/doc/_exhale_doxygen_output/
/doc/cpp_api/
/doc/_autosummary/
.project
.pydevproject
.idea/*
Expand All @@ -18,12 +19,11 @@ __pycache__/
.directory
*/swig/*_wrap.cpp
/amici/examples/steadystate/model_steadystate_scaled
/amici/examples/lucarelli/lucarelli_12/lucarelli_12/
/activate

# snakemake
.snakemake/

/snakemake/results
# amici
deps/AMICI/python/sdist/amici.egg-info/
deps/AMICI/python/sdist/amici/amici.py
Expand All @@ -39,7 +39,7 @@ python/test_*.png
*.log

/benchmark_collection/*_*[0-9][0-9][0-9][0-9]/
/benchmark_collection/parpe_*_*[0-9][0-9][0-9][0-9]/
/benchmark_collection/parpe_*_*[0-9][0-9][0-9][0-9]*/

# breathe-generatd files
doc/source/api/
Expand All @@ -48,7 +48,7 @@ doc/source/api/
# test files
tests/petab-test-suite/
test_*.png

examples/parpeamici/steadystate/*.h5
# containers
/container/charliecloud/parpe_base/parpe.tar.gz
*.sif
8 changes: 3 additions & 5 deletions .readthedocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,13 @@ sphinx:
#mkdocs:
# configuration: mkdocs.yml

# Optionally build your docs in additional formats such as PDF and ePub
#formats:
# - pdf

# Optionally set the version of Python and requirements required to build your docs
python:
version: 3.7
version: 3.8
install:
- requirements: doc/requirements_doc.txt

#build:
# image: latest
build:
image: latest
18 changes: 3 additions & 15 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -51,12 +51,6 @@ set(BUILD_PYTHON_MODULE FALSE CACHE BOOL "Build Python module?")
set(BLAS "CBLAS" CACHE STRING "BLAS library to use")
set_property(CACHE BLAS PROPERTY STRINGS "CBLAS" "MKL")
set(PARPE_ENABLE_MPI TRUE CACHE BOOL "Use MPI?")
set(IPOPT_DIR "" CACHE PATH "IpOpt root directory")
set(IPOPT_INCLUDE_DIRS "${IPOPT_DIR}/include/coin/"
CACHE PATH "IpOpt include directory")
set(IPOPT_LIBRARIES "${IPOPT_DIR}/lib/libipopt.a"
"${IPOPT_DIR}/lib/libcoinhsl.a" "gfortran"
CACHE STRING "IpOpt library")
set(PARPE_ENABLE_IPOPT TRUE CACHE BOOL "Enable ipopt optimizer?")
set(PARPE_ENABLE_CERES TRUE CACHE BOOL "Enable ceres optimizer?")
set(PARPE_ENABLE_DLIB FALSE CACHE BOOL "Enable dlib optimizers?")
Expand All @@ -71,14 +65,12 @@ find_package(OpenMP)
# Enable MPI?
if(${PARPE_ENABLE_MPI})
find_package(MPI REQUIRED)
if(IS_DIRECTORY ${MPI_INCLUDE_DIRS})
# may be undefined. will be provided by MPI compiler wrapped.
# this is only added for convenient IDE integration
include_directories(${MPI_INCLUDE_DIRS})
endif()
endif(${PARPE_ENABLE_MPI})
# </Build options>

find_package(PkgConfig)
pkg_search_module(IPOPT REQUIRED IMPORTED_TARGET GLOBAL ipopt>=3.11.0 )

if(${ENABLE_DLIB})
set(DLIB_DIR "${CMAKE_CURRENT_LIST_DIR}/ThirdParty/dlib-19.7"
CACHE FILEPATH "DLIB base directory")
Expand Down Expand Up @@ -233,7 +225,6 @@ add_library(${PROJECT_NAME} /dev/null)
target_link_libraries(${PROJECT_NAME}
PUBLIC parpecommon parpeloadbalancer parpeoptimization parpeamici)


# <Export cmake configuration>
install(TARGETS ${PROJECT_NAME} EXPORT ParPETargets
LIBRARY DESTINATION lib
Expand Down Expand Up @@ -267,9 +258,6 @@ install(
"${CMAKE_CURRENT_BINARY_DIR}/ParPEConfigVersion.cmake"
DESTINATION "${LIB_INSTALL_DIR}/cmake/")

configure_file("CMakeModules/ParPEConfig.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/ParPEConfig.cmake"
@ONLY)

# Register package
if(${PARPE_EXPORT_PACKAGE})
Expand Down
36 changes: 29 additions & 7 deletions CMakeModules/ParPEConfig.cmake.in
Original file line number Diff line number Diff line change
@@ -1,8 +1,30 @@
@PACKAGE_INIT@

include(CMakeFindDependencyMacro)

set(PARPE_ENABLE_MPI @PARPE_ENABLE_MPI@)
set(PARPE_ENABLE_IPOPT @PARPE_ENABLE_IPOPT@)
set(PARPE_ENABLE_CERES @PARPE_ENABLE_CERES@)

if(${PARPE_ENABLE_MPI})
find_dependency(MPI REQUIRED)
endif()

if(${PARPE_ENABLE_IPOPT})
find_dependency(PkgConfig REQUIRED)
pkg_search_module(IPOPT REQUIRED IMPORTED_TARGET GLOBAL ipopt>=3.11.0)
endif()

if(${PARPE_ENABLE_CERES})
find_dependency(Ceres COMPONENTS
HINTS "${CMAKE_SOURCE_DIR}/ThirdParty/ceres-solver-2.0.0/build/install")
find_dependency(Eigen3 REQUIRED)
endif()

find_dependency(Amici REQUIRED)
find_dependency(OpenMP)
find_dependency(HDF5 COMPONENTS C CXX HL REQUIRED)

include("${CMAKE_CURRENT_LIST_DIR}/ParPETargets.cmake")
set_property(TARGET Upstream::parpe PROPERTY INCLUDE_DIRECTORIES @ParPEConfigIncludes@ @ParPEConfigIncludesCommon@ @ParPEConfigIncludesLoadbalancer@ @ParPEConfigIncludesOptimization@ @ParPEConfigIncludesAmici@)
set_property(TARGET Upstream::parpecommon PROPERTY INCLUDE_DIRECTORIES @ParPEConfigIncludesCommon@)
set_property(TARGET Upstream::parpeloadbalancer PROPERTY INCLUDE_DIRECTORIES @ParPEConfigIncludesLoadbalancer@)
set_property(TARGET Upstream::parpeoptimization PROPERTY INCLUDE_DIRECTORIES @ParPEConfigIncludesOptimization@)
set_property(TARGET Upstream::parpeamici PROPERTY INCLUDE_DIRECTORIES @ParPEConfigIncludesAmici@)
get_property(ParPE_INCLUDE_DIRS TARGET Upstream::parpe PROPERTY INCLUDE_DIRECTORIES)
set(ParPE_LIBRARIES Upstream::parpe)

check_required_components(ParPE)
16 changes: 9 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ described in [doc/petab_model_import.md](doc/petab_model_import.md).

For full functionality, parPE requires the following libraries:

* CMAKE (>=3.6)
* CMAKE (>=3.10)
* MPI ([OpenMPI](https://www.open-mpi.org/),
[MPICH](https://www.mpich.org/), ...)
* PTHREADS
Expand All @@ -60,7 +60,7 @@ For full functionality, parPE requires the following libraries:
* [AMICI](https://github.com/ICB-DCM/AMICI) (included in this repository)
(uses SuiteSparse, Sundials)
* C++17 compiler
* Python >= 3.6, including header files
* Python >= 3.7, including header files

On Debian-based systems, dependencies can be installed via:
```shell
Expand All @@ -77,10 +77,12 @@ Scripts to fetch and build the remaining dependencies are provided in
ThirdParty/installDeps.sh
```

NOTE: When using `ThirdParty/installIpopt.sh` to build Ipopt, follow the
instructions in `ThirdParty/Ipopt-3.12.12/ThirdParty/HSL/INSTALL.HSL` for
obtaining the hsl library before continuing, otherwise IpOpt will not be
usable. Afterwards, (re)run `ThirdParty/installIpopt.sh`.
NOTE: When using `ThirdParty/installIpopt.sh` to build Ipopt, you may have to
download the HSL library separately as described at
https://coin-or.github.io/Ipopt/INSTALL.html#DOWNLOAD_HSL. Place the HSL
archive into `ThirdParty` before running `ThirdParty/installIpopt.sh`. If asked
type in your coinhsl version (e.g. `2019.05.21` if you
have `coinhsl-2019.05.21.tar.gz`).


## Building
Expand All @@ -95,7 +97,7 @@ Other sample build scripts are provided as `/build*.sh`.

## Recently tested compilers

* GCC 8.3.0
* GCC 10.2.0
* Intel icpc (ICC) 17.0.6

## Docker
Expand Down
Loading

0 comments on commit ee1de80

Please sign in to comment.