Bayesian phylogentic programs like MrBayes and BEAST work better when the BEAGLE library is installed. BEAGLE provides these programs with an MCMC sampler using CPU-based or GPU-based computation. Therefore, before compiling or using MrBayes and BEAST, BEAGLE and other prerequisites must be set-up and installed first. Unfortunately, setting-up all these software and libraries can become pretty frustrating very quickly.
Here I show how to properly set-up these programs to keep your frustration to a minimum. Broadly speaking, these instructions are applicable for Windows, Mac, and Linux. However, because I am specifically recounting my own experiencing setting-up my Linux machine, the more detailed parts of this guide focuses on installing on Linux.
Install CUDA drivers first!
- Go to https://developer.nvidia.com/cuda-downloads and fill out the form to download the appropriate CUDA drivers for your OS.
- Follow the installation instructions on the download page. In my case, I downloaded CUDA drivers for my Ubuntu 16.04 system. The download page provided me with 4 installer types - runfile (local), deb (local), deb (network), cluster (local). I chose "deb (local)" and downloaded the file (about 2 GB) to my computer.
- I installed the CUDA drivers installer following the onscreen instructions on the download page. Below are the instruction I got for installing CUDA in Ubuntu 16.04:
> sudo dpkg -i cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64.deb > sudo apt-get update > sudo apt-get install cuda
Now you have CUDA drivers installed in your system. Next we need to install the BEAGLE library.
Install BEAGLE library
- Go to https://github.com/beagle-dev/beagle-lib and check the README.md on the page for the right installer for your system. Since I am using Ubuntu 16.04, I have to download the source code and compile the library by myself. The following steps are for compiling from source. If you are using Windows or Mac, please download the provided binaries to save yourself the trouble of compiling.
- Download the source code by cloning the repository
> git clone --depth=1 https://github.com/beagle-dev/beagle-lib.git
- Open the folder you just downloaded by cloning. Create a configuration file by running
autogen.shand configure the installation path. Set the installation path to
/usr/localif you have root access or
$HOMEif not. See the following set of commands below for more detail.
> cd beagle-lib > ./autogen.sh > ./configure --prefix=/usr/local > sudo make install
PKG_CONFIG_PATHenvironment variables. In Ubuntu, open
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATHto your path. If you do not have root access and installed it somewhere else, please add your installation path to
> echo "export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH" >> ~/.bashrc > echo "export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH" >> ~/.bashrc
- Update your system configuration by running
sourceon your updated bash file.
> source ~/.bashrc
- Still in the source code folder, run
make checkto check your installation and if it is communicating properly with your nVidia graphic cards. Everything should pass.
Now you have successfully installed BEAGLE with CUDA support. You can now install software that depend on BEAGLE like MrBayes and BEAST.
- Download MrBayes from http://mrbayes.sourceforge.net/download.php, selecting the right version for your system. If you are running Windows or Mac, download the compile executable. If like me, you are running Linux, you need to download the source code.
- After downloading the source code, extract and go into the folder. Find the
srcdirectory and go into that as well. Open the file "CompileInstructions.txt". This document shows the different options available when compiling MrBayes.
> cd mrbayes-3.2.6 > cd src > nano CompileInstructions.txt
- If you have settled on the options to use or are fine with the default, configure MrBayes using
.configureand compile using
make. If you have root access, install in
/usr/local/binusing make install.
> ./configure > make > sudo make install
Congratulations! You should now have a working installation of MrBayes with access to the BEAGLE GPU library.