Skip to content

Compiling ExaBayes

ExaBayes is a software package for Bayesian tree inference. It is particularly suitable for large-scale analyses on computer clusters.[1]

Installed Versions

ExaBayes 1.5 is installed on Proteus. There are two "flavors" available: one which can run on any machine, AMD or Intel, and one which can run only on Intels due to hardware-specific optimizations:

exabayes/gcc/1.5

exabayes/intel/2015/1.5

Exabayes is an MPI program, using OpenMPI. Please see that article for details on how to run an OpenMPI program.

ExaBayes documentation is online.

Building ExaBayes

Download Source

Download the latest version from https://sco.h-its.org/exelixis/web/software/exabayes/ that is provided as either a .zip or a .tar.gz archive. As of 2018-04-09, the latest stable version is 1.5

Note that our experience building from the development branch has not been encouraging. We recommend the stable version.

Load Modules for Building

Load the following modulefiles:

module load autoconf module load automake

For compiling with GCC, which will run on either AMD or Intel:

module load proteus-openmpi/gcc/64/1.8.1-mlnx-ofed

For compiling with Intel Composer XE, which will run only on Intel -- this can only be compiled on proteusi01:

module load intel/composerxe/2015.1.133 module load proteus-openmpi/intel/2015/1.8.1-mlnx-ofed

For Intel-only compilation (to be done on proteusi01), also set the following environment variable:

export CXXFLAGS="-O3 -xHost"

Generate the configure Script

The "autoreconf" command may generate errors about missing files. The "automake" command below takes care of that.

aclocal automake --add-missing autoreconf

The "autoreconf" command may have to be repeated several times. Do so until no more errors or warning messages are printed.

Configure

Then, configure:

./configure --prefix=/mnt/HA/groups/rsrchGrp/opt --enable-mpi --disable-mic

Make and Install

make -j 8 make install

This puts all executables in:

/mnt/HA/groups/rsrchGrp/opt/bin

Running

exabayes is an MPI program: it can run in parallel across multiple physical nodes. See the OpenMPI section for details on running.

In short, to run the Intel-optimized flavor:

#$ -pe shm 16 #$ -l vendor=intel ... module load exabayes/intel/2015/1.5 ${MPI_RUN} exabayes ...

Because Proteus's version of OpenMPI is integrated with Grid Engine, the number of processes need not be specified: MPI_RUN will automatically infer it from the job environment.

References

[1] ExaBayes website (The Exelixis Lab)