Skip to content

Commit

Permalink
[Feat/aut951] - Distributed Mode (#437)
Browse files Browse the repository at this point in the history
  • Loading branch information
ahmedskhalil committed Jan 6, 2022
1 parent 937c62f commit c0507d4
Show file tree
Hide file tree
Showing 50 changed files with 8,163 additions and 250 deletions.
13 changes: 7 additions & 6 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ jobs:
apt-get install -y libglpk-dev seqan-dev libsdl2-dev libhdf5-dev
apt-get install -y graphviz doxygen python3-pip &&
apt-get install -y libpango1.0-dev gnuplot
apt-get install -y cppcheck &&
apt-get install -y cppcheck libssl-dev &&
apt-get install -y python3-sphinx python3-breathe python3-sphinx-rtd-theme sphinx-doc doxygen-latex doxygen-doc gsfonts graphviz-doc libgd-tools xapian-tools &&
pip3 install exhale &&
pip3 install -r tools/smartpeak/requirements.txt
Expand Down Expand Up @@ -71,7 +71,7 @@ jobs:
name: Running SmartPeak Class Tests
command: |
cd ~/smartpeak_release_build || exit 1
ctest -V
ctest -V -E "(example|example|absl|dfa|exhaustive|random|re2)"
ls -l ~/SmartPeak/src/tests/class_tests/smartpeak/data
cd ~/SmartPeak
export PYTHONPATH="${PWD}/tools"
Expand Down Expand Up @@ -130,7 +130,7 @@ jobs:
sed -i '' 's/std::auto_ptr/std::unique_ptr/g' include/seqan/basic/test_system.h
rm lib/libz.* && rm -rf lib/pkgconfig
cd ~/OpenMS && mkdir openms_debug_build && cd openms_debug_build &&
cmake -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_STANDARD=14 -DCMAKE_CXX_EXTENSIONS=OFF -DCMAKE_PREFIX_PATH="$(brew --prefix qt5)" -DOPENMS_CONTRIB_LIBS=~/OpenMS/contrib_build/ -DHAS_XSERVER=OFF -DWITH_GUI=OFF -DENABLE_TUTORIALS=OFF -DENABLE_DOCS=OFF -DGIT_TRACKING=OFF -DENABLE_UPDATE_CHECK=OFF -DCMAKE_BUILD_TYPE=Release -DPYOPENMS=OFF -DOPENMS_COVERAGE=OFF ..
cmake -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_STANDARD=14 -DCMAKE_CXX_EXTENSIONS=OFF -DCMAKE_PREFIX_PATH="$(brew --prefix qt5)" -DOPENMS_CONTRIB_LIBS=~/OpenMS/contrib_build/ -DHAS_XSERVER=OFF -DWITH_GUI=OFF -DENABLE_TUTORIALS=OFF -DENABLE_DOCS=OFF -DGIT_TRACKING=OFF -DENABLE_UPDATE_CHECK=OFF -DCMAKE_BUILD_TYPE=Release -DPYOPENMS=OFF -DOPENMS_COVERAGE=OFF -DZLIB_ROOT=$(brew --prefix zlib) ..
make -j4 OpenMS
- run:
name: Building SmartPeak (Including SuperBuild)
Expand All @@ -141,15 +141,15 @@ jobs:
cd superbuild
cmake -DUSE_SUPERBUILD=ON -DCMAKE_BUILD_TYPE=Release .. && make -j4
cd ../smartpeak_release_build
cmake -DEIGEN_USE_GPU=OFF -DUSE_SUPERBUILD=OFF -DBOOST_USE_STATIC=OFF -DCMAKE_PREFIX_PATH="~/OpenMS/openms_debug_build/;~/OpenMS/contrib_build;$(brew --prefix qt5);(brew --prefix eigen)" -DPLOG_INCLUDE_DIR=~/SmartPeak/superbuild/Dependencies/Source/plog/include -DIMGUI_DIR=~/SmartPeak/superbuild/Dependencies/Source/imgui -DIMPLOT_DIR=~/SmartPeak/superbuild/Dependencies/Source/implot -DSQLite3_INCLUDE_DIR=~/SmartPeak/superbuild/Dependencies/Source/sqlite -DSQLite3_LIBRARY=~/SmartPeak/superbuild/Dependencies/Source/sqlite -DCMAKE_BUILD_TYPE=RelWithDebInfo -DOpenMP_CXX_FLAGS="-Xpreprocessor -fopenmp -I/usr/local/opt/libomp/include" -DOpenMP_CXX_LIB_NAMES="omp" -DOpenMP_omp_LIBRARY=/usr/local/opt/libomp/lib/libomp.dylib ~/SmartPeak
cmake -DEIGEN_USE_GPU=OFF -DUSE_SUPERBUILD=OFF -DBOOST_USE_STATIC=OFF -DCMAKE_PREFIX_PATH="~/OpenMS/openms_debug_build/;~/OpenMS/contrib_build;$(brew --prefix qt5);(brew --prefix eigen);$(brew --prefix zlib);$(brew --prefix openssl)" -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl -DOPENSSL_LIBRARIES=/usr/local/opt/openssl/lib -DPLOG_INCLUDE_DIR=~/SmartPeak/superbuild/Dependencies/Source/plog/include -DIMGUI_DIR=~/SmartPeak/superbuild/Dependencies/Source/imgui -DIMPLOT_DIR=~/SmartPeak/superbuild/Dependencies/Source/implot -DSQLite3_INCLUDE_DIR=~/SmartPeak/superbuild/Dependencies/Source/sqlite -DSQLite3_LIBRARY=~/SmartPeak/superbuild/Dependencies/Source/sqlite -DCMAKE_BUILD_TYPE=RelWithDebInfo -DOpenMP_CXX_FLAGS="-Xpreprocessor -fopenmp -I/usr/local/opt/libomp/include" -DOpenMP_CXX_LIB_NAMES="omp" -DOpenMP_omp_LIBRARY=/usr/local/opt/libomp/lib/libomp.dylib -DgRPC_ZLIB_PROVIDER=package ~/SmartPeak
make -j4
- run:
name: Running SmartPeak Class Tests
no_output_timeout: 15m
command: |
set -e -o pipefail
cd ~/SmartPeak/smartpeak_release_build
ctest -VV -F --timeout 1200
ctest -VV -F -E "(example|absl|dfa|exhaustive|random|re2|charclass|compile|mimics|parse_possible|regexp|required_prefix|search|set|simplify|string_generator)" --timeout 1200
cd ~/SmartPeak
export PYTHONPATH="${PWD}/tools"
python3 -m unittest discover -s ./tools/smartpeak
Expand Down Expand Up @@ -293,7 +293,8 @@ jobs:
msbuild src/smartpeak/SmartPeak.sln /verbosity:normal /maxcpucount /p:Configuration=Release
msbuild src/examples/SmartPeak_class_examples_smartpeak.sln /maxcpucount /property:Configuration=Release
refreshenv
& 'C:\Program Files\cmake\bin\ctest.exe' -VV -F
@("set(CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION FALSE)") + (Get-Content ".\_deps\grpc-build\third_party\abseil-cpp\absl\base\cmake_install.cmake") | Set-Content ".\_deps\grpc-build\third_party\abseil-cpp\absl\base\cmake_install.cmake"
& 'C:\Program Files\cmake\bin\ctest.exe' -VV -F -E "(example|example|absl|dfa|exhaustive|random|re2|charclass|compile|mimics|parse|regexp|required_prefix|search|set|simplify|string_generator|possible)"
ThrowOnFailure "CTest failed!"
& 'C:\Program Files\cmake\bin\cpack.exe' -G NSIS64
ThrowOnFailure "CPack failed!"
Expand Down
22 changes: 18 additions & 4 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,10 +1,24 @@
# --------------------------------------------------------------------------
# SmartPeak
# SmartPeak -- Fast and Accurate CE-, GC- and LC-MS(/MS) Data Processing
# --------------------------------------------------------------------------
# TODO: license
# Copyright The SmartPeak Team -- Novo Nordisk Foundation
# Center for Biosustainability, Technical University of Denmark 2018-2022.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL ANY OF THE AUTHORS OR THE CONTRIBUTING
# INSTITUTIONS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
# --------------------------------------------------------------------------
# $Maintainer: Douglas McCloskey
# $Author: Douglas McCloskey
# $Maintainer: Douglas McCloskey, Ahmed Khalil $
# $Authors: Douglas McCloskey $
# --------------------------------------------------------------------------

cmake_minimum_required(VERSION 3.8.2 FATAL_ERROR)
Expand Down
23 changes: 22 additions & 1 deletion cmake/add_library_macros.cmake
Original file line number Diff line number Diff line change
@@ -1,4 +1,25 @@

# --------------------------------------------------------------------------
# SmartPeak -- Fast and Accurate CE-, GC- and LC-MS(/MS) Data Processing
# --------------------------------------------------------------------------
# Copyright The SmartPeak Team -- Novo Nordisk Foundation
# Center for Biosustainability, Technical University of Denmark 2018-2022.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL ANY OF THE AUTHORS OR THE CONTRIBUTING
# INSTITUTIONS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
# --------------------------------------------------------------------------
# $Maintainer: Douglas McCloskey, Ahmed Khalil $
# $Authors: Douglas McCloskey $
# --------------------------------------------------------------------------

# required modules
include(CMakeParseArguments)
Expand Down
62 changes: 62 additions & 0 deletions cmake/fetch_grpc.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
# --------------------------------------------------------------------------
# SmartPeak -- Fast and Accurate CE-, GC- and LC-MS(/MS) Data Processing
# --------------------------------------------------------------------------
# Copyright The SmartPeak Team -- Novo Nordisk Foundation
# Center for Biosustainability, Technical University of Denmark 2018-2022.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL ANY OF THE AUTHORS OR THE CONTRIBUTING
# INSTITUTIONS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
# --------------------------------------------------------------------------
# $Maintainer: Ahmed Khalil, Bertrand Boudaud $
# $Authors: Douglas McCloskey $
# --------------------------------------------------------------------------
# --------------------------------------------------------------------------
# gRPC
# --------------------------------------------------------------------------
option(FETCHCONTENT_QUIET OFF)
option(abseil-cpp_BUILD_TESTS OFF)
option(gRPC_BUILD_TESTS OFF)
option(ABSL_BUILD_TESTING OFF)
option(ABSL_RUN_TESTS OFF)
option(protobuf_BUILD_TESTS OFF)
option(gRPC_BUILD_CSHARP_EXT OFF)
option(gRPC_BUILD_GRPC_CSHARP_PLUGIN OFF)
option(gRPC_BUILD_GRPC_NODE_PLUGIN OFF)
option(gRPC_BUILD_GRPC_JAVA_PLUGIN OFF)
option(gRPC_BUILD_GRPC_OBJECTIVE_C_PLUGIN OFF)
option(gRPC_BUILD_GRPC_PHP_PLUGIN OFF)
option(gRPC_BUILD_GRPC_PYTHON_PLUGIN OFF)
option(gRPC_BUILD_GRPC_RUBY_PLUGIN OFF)
option(ABSL_USE_GOOGLETEST_HEAD ON)
option(ABSL_USE_EXTERNAL_GOOGLETEST ON)
# set(ABSL_LOCAL_GOOGLETEST_DIR ${googletest-distribution_SOURCE_DIR})
set(absl_gtest_download_url "https://github.com/google/googletest/archive/refs/tags/release-1.11.0.zip")
include(FetchContent)
FetchContent_Declare(
gRPC
GIT_REPOSITORY https://github.com/grpc/grpc.git
GIT_TAG v1.41.0
GIT_PROGRESS TRUE
)
FetchContent_MakeAvailable(gRPC)

set(grpc_required_libs
libprotobuf grpc++
grpc++_reflection
grpc++_unsecure grpc_unsecure
grpc++_error_details
grpc gpr
absl_flags
crypto
address_sorting
grpc_plugin_support grpcpp_channelz)
22 changes: 22 additions & 0 deletions cmake/package_general.cmake
Original file line number Diff line number Diff line change
@@ -1,4 +1,26 @@
# --------------------------------------------------------------------------
# SmartPeak -- Fast and Accurate CE-, GC- and LC-MS(/MS) Data Processing
# --------------------------------------------------------------------------
# Copyright The SmartPeak Team -- Novo Nordisk Foundation
# Center for Biosustainability, Technical University of Denmark 2018-2022.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL ANY OF THE AUTHORS OR THE CONTRIBUTING
# INSTITUTIONS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
# --------------------------------------------------------------------------
# $Maintainer: Douglas McCloskey, Ahmed Khalil $
# $Authors: Douglas McCloskey, Ahmed Khalil $
# --------------------------------------------------------------------------
# --------------------------------------------------------------------------
# Packaging for macOS, Linux and Windows
# --------------------------------------------------------------------------

Expand Down
24 changes: 23 additions & 1 deletion cmake/package_nsis.cmake
Original file line number Diff line number Diff line change
@@ -1,5 +1,27 @@
## Windows installer
# --------------------------------------------------------------------------
# SmartPeak -- Fast and Accurate CE-, GC- and LC-MS(/MS) Data Processing
# --------------------------------------------------------------------------
# Copyright The SmartPeak Team -- Novo Nordisk Foundation
# Center for Biosustainability, Technical University of Denmark 2018-2022.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL ANY OF THE AUTHORS OR THE CONTRIBUTING
# INSTITUTIONS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
# --------------------------------------------------------------------------
# $Maintainer: Douglas McCloskey, Ahmed Khalil $
# $Authors: Douglas McCloskey, Ahmed Khalil $
# --------------------------------------------------------------------------

## Windows installer
## With VS2019 the architecture HAS TO BE specified with the "–A" option or CMAKE_GENERATOR_PLATFORM var.
## Therefore the legacy way of adding a suffix to the Generator is not valid anymore.
## Read value of CMAKE_VS_PLATFORM_NAME instead
Expand Down
25 changes: 22 additions & 3 deletions docs/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,8 +1,27 @@
#
# --------------------------------------------------------------------------
# SmartPeak -- Fast and Accurate CE-, GC- and LC-MS(/MS) Data Processing
# --------------------------------------------------------------------------
# Copyright The SmartPeak Team -- Novo Nordisk Foundation
# Center for Biosustainability, Technical University of Denmark 2018-2022.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL ANY OF THE AUTHORS OR THE CONTRIBUTING
# INSTITUTIONS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
# --------------------------------------------------------------------------
# $Maintainer: Ahmed Khalil, Douglas McCloskey $
# $Authors: Ahmed Khalil $
# --------------------------------------------------------------------------
# doc generation for SmartPeak lib
# with doxygen (XML) and sphinx for (RtD)
# Author : Ahmed Khalil
#

# doxygen
find_package(Doxygen REQUIRED)
Expand Down
Loading

0 comments on commit c0507d4

Please sign in to comment.