Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
108 commits
Select commit Hold shift + click to select a range
c1940eb
added supposedly missing header in some macos builds
pierrebarbera Mar 6, 2020
53df982
added ifdef around include
pierrebarbera Mar 6, 2020
eccea30
Merge pull request #87 from Pbdas/dev
amkozlov Mar 6, 2020
e984a1d
Merge branch 'dev' into coarse
amkozlov Mar 6, 2020
50b1ce2
fix multiple reported bugs caused by out-of-range branch lengths afte…
amkozlov Mar 24, 2020
c6c6a69
merge dev
amkozlov Mar 30, 2020
a8f18a5
fix bootstrap replicate generation with pattern compression turned off
amkozlov Apr 6, 2020
0a95672
coarse: fix --bootstrap failure with pthreads-only runs
amkozlov Apr 6, 2020
a8b4eae
Merge branch 'dev' into coarse
amkozlov Apr 6, 2020
8ae3a32
fix a mysterious memory leak(?) with site repeats on some datasets
amkozlov Apr 7, 2020
cba7a7c
Merge branch 'dev' into coarse
amkozlov Apr 7, 2020
4770f5d
ASR: in non-ambiguity mode, reconstruct gap(-) if state likelihood di…
amkozlov May 6, 2020
987e4ee
ASR: fix intermittent padding bug (DNA, AA and non-vectorized version…
amkozlov May 12, 2020
2bab745
update terraphast
amkozlov May 12, 2020
ba89e96
Merge branch 'dev' into coarse
amkozlov May 14, 2020
1832317
print system info (CPU, RAM, #cores) info in logfile
amkozlov May 14, 2020
48ec00f
print sysinfo: small fix
amkozlov May 15, 2020
addc2a8
ensure that min/max brlens are not exceeded in user starting tree
amkozlov May 15, 2020
25c6c47
autodetect CPU core oversubscription
amkozlov May 16, 2020
c2e5e7a
add basic energy monitoring (WIP)
amkozlov May 18, 2020
ea20260
fix mac warnings
amkozlov May 19, 2020
ca00fcf
write best-tree-so-far, ml trees, bs trees into TMP files while searc…
amkozlov May 19, 2020
473fb1d
coarse: fix bug in checkpoint restart (interrupted tree search was re…
amkozlov May 20, 2020
3aaa73d
coarse: fix multiple bugs in checkpointing and in writing interim res…
amkozlov May 25, 2020
10d48a4
several improvements to energy monitoring (constant polling to handle…
amkozlov May 27, 2020
e756e99
energy: fix updates in single-threaded case, add checkpointing support
amkozlov May 27, 2020
4ea5d8c
energy: add MPI support
amkozlov May 28, 2020
506ef07
yet another attempt to deal with RAPL madness (use psys zone if avail…
amkozlov May 29, 2020
12f68c5
- increase precision in FLU rate matrix (#93)
amkozlov Jun 8, 2020
c28c1e1
parallelization autoconfig, pending fine-tuning and extensive testing…
amkozlov Jun 10, 2020
1a4abb6
parallelization autoconfig: small fixes for MPI case
amkozlov Jun 13, 2020
4d9a8f2
check that --msa file is not empty and not a directory
amkozlov Jun 17, 2020
e219021
check if user starting tree is strictly bifurcating (#96)
amkozlov Jun 24, 2020
cbb61a5
check if partition range has all sites in single-part case
amkozlov Jun 24, 2020
6234706
check if +B is specified in single-part case
amkozlov Jun 24, 2020
b2b3618
new command `--sitelh`: print per-site log-likelihoods (#26)
amkozlov Jun 26, 2020
2badccc
fix padding bug in ASR
amkozlov Jul 28, 2020
4722b2b
new option `--site-weights`: file with custom alignment site weights,…
amkozlov Aug 1, 2020
6a606f2
collapse near-zero (=blmin) branch lengths into multifurcations in be…
amkozlov Aug 5, 2020
4d52686
use coarse-grained parallelization by default (--workers auto)
amkozlov Aug 5, 2020
b07720b
add missing fields to Options serialization
amkozlov Aug 6, 2020
8ff61c4
bump version number
amkozlov Aug 6, 2020
8db6413
--support: check that reference tree is bifurcating, and replicate tr…
amkozlov Aug 7, 2020
308ff5c
fix a special case in parallelization autotuning
amkozlov Aug 7, 2020
afc90f1
update download links
amkozlov Aug 8, 2020
bcc4ee6
update version number
amkozlov Aug 8, 2020
109025a
fix load balancing failure in rare edge cases (<=1 sites/core)
amkozlov Sep 15, 2020
924d75e
add missing include
amkozlov Sep 15, 2020
2a04aab
fix regression: `--rf tree1,tree2` reported incorrect, unrealisticall…
amkozlov Sep 19, 2020
abdd9ca
update version
amkozlov Sep 20, 2020
3a5518f
update version & download links
amkozlov Sep 21, 2020
d138126
merge master
amkozlov Sep 21, 2020
df3fe60
check for square brackets in taxon names (not allowed by Newick)
amkozlov Oct 26, 2020
7d9e817
fix 'LIBPLL-111: memory exhausted' error on very large ladder-like trees
amkozlov Oct 28, 2020
adb94f5
Fix parallel compilation of tests (#108)
amkozlov Dec 28, 2020
70b2e5b
do not print incorrect energy measurements after latest kernel patch
amkozlov Jan 21, 2021
9fe1a20
fix release date
amkozlov Jan 21, 2021
d2874ad
coarse-grained: fix bootstrap failure/hanging in some special cases (…
amkozlov Jan 27, 2021
7f46f2a
consistently use autoref in foreach loops to prevent unnecessary copi…
amkozlov Feb 5, 2021
89925cb
check for unifurcations in constraint tree (#114)
amkozlov Feb 10, 2021
4116116
improve error message when invalid number of substitution rates is sp…
amkozlov Feb 22, 2021
a3f33d5
update download links
amkozlov Feb 22, 2021
f65aa23
--consense: fix empty default prefix
amkozlov Feb 27, 2021
c32edf9
fix slow siteLH printing
amkozlov Apr 11, 2021
c27f41d
fix issues when compiled without -D_RAXML_PTHREADS
amkozlov Apr 19, 2021
6db1154
coarse: check that number of threads is multiple of number of workers…
amkozlov Apr 30, 2021
45ba28b
fix memory corruption in FreeRate optimization
amkozlov Jun 1, 2021
479ff40
fix numerical issues due to zero rates in mtMAM matrix
amkozlov Jun 4, 2021
55aeb1c
fix invariant site detection to account for ambiguous states (#121)
amkozlov Jul 21, 2021
10522df
update download links
amkozlov Jul 21, 2021
98ac436
update README (Apple M1 and Windows instructions)
amkozlov Jul 27, 2021
991a6dd
fix README layout
amkozlov Jul 27, 2021
04e3647
Merge branch 'master' into dev
amkozlov Sep 8, 2021
b8e0380
constraint debugging
amkozlov Sep 8, 2021
383121d
add `--bs-write-msa` flag to write out bootstrap MSAs from main infer…
amkozlov Sep 8, 2021
7deecd5
Merge branch 'master' into dev
amkozlov Sep 16, 2021
9e674d5
- bugfix: tree search *with incomprehensive/partial constraint tree* …
amkozlov Sep 21, 2021
4066855
`--check`/`--parse` will check compatibility with constraint if speci…
amkozlov Sep 21, 2021
2c9bdd2
- allow parsimony starting trees in combination with topological cons…
amkozlov Nov 19, 2021
2b09bf7
in tree search with topological constraint, use 10 parsimony + 10 ran…
amkozlov Nov 22, 2021
1784b75
constraint: reload starting trees file when restarting from a checkpoint
amkozlov Nov 28, 2021
c4debf2
constraint: limit max number of parsimony SPR rounds for large trees
amkozlov Nov 29, 2021
00f57fa
update version
amkozlov Nov 29, 2021
9b81508
update version again
amkozlov Nov 29, 2021
8cc197f
update download links
amkozlov Nov 29, 2021
4c8b796
fix regression failure with CATG input (#131)
amkozlov Dec 27, 2021
570659a
do not auto-enable rate scalers with >2000 taxa if `--force` / `--for…
amkozlov Jan 20, 2022
02ebd6a
add new amino-acid replacement matrices: Q.pfam, Q.bird, Q.insect, Q.…
amkozlov Jan 24, 2022
9aac1e6
fix minGW compilation errors due to different long int size (#136)
amkozlov Jan 31, 2022
31eddc9
--parse: do stuff in master MPI rank only
amkozlov Jan 31, 2022
fc23ab9
bugfix: partially incorrect TBE support values in `--all` mode with t…
amkozlov May 10, 2022
6a8f3d9
add arm64 support incl. vectorization via sse2neon library (#142)
amkozlov Jun 22, 2022
849e85a
--consense: fix error if result is a star tree (#143)
amkozlov Aug 4, 2022
816f9d1
add Jenkins integration (thanks to @BerndDoser)
amkozlov Aug 10, 2022
16b5291
Add KaMPIng library
lukashuebner Dec 6, 2022
57c598d
Add compile_commands.json to .gitignore
lukashuebner Dec 6, 2022
48a0cbd
Remove .vscode/settings.json from repo
lukashuebner Feb 29, 2024
137b2f4
Use KaMPIng in ParallelContext
lukashuebner Feb 29, 2024
cf4424a
Add .clang-format
lukashuebner Feb 29, 2024
e5a2893
Add .clangd
lukashuebner Feb 29, 2024
4ddb93c
Add .cache/, .vscode/, and run/ to .gitignore
lukashuebner Feb 29, 2024
7fed164
Update libs/kamping
lukashuebner Feb 29, 2024
ccd3b8f
Shorten kamping:: to kmp:: in ParallelContext.cpp
lukashuebner Feb 29, 2024
454b7d2
Use KaMPIng properly in mpi_broadcast(T&)
lukashuebner Feb 29, 2024
ac50d89
Add ParallelContext::mpi_reduce_single()
lukashuebner Feb 29, 2024
f7c3f71
Use KaMPIng::Environment
lukashuebner Feb 29, 2024
ccd216a
Remove obsolete TODO
lukashuebner Feb 29, 2024
8bec7e4
Add and use mpi_broadcast_single()
lukashuebner Feb 29, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
BasedOnStyle: Google
3 changes: 3 additions & 0 deletions .clangd
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
CompileFlags:
Add: [-std=c++17]
Remove: [-Wgnu-zero-variadic-macro-arguments, -Wterminate]
39 changes: 39 additions & 0 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# See here for image contents: https://github.com/microsoft/vscode-dev-containers/tree/v0.187.0/containers/cpp/.devcontainer/base.Dockerfile

# [Choice] Debian / Ubuntu version: debian-10, debian-9, ubuntu-20.04, ubuntu-18.04
ARG VARIANT="buster"
FROM mcr.microsoft.com/vscode/devcontainers/cpp:0-${VARIANT}

RUN apt-get update \
&& export DEBIAN_FRONTEND=noninteractive \
&& apt-get -y install --no-install-recommends \
bison \
cmake \
flex \
libgmp3-dev \
libgtest-dev \
libopenmpi-dev \
ninja-build \
openmpi-bin \
openmpi-common \
python3-dev \
python3-pip \
python3-pip \
python3-setuptools \
vim \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*

RUN pip install \
beautifulsoup4 \
cmake \
lxml

RUN git clone https://github.com/jeetsukumaran/DendroPy.git \
&& cd DendroPy \
&& python3 setup.py install \
&& cd .. \
&& rm -rf DendroPy

RUN useradd --uid 1026 -m user
USER user
30 changes: 30 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at:
// https://github.com/microsoft/vscode-dev-containers/tree/v0.187.0/containers/cpp
{
"name": "C++",
"build": {
"dockerfile": "Dockerfile",
// Update 'VARIANT' to pick an Debian / Ubuntu OS version: debian-10, debian-9, ubuntu-20.04, ubuntu-18.04
"args": { "VARIANT": "ubuntu-20.04" }
},
"runArgs": [ "--cap-add=SYS_PTRACE", "--security-opt", "seccomp=unconfined"],

// Set *default* container specific settings.json values on container create.
"settings": {},

// Add the IDs of extensions you want installed when the container is created.
"extensions": [
"ms-vscode.cpptools",
"twxs.cmake",
"ms-vscode.cmake-tools"
],

// Use 'forwardPorts' to make a list of ports inside the container available locally.
// "forwardPorts": [],

// Use 'postCreateCommand' to run commands after the container is created.
// "postCreateCommand": []

// Comment out connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
"remoteUser": "user"
}
8 changes: 8 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -39,3 +39,11 @@ release/
.cproject
.project
.settings/

# CMake output files
compile_commands.json

# Other files
run/
.cache/
.vscode/
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,6 @@
[submodule "libs/terraphast"]
path = libs/terraphast
url = https://github.com/amkozlov/terraphast-one
[submodule "libs/kamping"]
path = libs/kamping
url = [email protected]:kamping-site/kamping.git
14 changes: 7 additions & 7 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -35,13 +35,13 @@ else()
set(ENABLE_GMP OFF)
endif()

#set(CMAKE_CXX_STANDARD 14)
#set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_EXTENSIONS OFF)

# set these flags globally for all subprojects (libpll etc.)
set (CMAKE_CXX_FLAGS_DEBUG "-O3 -g" CACHE INTERNAL "")
set (CMAKE_CXX_FLAGS_DEBUG "-Og -g" CACHE INTERNAL "")
set (CMAKE_CXX_FLAGS_RELEASE "-O3" CACHE INTERNAL "")
set (CMAKE_C_FLAGS_DEBUG "-O3 -g" CACHE INTERNAL "")
set (CMAKE_C_FLAGS_DEBUG "-Og -g" CACHE INTERNAL "")
set (CMAKE_C_FLAGS_RELEASE "-O3" CACHE INTERNAL "")

project (raxml-ng C CXX)
Expand Down Expand Up @@ -70,8 +70,8 @@ if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS RAXML_COMPILER_TARGET_VERSION)
endif()


set (raxml-ng_VERSION_MAJOR 0)
set (raxml-ng_VERSION_MINOR 8)
set (raxml-ng_VERSION_MAJOR 1)
set (raxml-ng_VERSION_MINOR 1)

#set (CMAKE_BUILD_TYPE DEBUG)
#set (CMAKE_BUILD_TYPE RELEASE)
Expand All @@ -84,7 +84,7 @@ endif()
message (STATUS "Building ${CMAKE_BUILD_TYPE}")

set (WARN_FLAGS "-Wall -Wextra")
set (CMAKE_CXX_FLAGS "-std=c++11 ${WARN_FLAGS}")
set (CMAKE_CXX_FLAGS "${WARN_FLAGS}")

if (ENABLE_GMP)
#find_package(GMP REQUIRED)
Expand Down
184 changes: 184 additions & 0 deletions Jenkinsfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,184 @@
#!groovy

pipeline {

agent {
label 'cme-eastwatch'
}

options {
timeout(time: 1, unit: 'HOURS')
}

parameters {
string(name: 'BUILD_DIR_CLANG', defaultValue: 'build-clang-12')
string(name: 'BUILD_DIR_GCC', defaultValue: 'build-gcc-11')
string(name: 'BUILD_DIR_GCC_OPENMPI', defaultValue: 'build-gcc-11-openmpi')
}

stages {
stage('Submodules') {
agent {
dockerfile {
reuseNode true
filename 'dockerfile-clang-12'
dir 'ci'
}
}
steps {
sh '''
git submodule update --init --recursive
git submodule add https://github.com/amkozlov/ngtest.git
'''
}
}
stage('Build') {
parallel {
stage('clang-12') {
agent {
dockerfile {
reuseNode true
filename 'dockerfile-clang-12'
dir 'ci'
}
}
steps {
sh """
rm -fr ${params.BUILD_DIR_CLANG} && mkdir -p ${params.BUILD_DIR_CLANG} && cd ${params.BUILD_DIR_CLANG}
cmake -DCMAKE_BUILD_TYPE=Release .. 2>&1 |tee cmake.out
make 2>&1 |tee make.out
"""
}
post {
always {
recordIssues enabledForFailure: true, aggregatingResults: false,
tool: clang(id: 'clang-12', pattern: "${params.BUILD_DIR_CLANG}/make.out")
}
}
}
stage('gcc-11') {
agent {
dockerfile {
reuseNode true
filename 'dockerfile-gcc-11'
dir 'ci'
}
}
steps {
sh """
rm -fr ${params.BUILD_DIR_GCC} && mkdir -p ${params.BUILD_DIR_GCC} && cd ${params.BUILD_DIR_GCC}
cmake -DCMAKE_BUILD_TYPE=Release .. 2>&1 |tee cmake.out
make 2>&1 |tee make.out
"""
}
post {
always {
recordIssues enabledForFailure: true, aggregatingResults: false,
tool: clang(id: 'gcc-11', pattern: "${params.BUILD_DIR_GCC}/make.out")
}
}
}
stage('gcc-11-openmpi') {
agent {
dockerfile {
reuseNode true
filename 'dockerfile-gcc-11'
dir 'ci'
}
}
steps {
sh """
rm -fr ${params.BUILD_DIR_GCC_OPENMPI} && mkdir -p ${params.BUILD_DIR_GCC_OPENMPI} && cd ${params.BUILD_DIR_GCC_OPENMPI}
cmake -DCMAKE_BUILD_TYPE=Release -DUSE_MPI=ON .. 2>&1 |tee cmake.out
make 2>&1 |tee make.out
"""
}
post {
always {
recordIssues enabledForFailure: true, aggregatingResults: false,
tool: clang(id: "${STAGE_NAME}", pattern: "${params.BUILD_DIR_GCC_OPENMPI}/make.out")
}
}
}
}
}
stage('Unit tests') {
parallel {
stage('clang-12') {
agent {
dockerfile {
reuseNode true
filename 'dockerfile-clang-12'
dir 'ci'
}
}
steps {
sh "cd ${params.BUILD_DIR_CLANG} && make test"
}
post {
always {
step([
$class: 'XUnitPublisher',
thresholds: [[$class: 'FailedThreshold', unstableThreshold: '1']],
tools: [[$class: 'GoogleTestType', pattern: "${params.BUILD_DIR_CLANG}/test/*.xml"]]
])
}
}
}
stage('gcc-11') {
agent {
dockerfile {
reuseNode true
filename 'dockerfile-gcc-11'
dir 'ci'
}
}
steps {
sh "cd ${params.BUILD_DIR_GCC} && make test"
}
post {
always {
step([
$class: 'XUnitPublisher',
thresholds: [[$class: 'FailedThreshold', unstableThreshold: '1']],
tools: [[$class: 'GoogleTestType', pattern: "${params.BUILD_DIR_GCC}/test/*.xml"]]
])
}
}
}
}
}
stage('Regression tests') {
agent {
dockerfile {
reuseNode true
filename 'dockerfile-clang-12'
dir 'ci'
}
}
steps {
sh """
ngtest/runtest.py ${params.BUILD_DIR_CLANG}/bin/raxml-ng
cd ci && ./generate_html.py ../ngtest/out/1.1.0-master/T1W1
"""
}
post {
always {
publishHTML(target : [
allowMissing: false,
alwaysLinkToLastBuild: true,
keepAll: true,
reportDir: 'ci',
reportFiles: 'benchmark.html',
reportName: 'Benchmark',
reportTitles: 'Benchmark'])
}
}
}
}
post {
failure {
mail to: '[email protected]', subject: "FAILURE: ${currentBuild.fullDisplayName}", body: "Failed."
}
}
}
Loading