DOI: 10.5061/dryad.w9ghx3ftg
title: Data and scripts for: Bayesian Phylogenetic Analysis on multi-core Compute Architectures: Implementation and evaluation of BEAGLE in RevBayes with MPI

description: 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.
description: The data were simulated using RevBayes.
description: The data can be viewed using any alignment viewer that supports
 Nexus files and the scripts can be run in RevBayes.
description: # Bayesian Phylogenetic Analysis on multi-core Compute Architectures:
 Implementation and evaluation of BEAGLE in RevBayes with MPI 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](https://revbayes.github.io)). The datasets
 were simulated with RevBayes.