BEAGLE: a common application programming inferface and high-performance computing library for statistical phylogenetics
Ayres D, Darling A, Zwickl D, Beerli P, Holder M, Lewis P, Huelsenbeck JP, Ronquist F, Swofford D, Cummings MP, Rambaut A & Suchard MA(2012) Syst Biol 61, 170-173.
Phylogenetic inference is fundamental to our understanding of most aspects of the origin and evolution of life, and in recent years there has been a concentration of interest in statistical approaches such as Bayesian inference and maximum likelihood estimation. Yet, for large datasets and realistic or interesting models of evolution, these approaches remain computationally demanding. High-throughput sequencing can yield data for thousands of taxa, but scaling to such problems using serial computing often necessitates the use of non-statistical or approximate approaches. The recent emergence of graphics processing units (GPUs) provides an opportunity to leverage their excellent floating-point computational performance to accelerate statistical phylogenetic inference. A specialized library for phylogenetic calculation would allow existing software packages to make more effective use of available computer hardware, including GPUs. Adoption of a common library would also make it easier for other emerging computing architectures, such as field programmable gate arrays, to be used in the future.
We present BEAGLE, an application programming interface (API) and library for high performance statistical phylogenetic inference. The API provides a uniform interface for performing phylogenetic likelihood calculations on a variety of compute hardware platforms. The library includes a set of efficient implementations and can currently exploit hardware including GPUs using NVIDIA CUDA, CPUs with SSE (Streaming SIMD Extensions, and related processor supplementary instruction sets), and multi-core CPUs via OpenMP. To demonstrate the advantages of a common API, we have incorporated the library into several popular phylogenetic software packages.
The BEAGLE library is free, open-source software licensed under the Lesser GPL and available from http://beagle-lib.googlecode.com. An example client program is available as public domain software.