mpiGARLI: parallel GARLI analyses

mpiGARLI creates separate evolving populations on multiple CPUs.  One "master" population communicates with all of the other "remote" populations. It does not necessarily speed up the algorithm very much, rather it allows you to use more variation across the populations which can result in higher scoring solutions.

Using mpiGARLI on HPC

mpiGARLI uses the same conventions and parameters as the serial version of GARLI including requiring a configuration file named garli.conf (containing additional parallel settings), though an alternatively named file can be designated within your submission script, as shown below. The serial settings may be set independently for the master and remote populations. Additional parallel settings specifically control the way in which the master interacts with the remote populations. Using a large number of processors does not gain you anything -- 32 CPUs is about max' and that is only appropriate with thousands of sequences. The last section of the documentation discusses the parallel implementation.

The program was compiled with GNU OpenMPI, so that environment needs to be sourced in you MOAB submission script. The command to launch mpiGARLI is "pargarli." Here's a samle MOAB submission script:

#!/bin/bash
#MOAB -l nodes=16
#MOAB -j oe
#MOAB -m abe
#MOAB -N GARLI-OPENMPI
source /usr/local/profile.d/openmpi-gnu.sh
mpirun /opt/Bio/garli/pargarli $HOME/test/mpi.garli.conf

Note that your parallel mpi.garli.conf configuration file should be fully specified, if including it in the script, and that your input alignment matrix should also a have complete path designation within that configuration file.