Data and scripts for: Bayesian Phylogenetic Analysis on multi-core Compute Architectures: Implementation and evaluation of BEAGLE in RevBayes with MPI
Data files
Jul 13, 2024 version files 3.18 MB
-
datasets.zip
3.18 MB
-
README.md
2.32 KB
Abstract
Phylogenies are central to many research areas in biology and commonly estimated using likelihood-based methods. Unfortunately, any likelihood-based method, including Bayesian inference, can be restrictively slow for large datasets–with many taxa and/or many sites in the sequence alignment–or complex substitution models. The primary limiting factor when using large datasets and/or complex models in probabilistic phylogenetic analyses is the likelihood calculation, which dominates the total computation time. To address this bottleneck, we incorporated the high-performance phylogenetic library BEAGLE into RevBayes, which enables multi-threading on multi-core CPUs and GPUs, as well as hardware-specific vectorized instructions for faster likelihood calculations. Our new implementation of RevBayes+BEAGLE retains the flexibility and dynamic nature that users expect from vanilla RevBayes. Additionally, we implemented a native parallelization within RevBayes without an external library using the message passing interface (MPI); RevBayes+MPI. We evaluated our new implementation of RevBayes+BEAGLE using multi-threading on CPUs and a powerful NVidia Titan V GPU against our native implementation of RevBayes+MPI. We found good improvements in speedup when multiple cores were used with up to 20-fold speedup when using multiple CPUs and over 90-fold speedup when using multiple GPU cores. The improvement depended on the data type used, DNA or amino acids, and the size of the alignment, but less on the size of the tree. We additionally investigated the cost of rescaling partial likelihoods to avoid numerical underflow and showed that unnecessarily frequent rescaling can increase runtimes 2.5 to 3-fold. Finally, we presented and compared a new approach to store partial likelihoods on branches instead of nodes which can speed up computations but comes at twice the memory requirements.
Availability: The software described in the paper is available at https://github.com/revbayes/revbayes with documentation and tutorials found at https://revbayes.github.io.
Scripts and example datasets for evaluating the computational speed when running RevBayes with MPI or threading or GPU.
Description of the data and file structure
- speedup-plot-mcmc-iter.pdf: Plot showing the speed-up when using different number of MCMC simulations.
- revbayes_beagle_benchmark.zip: This zip folder contains the RevBayes scripts to perform the MCMC runs. Each script can be run with RevBayes and needs the simulated data.
- datasets.zip: This zip folder contains two separate folders DNA and AA. Each folder contains 4 fasta files with simulated datasets for running the example analyses. The files contain for 64 and 256 taxa and 1000 and 10000 sites, respectively. All files are in fasta format. In detail the files are:
- DNA/JC_t256_s10K.fasta: Alignment of DNA with 256 taxa and 10k sites simulated under the Jukes-Cantor substitution model.
- DNA/JC_t256_s1K.fasta: Alignment of DNA with 256 taxa and 1k sites simulated under the Jukes-Cantor substitution model.
- DNA/JC_t64_s10K.fasta: Alignment of DNA with 64 taxa and 10k sites simulated under the Jukes-Cantor substitution model.
- DNA/JC_t64_s1K.fasta: Alignment of DNA with 64 taxa and 1k sites simulated under the Jukes-Cantor substitution model.
- AA/JC_t256_s10K.fasta: Alignment of amino acid with 256 taxa and 10k sites simulated under the Jukes-Cantor substitution model.
- AA/JC_t256_s1K.fasta: Alignment of amino acid with 256 taxa and 1k sites simulated under the Jukes-Cantor substitution model.
- AA/JC_t64_s10K.fasta: Alignment of amino acid with 64 taxa and 10k sites simulated under the Jukes-Cantor substitution model.
- AA/JC_t64_s1K.fasta: Alignment of amino acid with 64 taxa and 1k sites simulated under the Jukes-Cantor substitution model.
To run an example benchmark, simply run RevBayes with the required setting, e.g., using BEAGLE or with MPI, and select a script with the according data type (DNA or AA), tree size (64 or 256) and alignment length (1000 or 10000).
Code/Software
The examples can be run using the software RevBayes (https://revbayes.github.io). The datasets were simulated with RevBayes.
The data were simulated using RevBayes.
The data can be viewed using any alignment viewer that supports Nexus files and the scripts can be run in RevBayes.
- Smith, Killian et al. (2024), Data and scripts for: Bayesian Phylogenetic Analysis on multi-core Compute Architectures: Implementation and evaluation of BEAGLE in RevBayes with MPI, , Article, https://doi.org/10.5281/zenodo.7701604
- Smith, Killian et al. (2024), Data and scripts for: Bayesian Phylogenetic Analysis on multi-core Compute Architectures: Implementation and evaluation of BEAGLE in RevBayes with MPI, , Article, https://doi.org/10.5281/zenodo.7701605
- Smith, Killian et al. (2024), Bayesian Phylogenetic Analysis on multi-core Compute Architectures: Implementation and evaluation of BEAGLE in RevBayes with MPI, Systematic Biology, Journal-article, https://doi.org/10.1093/sysbio/syae005
