MrBayes is a program for Bayesian inference and model choice across a wide range of phylogenetic and evolutionary models. MrBayes uses Markov chain Monte Carlo (MCMC) methods to estimate the posterior distribution of model parameters.
The GPU code can be a lot faster than the CPU code, particularly for amino acid and codon models. However, the length of the sequences also influences the speed-up. In general, the longer the sequences are, the better GPU performance you can expect. If the sequences are short, the overhead involved in shuffling data to and from the GPU may well overshadow any performance gain you get in the computation step. Try the various calculator options out in short runs before you decide on the best option for longer runs.
If you run multiple simultaneous runs or use Metropolis coupling, which is standard practice with MrBayes, then you can speed up your analyses considerably by using the MPI version of MrBayes.
Since version 3.2, MrBayes prints all parameter values of all chains (cold and heated) to a checkpoint file every Checkfreq generations, by default every 2,000 generations. The checkpoint file has the suffix .ckp. If you run an analysis and it is stopped prematurely, you can restart it from the last checkpoint by using mcmc append=yes. MrBayes will start the new analysis from the checkpoint; it will even read in all the old trees and include them in the convergence diagnostics. At the end of the new run, you will have parameter and tree files that are indistinguishable from those you would have obtained from an uninterrupted analysis.
The following sample sessions run the simple tutorial described in the manual using single-threaded, multi-threaded, and GPU modes. They differ in how the allocation is created and, in the case of MPI operation, how the application is first started.
single CPU
[user@biowulf user]$ sinteractive
salloc.exe: Pending job allocation 24780751
salloc.exe: job 24780751 queued and waiting for resources
salloc.exe: job 24780751 has been allocated resources
salloc.exe: Granted job allocation 24780751
salloc.exe: Waiting for resource configuration
salloc.exe: Nodes cn3160 are ready for job
srun: error: x11: no local DISPLAY defined, skipping
[user@cn3160 user]$ module load mrbayes
[+] Loading gcc 6.4.0 ...
[+] Loading openmpi 3.1.2 for GCC 6.4.0
[+] Loading mrbayes, version 3.2.7...
[user@cn3160 user]$ mkdir mrbayes && cd mrbayes
[user@cn3160 mrbayes]$ cp $MRBAYES_HOME/share/examples/mrbayes/primates.nex .
[user@cn3160 mrbayes]$ mb
MrBayes 3.2.7 x86_64
(Bayesian Analysis of Phylogeny)
(Parallel version)
(1 processors available)
Distributed under the GNU General Public License
Type "help" or "help <command>" for information
on the commands that are available.
Type "about" for authorship and general
information about the program.
MrBayes > execute primates.nex
Executing file "primates.nex"
DOS line termination
Longest line length = 920
Parsing file
Expecting NEXUS formatted file
Reading data block
Allocated taxon set
Allocated matrix
Defining new matrix with 12 taxa and 898 characters
Data is Dna
Data matrix is not interleaved
Gaps coded as -
Taxon 1 -> Tarsius_syrichta
Taxon 2 -> Lemur_catta
Taxon 3 -> Homo_sapiens
Taxon 4 -> Pan
Taxon 5 -> Gorilla
Taxon 6 -> Pongo
Taxon 7 -> Hylobates
Taxon 8 -> Macaca_fuscata
Taxon 9 -> M_mulatta
Taxon 10 -> M_fascicularis
Taxon 11 -> M_sylvanus
Taxon 12 -> Saimiri_sciureus
Successfully read matrix
Setting default partition (does not divide up characters)
Setting model defaults
Seed (for generating default start values) = 1555622841
Setting output file names to "primates.nex.run<i>.<p|t>"
Exiting data block
Reached end of file
MrBayes > lset nst=6 rates=invgamma
Setting Nst to 6
Setting Rates to Invgamma
Successfully set likelihood model parameters
MrBayes > mcmc ngen=20000 samplefreq=100
printfreq=100 diagnfreq=1000
Setting number of generations to 20000
Setting sample frequency to 100
Running Markov chain
MCMC stamp = 8692445572
Seed = 30626700
Swapseed = 1555622841
Model settings:
Data not partitioned --
Datatype = DNA
Nucmodel = 4by4
Nst = 6
Substitution rates, expressed as proportions
of the rate sum, have a Dirichlet prior
(1.00,1.00,1.00,1.00,1.00,1.00)
Covarion = No
# States = 4
State frequencies have a Dirichlet prior
(1.00,1.00,1.00,1.00)
Rates = Invgamma
The distribution is approximated using 4 categories.
Shape parameter is exponentially
distributed with parameter (1.00).
Proportion of invariable sites is uniformly dist-
ributed on the interval (0.00,1.00).
Active parameters:
Parameters
---------------------
Revmat 1
Statefreq 2
Shape 3
Pinvar 4
Ratemultiplier 5
Topology 6
Brlens 7
---------------------
1 -- Parameter = Revmat
Type = Rates of reversible rate matrix
Prior = Dirichlet(1.00,1.00,1.00,1.00,1.00,1.00)
2 -- Parameter = Pi
Type = Stationary state frequencies
Prior = Dirichlet
3 -- Parameter = Alpha
Type = Shape of scaled gamma distribution of site rates
Prior = Exponential(1.00)
4 -- Parameter = Pinvar
Type = Proportion of invariable sites
Prior = Uniform(0.00,1.00)
5 -- Parameter = Ratemultiplier
Type = Partition-specific rate multiplier
Prior = Fixed(1.0)
6 -- Parameter = Tau
Type = Topology
Prior = All topologies equally probable a priori
Subparam. = V
7 -- Parameter = V
Type = Branch lengths
Prior = Unconstrained:GammaDir(1.0,0.1000,1.0,1.0)
Number of chains per MPI processor = 8
The MCMC sampler will use the following moves:
With prob. Chain will use move
0.93 % Dirichlet(Revmat)
0.93 % Slider(Revmat)
0.93 % Dirichlet(Pi)
0.93 % Slider(Pi)
1.85 % Multiplier(Alpha)
1.85 % Slider(Pinvar)
9.26 % ExtSPR(Tau,V)
9.26 % ExtTBR(Tau,V)
9.26 % NNI(Tau,V)
9.26 % ParsSPR(Tau,V)
37.04 % Multiplier(V)
12.96 % Nodeslider(V)
5.56 % TLMultiplier(V)
Division 1 has 413 unique site patterns
Initializing conditional likelihoods
Running benchmarks to automatically select fastest BEAGLE resource...
Using BEAGLE v3.1.2 resource 0 for division 1:
Rsrc Name : CPU
Impl Name : CPU-4State-Single
Flags: PROCESSOR_CPU PRECISION_SINGLE COMPUTATION_SYNCH EIGEN_REAL
SCALING_MANUAL SCALERS_RAW VECTOR_NONE THREADING_CPP MODEL STATES: 4
Initializing invariable-site conditional likelihoods
Initial log likelihoods and log prior probs for run 1:
Chain 1 -- -8803.174992 -- 42.620562
Chain 2 -- -8887.607821 -- 42.620562
Chain 3 -- -8612.869815 -- 42.620562
Chain 4 -- -8522.921441 -- 42.620562
Initial log likelihoods and log prior probs for run 2:
Chain 1 -- -8679.106083 -- 42.620562
Chain 2 -- -9046.716149 -- 42.620562
Chain 3 -- -8486.154983 -- 42.620562
Chain 4 -- -8760.764335 -- 42.620562
Using a relative burnin of 25.0 % for diagnostics
Chain results (20000 generations requested):
0 -- [-8803.175] (-8887.608) (-8612.870) (-8522.921) * [-8679.106] (-9046.716) (-8486.155) (-8760.764) (...0 remote chains...)
1000 -- (-5992.439) (-6049.599) (-6013.840) [-5968.341] * [-5911.315] (-6029.790) (-6070.369) (-6060.764) (...0 remote chains...) -- 0:00:19
2000 -- [-5864.131] (-5894.405) (-5927.265) (-5891.980) * [-5785.441] (-5916.646) (-6005.412) (-5875.297) (...0 remote chains...) -- 0:00:36
3000 -- (-5819.796) (-5839.428) (-5889.297) [-5787.887] * [-5741.932] (-5828.153) (-5866.805) (-5775.116) (...0 remote chains...) -- 0:01:25
4000 -- [-5741.953] (-5797.157) (-5773.872) (-5751.430) * (-5743.271) (-5806.691) (-5820.159) [-5744.328] (...0 remote chains...) -- 0:01:04
5000 -- [-5729.026] (-5781.991) (-5748.914) (-5735.459) * (-5731.240) (-5750.312) (-5766.323) [-5734.272] (...0 remote chains...) -- 0:00:51
Average standard deviation of split frequencies: 0.000000
6000 -- [-5726.299] (-5758.040) (-5738.510) (-5724.524) * (-5722.869) [-5738.720] (-5757.223) (-5723.481) (...0 remote chains...) -- 0:00:42
7000 -- (-5724.209) (-5726.639) [-5726.048] (-5723.930) * (-5722.860) (-5723.057) (-5741.001) [-5725.379] (...0 remote chains...) -- 0:01:12
8000 -- (-5722.836) (-5738.059) [-5726.183] (-5735.521) * (-5721.778) (-5727.580) (-5735.357) [-5726.899] (...0 remote chains...) -- 0:01:00
9000 -- (-5722.199) [-5724.381] (-5729.216) (-5727.787) * (-5724.959) (-5728.901) (-5737.999) [-5729.190] (...0 remote chains...) -- 0:00:50
10000 -- (-5722.838) (-5724.077) [-5723.598] (-5723.395) * (-5728.865) [-5729.452] (-5722.015) (-5733.628) (...0 remote chains...) -- 0:00:42
Average standard deviation of split frequencies: 0.001034
11000 -- [-5722.571] (-5742.559) (-5728.971) (-5726.905) * (-5730.962) (-5727.398) (-5724.377) [-5729.311] (...0 remote chains...) -- 0:00:34
12000 -- (-5728.377) [-5722.619] (-5724.693) (-5723.195) * (-5723.553) [-5719.051] (-5734.158) (-5729.540) (...0 remote chains...) -- 0:00:28
13000 -- (-5728.154) (-5730.298) (-5722.790) [-5726.406] * (-5729.549) [-5721.158] (-5739.788) (-5741.450) (...0 remote chains...) -- 0:00:23
14000 -- (-5725.711) [-5728.830] (-5725.949) (-5723.317) * (-5731.914) (-5724.208) (-5730.943) [-5729.157] (...0 remote chains...) -- 0:00:19
15000 -- [-5724.016] (-5743.916) (-5729.716) (-5726.448) * (-5725.390) (-5729.683) (-5728.894) [-5720.638] (...0 remote chains...) -- 0:00:15
Average standard deviation of split frequencies: 0.001378
16000 -- (-5726.544) (-5732.291) (-5726.437) [-5729.115] * (-5729.030) (-5731.877) (-5722.591) [-5719.019] (...0 remote chains...) -- 0:00:12
17000 -- (-5723.574) [-5724.367] (-5721.819) (-5726.479) * (-5728.811) (-5728.894) [-5723.818] (-5733.027) (...0 remote chains...) -- 0:00:08
18000 -- (-5735.050) (-5723.310) [-5725.305] (-5726.638) * (-5723.073) (-5728.121) (-5720.994) [-5731.460] (...0 remote chains...) -- 0:00:05
19000 -- [-5731.532] (-5725.784) (-5723.220) (-5716.554) * (-5740.380) (-5718.239) (-5730.634) [-5727.171] (...0 remote chains...) -- 0:00:02
20000 -- (-5725.996) (-5726.782) (-5720.546) [-5721.486] * [-5721.475] (-5724.620) (-5726.671) (-5717.234) (...0 remote chains...) -- 0:00:00
Average standard deviation of split frequencies: 0.001041
Continue with analysis? (yes/no): no
Analysis completed in 52 seconds
Analysis used 25.60 seconds of CPU time on processor 0
Likelihood of best state for "cold" chain of run 1 was -5715.13
Likelihood of best state for "cold" chain of run 2 was -5715.39
Acceptance rates for the moves in the "cold" chain of run 1:
With prob. (last 100) chain accepted proposals by move
36.9 % ( 40 %) Dirichlet(Revmat)
61.2 % ( 61 %) Slider(Revmat)
17.3 % ( 19 %) Dirichlet(Pi)
24.3 % ( 27 %) Slider(Pi)
37.6 % ( 34 %) Multiplier(Alpha)
65.9 % ( 69 %) Slider(Pinvar)
0.1 % ( 0 %) ExtSPR(Tau,V)
0.2 % ( 0 %) ExtTBR(Tau,V)
0.2 % ( 0 %) NNI(Tau,V)
0.4 % ( 0 %) ParsSPR(Tau,V)
37.2 % ( 25 %) Multiplier(V)
23.2 % ( 22 %) Nodeslider(V)
14.7 % ( 11 %) TLMultiplier(V)
Acceptance rates for the moves in the "cold" chain of run 2:
With prob. (last 100) chain accepted proposals by move
33.3 % ( 36 %) Dirichlet(Revmat)
65.3 % ( 63 %) Slider(Revmat)
16.7 % ( 10 %) Dirichlet(Pi)
22.9 % ( 19 %) Slider(Pi)
40.6 % ( 39 %) Multiplier(Alpha)
62.7 % ( 65 %) Slider(Pinvar)
0.3 % ( 0 %) ExtSPR(Tau,V)
0.3 % ( 0 %) ExtTBR(Tau,V)
0.2 % ( 0 %) NNI(Tau,V)
0.5 % ( 1 %) ParsSPR(Tau,V)
36.8 % ( 29 %) Multiplier(V)
23.9 % ( 25 %) Nodeslider(V)
15.2 % ( 16 %) TLMultiplier(V)
Chain swap information for run 1:
1 2 3 4
--------------------------
1 | 0.67 0.42 0.29
2 | 3381 0.65 0.45
3 | 3280 3347 0.66
4 | 3323 3332 3337
Chain swap information for run 2:
1 2 3 4
--------------------------
1 | 0.66 0.41 0.23
2 | 3374 0.61 0.40
3 | 3268 3287 0.62
4 | 3364 3340 3367
Upper diagonal: Proportion of successful state exchanges between chains
Lower diagonal: Number of attempted state exchanges between chains
Chain information:
ID -- Heat
-----------
1 -- 1.00 (cold chain)
2 -- 0.91
3 -- 0.83
4 -- 0.77
Heat = 1 / (1 + T * (ID - 1))
(where T = 0.10 is the temperature and ID is the chain number)
MrBayes > quit
Quitting program
[user@cn3160 mrbayes]$ exit
salloc.exe: Relinquishing job allocation 24780751
[user@biowulf user]$
multiple CPUs with MPI
[user@biowulf ~]$ sinteractive --ntasks 8 --ntasks-per-core 1
salloc.exe: Pending job allocation 24837664
salloc.exe: job 24837664 queued and waiting for resources
salloc.exe: job 24837664 has been allocated resources
salloc.exe: Granted job allocation 24837664
salloc.exe: Waiting for resource configuration
salloc.exe: Nodes cn3112 are ready for job
srun: error: x11: no local DISPLAY defined, skipping
[user@cn3112 ~]$ module load mrbayes
[+] Loading gcc 6.4.0 ...
[+] Loading openmpi 3.1.2 for GCC 6.4.0
[+] Loading mrbayes, version 3.2.7...
[user@cn3112 ~]$ mkdir mrbayes && cd mrbayes
[user@cn3112 mrbayes]$ cp $MRBAYES_HOME/share/examples/mrbayes/primates.nex .
[user@cn3112 mrbayes]$ mpirun -np $SLURM_NTASKS mb
MrBayes 3.2.7 x86_64
(Bayesian Analysis of Phylogeny)
(Parallel version)
(8 processors available)
Distributed under the GNU General Public License
Type "help" or "help <command>" for information
on the commands that are available.
Type "about" for authorship and general
information about the program.
MrBayes > execute primates.nex
Executing file "primates.nex"
DOS line termination
Longest line length = 920
Parsing file
Expecting NEXUS formatted file
Reading data block
Allocated taxon set
Allocated matrix
Defining new matrix with 12 taxa and 898 characters
Data is Dna
Data matrix is not interleaved
Gaps coded as -
Taxon 1 -> Tarsius_syrichta
Taxon 2 -> Lemur_catta
Taxon 3 -> Homo_sapiens
Taxon 4 -> Pan
Taxon 5 -> Gorilla
Taxon 6 -> Pongo
Taxon 7 -> Hylobates
Taxon 8 -> Macaca_fuscata
Taxon 9 -> M_mulatta
Taxon 10 -> M_fascicularis
Taxon 11 -> M_sylvanus
Taxon 12 -> Saimiri_sciureus
Successfully read matrix
Setting default partition (does not divide up characters)
Setting model defaults
Seed (for generating default start values) = 1555705864
Setting output file names to "primates.nex.run<i>.<p|t>"
Exiting data block
Reached end of file
MrBayes > lset nst=6 rates=invgamma
Setting Nst to 6
Setting Rates to Invgamma
Successfully set likelihood model parameters
MrBayes > mcmc ngen=20000 samplefreq=100
Setting number of generations to 20000
Setting sample frequency to 100
Running Markov chain
MCMC stamp = 5367313892
Seed = 3019911
Swapseed = 1555705864
Model settings:
Data not partitioned --
Datatype = DNA
Nucmodel = 4by4
Nst = 6
Substitution rates, expressed as proportions
of the rate sum, have a Dirichlet prior
(1.00,1.00,1.00,1.00,1.00,1.00)
Covarion = No
# States = 4
State frequencies have a Dirichlet prior
(1.00,1.00,1.00,1.00)
Rates = Invgamma
The distribution is approximated using 4 categories.
Shape parameter is exponentially
distributed with parameter (1.00).
Proportion of invariable sites is uniformly dist-
ributed on the interval (0.00,1.00).
Active parameters:
Parameters
---------------------
Revmat 1
Statefreq 2
Shape 3
Pinvar 4
Ratemultiplier 5
Topology 6
Brlens 7
---------------------
1 -- Parameter = Revmat
Type = Rates of reversible rate matrix
Prior = Dirichlet(1.00,1.00,1.00,1.00,1.00,1.00)
2 -- Parameter = Pi
Type = Stationary state frequencies
Prior = Dirichlet
3 -- Parameter = Alpha
Type = Shape of scaled gamma distribution of site rates
Prior = Exponential(1.00)
4 -- Parameter = Pinvar
Type = Proportion of invariable sites
Prior = Uniform(0.00,1.00)
5 -- Parameter = Ratemultiplier
Type = Partition-specific rate multiplier
Prior = Fixed(1.0)
6 -- Parameter = Tau
Type = Topology
Prior = All topologies equally probable a priori
Subparam. = V
7 -- Parameter = V
Type = Branch lengths
Prior = Unconstrained:GammaDir(1.0,0.1000,1.0,1.0)
Number of chains per MPI processor = 1
The MCMC sampler will use the following moves:
With prob. Chain will use move
0.93 % Dirichlet(Revmat)
0.93 % Slider(Revmat)
0.93 % Dirichlet(Pi)
0.93 % Slider(Pi)
1.85 % Multiplier(Alpha)
1.85 % Slider(Pinvar)
9.26 % ExtSPR(Tau,V)
9.26 % ExtTBR(Tau,V)
9.26 % NNI(Tau,V)
9.26 % ParsSPR(Tau,V)
37.04 % Multiplier(V)
12.96 % Nodeslider(V)
5.56 % TLMultiplier(V)
Division 1 has 413 unique site patterns
Initializing conditional likelihoods
Running benchmarks to automatically select fastest BEAGLE resource...
Using BEAGLE v3.1.2 resource 0 for division 1:
Rsrc Name : CPU
Impl Name : CPU-4State-Single
Flags: PROCESSOR_CPU PRECISION_SINGLE COMPUTATION_SYNCH EIGEN_REAL
SCALING_MANUAL SCALERS_RAW VECTOR_NONE THREADING_CPP MODEL STATES: 4
Initializing invariable-site conditional likelihoods
Initial log likelihoods and log prior probs for run 1:
Chain 1 -- -8886.343679 -- 42.620562
There are 7 more chains on other processor(s)
Using a relative burnin of 25.0 % for diagnostics
Chain results (20000 generations requested):
0 -- [-8886.344] [...7 remote chains...]
1000 -- [-5901.771] [...7 remote chains...] -- 0:00:00
2000 -- [-5836.424] [...7 remote chains...] -- 0:00:00
3000 -- (-5812.036) [...7 remote chains...] -- 0:00:05
4000 -- (-5752.144) [...7 remote chains...] -- 0:00:04
5000 -- (-5732.309) [...7 remote chains...] -- 0:00:03
Average standard deviation of split frequencies: 0.002015
6000 -- [-5722.850] [...7 remote chains...] -- 0:00:04
7000 -- (-5728.707) [...7 remote chains...] -- 0:00:03
8000 -- (-5723.999) [...7 remote chains...] -- 0:00:03
9000 -- (-5729.417) [...7 remote chains...] -- 0:00:03
10000 -- (-5728.500) [...7 remote chains...] -- 0:00:02
Average standard deviation of split frequencies: 0.003101
11000 -- (-5724.098) [...7 remote chains...] -- 0:00:02
12000 -- (-5724.540) [...7 remote chains...] -- 0:00:02
13000 -- (-5735.209) [...7 remote chains...] -- 0:00:02
14000 -- (-5731.311) [...7 remote chains...] -- 0:00:01
15000 -- [-5719.576] [...7 remote chains...] -- 0:00:01
Average standard deviation of split frequencies: 0.001378
16000 -- (-5728.118) [...7 remote chains...] -- 0:00:01
17000 -- (-5738.108) [...7 remote chains...] -- 0:00:00
18000 -- (-5736.811) [...7 remote chains...] -- 0:00:00
19000 -- (-5733.949) [...7 remote chains...] -- 0:00:00
20000 -- (-5728.526) [...7 remote chains...] -- 0:00:00
Average standard deviation of split frequencies: 0.001561
Continue with analysis? (yes/no): no
Analysis completed in 6 seconds
Analysis used 6.41 seconds of CPU time on processor 0
Likelihood of best state for "cold" chain of run 1 was -5716.44
Likelihood of best state for "cold" chain of run 2 was -5716.44
Acceptance rates for the moves in the "cold" chain of run 1:
With prob. (last 100) chain accepted proposals by move
32.3 % ( 28 %) Dirichlet(Revmat)
61.6 % ( 61 %) Slider(Revmat)
18.1 % ( 16 %) Dirichlet(Pi)
22.1 % ( 22 %) Slider(Pi)
41.1 % ( 47 %) Multiplier(Alpha)
62.9 % ( 66 %) Slider(Pinvar)
0.1 % ( 0 %) ExtSPR(Tau,V)
0.2 % ( 0 %) ExtTBR(Tau,V)
0.4 % ( 0 %) NNI(Tau,V)
0.6 % ( 0 %) ParsSPR(Tau,V)
36.8 % ( 26 %) Multiplier(V)
23.8 % ( 24 %) Nodeslider(V)
14.5 % ( 17 %) TLMultiplier(V)
Acceptance rates for the moves in the "cold" chain of run 2:
With prob. (last 100) chain accepted proposals by move
31.5 % ( 36 %) Dirichlet(Revmat)
60.8 % ( 60 %) Slider(Revmat)
19.7 % ( 24 %) Dirichlet(Pi)
21.4 % ( 21 %) Slider(Pi)
33.2 % ( 29 %) Multiplier(Alpha)
71.1 % ( 71 %) Slider(Pinvar)
0.3 % ( 0 %) ExtSPR(Tau,V)
0.1 % ( 0 %) ExtTBR(Tau,V)
0.6 % ( 3 %) NNI(Tau,V)
0.6 % ( 0 %) ParsSPR(Tau,V)
36.2 % ( 40 %) Multiplier(V)
24.3 % ( 21 %) Nodeslider(V)
15.3 % ( 19 %) TLMultiplier(V)
Chain swap information for run 1:
1 2 3 4
--------------------------
1 | 0.68 0.46 0.34
2 | 3307 0.69 0.47
3 | 3354 3333 0.65
4 | 3258 3360 3388
Chain swap information for run 2:
1 2 3 4
--------------------------
1 | 0.60 0.44 0.32
2 | 3297 0.69 0.48
3 | 3278 3255 0.71
4 | 3334 3353 3483
Upper diagonal: Proportion of successful state exchanges between chains
Lower diagonal: Number of attempted state exchanges between chains
Chain information:
ID -- Heat
-----------
1 -- 1.00 (cold chain)
2 -- 0.91
3 -- 0.83
4 -- 0.77
Heat = 1 / (1 + T * (ID - 1))
(where T = 0.10 is the temperature and ID is the chain number)
MrBayes > quit
Deleting previously defined characters
Deleting previously defined taxa
Quitting program
[user@cn3112 mrbayes]$ exit
salloc.exe: Relinquishing job allocation 24837664
[user@biowulf ~]$
single GPU
[user@biowulf ~]$ sinteractive --gres gpu:p100:1
salloc.exe: Pending job allocation 24838742
salloc.exe: job 24838742 queued and waiting for resources
salloc.exe: job 24838742 has been allocated resources
salloc.exe: Granted job allocation 24838742
salloc.exe: Waiting for resource configuration
salloc.exe: Nodes cn2351 are ready for job
srun: error: x11: no local DISPLAY defined, skipping
[user@cn2351 ~]$ module load mrbayes
[+] Loading gcc 6.4.0 ...
[+] Loading openmpi 3.1.2 for GCC 6.4.0
[+] Loading mrbayes, version 3.2.7...
[user@cn2351 ~]$ mkdir mrbayes && cd mrbayes
[user@cn2351 mrbayes]$ cp $MRBAYES_HOME/share/examples/mrbayes/primates.nex .
[user@cn2351 mrbayes]$ mb
MrBayes 3.2.7 x86_64
(Bayesian Analysis of Phylogeny)
(Parallel version)
(1 processors available)
Distributed under the GNU General Public License
Type "help" or "help <command>" for information
on the commands that are available.
Type "about" for authorship and general
information about the program.
MrBayes > execute primates.nex
Executing file "primates.nex"
DOS line termination
Longest line length = 920
Parsing file
Expecting NEXUS formatted file
Reading data block
Allocated taxon set
Allocated matrix
Defining new matrix with 12 taxa and 898 characters
Data is Dna
Data matrix is not interleaved
Gaps coded as -
Taxon 1 -> Tarsius_syrichta
Taxon 2 -> Lemur_catta
Taxon 3 -> Homo_sapiens
Taxon 4 -> Pan
Taxon 5 -> Gorilla
Taxon 6 -> Pongo
Taxon 7 -> Hylobates
Taxon 8 -> Macaca_fuscata
Taxon 9 -> M_mulatta
Taxon 10 -> M_fascicularis
Taxon 11 -> M_sylvanus
Taxon 12 -> Saimiri_sciureus
Successfully read matrix
Setting default partition (does not divide up characters)
Setting model defaults
Seed (for generating default start values) = 1555707139
Setting output file names to "primates.nex.run<i>.<p|t>"
Exiting data block
Reached end of file
MrBayes > lset nst=6 rates=invgamma
Setting Nst to 6
Setting Rates to Invgamma
Successfully set likelihood model parameters
MrBayes > mcmc ngen=20000 samplefreq=100
Setting number of generations to 20000
Setting sample frequency to 100
Running Markov chain
MCMC stamp = 5005632409
Seed = 1921241950
Swapseed = 1555707139
Model settings:
Data not partitioned --
Datatype = DNA
Nucmodel = 4by4
Nst = 6
Substitution rates, expressed as proportions
of the rate sum, have a Dirichlet prior
(1.00,1.00,1.00,1.00,1.00,1.00)
Covarion = No
# States = 4
State frequencies have a Dirichlet prior
(1.00,1.00,1.00,1.00)
Rates = Invgamma
The distribution is approximated using 4 categories.
Shape parameter is exponentially
distributed with parameter (1.00).
Proportion of invariable sites is uniformly dist-
ributed on the interval (0.00,1.00).
Active parameters:
Parameters
---------------------
Revmat 1
Statefreq 2
Shape 3
Pinvar 4
Ratemultiplier 5
Topology 6
Brlens 7
---------------------
1 -- Parameter = Revmat
Type = Rates of reversible rate matrix
Prior = Dirichlet(1.00,1.00,1.00,1.00,1.00,1.00)
2 -- Parameter = Pi
Type = Stationary state frequencies
Prior = Dirichlet
3 -- Parameter = Alpha
Type = Shape of scaled gamma distribution of site rates
Prior = Exponential(1.00)
4 -- Parameter = Pinvar
Type = Proportion of invariable sites
Prior = Uniform(0.00,1.00)
5 -- Parameter = Ratemultiplier
Type = Partition-specific rate multiplier
Prior = Fixed(1.0)
6 -- Parameter = Tau
Type = Topology
Prior = All topologies equally probable a priori
Subparam. = V
7 -- Parameter = V
Type = Branch lengths
Prior = Unconstrained:GammaDir(1.0,0.1000,1.0,1.0)
Number of chains per MPI processor = 8
The MCMC sampler will use the following moves:
With prob. Chain will use move
0.93 % Dirichlet(Revmat)
0.93 % Slider(Revmat)
0.93 % Dirichlet(Pi)
0.93 % Slider(Pi)
1.85 % Multiplier(Alpha)
1.85 % Slider(Pinvar)
9.26 % ExtSPR(Tau,V)
9.26 % ExtTBR(Tau,V)
9.26 % NNI(Tau,V)
9.26 % ParsSPR(Tau,V)
37.04 % Multiplier(V)
12.96 % Nodeslider(V)
5.56 % TLMultiplier(V)
Division 1 has 413 unique site patterns
Initializing conditional likelihoods
Running benchmarks to automatically select fastest BEAGLE resource...
Using BEAGLE v3.1.2 resource 1 for division 1:
Rsrc Name : Tesla P100-PCIE-16GB
Impl Name : CUDA-Single
Flags: PROCESSOR_GPU PRECISION_SINGLE COMPUTATION_SYNCH EIGEN_REAL
SCALING_MANUAL SCALERS_RAW VECTOR_NONE THREADING_NONE MODEL STATES: 4
Initializing invariable-site conditional likelihoods
Initial log likelihoods and log prior probs for run 1:
Chain 1 -- -8919.411522 -- 42.620562
Chain 2 -- -8771.563296 -- 42.620562
Chain 3 -- -8518.126563 -- 42.620562
Chain 4 -- -8946.939621 -- 42.620562
Initial log likelihoods and log prior probs for run 2:
Chain 1 -- -8592.085448 -- 42.620562
Chain 2 -- -8440.938886 -- 42.620562
Chain 3 -- -8688.754041 -- 42.620562
Chain 4 -- -8894.529587 -- 42.620562
Using a relative burnin of 25.0 % for diagnostics
Chain results (20000 generations requested):
0 -- [-8919.412] (-8771.563) (-8518.127) (-8946.940) * [-8592.085] (-8440.939) (-8688.754) (-8894.530) (...0 remote chains...)
1000 -- [-6047.895] (-6056.430) (-6120.001) (-6125.120) * (-6028.749) (-6107.900) [-5983.082] (-6096.173) (...0 remote chains...) -- 0:00:19
2000 -- (-5966.556) [-5940.409] (-5939.939) (-6091.188) * [-5861.574] (-6038.474) (-5897.188) (-5919.859) (...0 remote chains...) -- 0:00:18
3000 -- (-5867.629) (-5829.385) [-5814.568] (-5997.532) * (-5844.656) (-5979.460) [-5845.484] (-5852.948) (...0 remote chains...) -- 0:00:17
4000 -- (-5821.305) [-5746.622] (-5792.056) (-5880.442) * [-5778.875] (-5917.413) (-5817.247) (-5801.371) (...0 remote chains...) -- 0:00:16
5000 -- (-5782.367) [-5733.577] (-5754.473) (-5811.744) * (-5765.074) (-5849.911) [-5780.278] (-5768.608) (...0 remote chains...) -- 0:00:12
Average standard deviation of split frequencies: 0.000000
6000 -- (-5740.663) [-5729.112] (-5736.163) (-5769.044) * [-5731.089] (-5773.169) (-5742.422) (-5735.368) (...0 remote chains...) -- 0:00:11
7000 -- (-5740.729) (-5735.838) (-5722.699) [-5738.829] * (-5727.399) (-5739.974) [-5733.467] (-5737.091) (...0 remote chains...) -- 0:00:11
8000 -- (-5732.037) (-5723.254) (-5729.979) [-5733.471] * [-5722.192] (-5733.728) (-5733.738) (-5726.980) (...0 remote chains...) -- 0:00:10
9000 -- (-5738.576) (-5725.501) (-5730.153) [-5721.744] * [-5725.951] (-5719.629) (-5734.888) (-5722.782) (...0 remote chains...) -- 0:00:09
10000 -- (-5728.964) (-5739.340) [-5720.749] (-5721.835) * (-5723.985) [-5720.800] (-5727.622) (-5727.411) (...0 remote chains...) -- 0:00:09
Average standard deviation of split frequencies: 0.001034
11000 -- [-5729.477] (-5733.644) (-5723.735) (-5721.479) * (-5728.937) (-5724.185) [-5722.981] (-5723.809) (...0 remote chains...) -- 0:00:07
12000 -- [-5727.612] (-5735.605) (-5720.857) (-5735.472) * (-5733.317) (-5723.410) (-5728.018) [-5723.994] (...0 remote chains...) -- 0:00:06
13000 -- (-5726.903) [-5720.852] (-5727.963) (-5729.000) * (-5732.313) [-5723.682] (-5723.280) (-5725.235) (...0 remote chains...) -- 0:00:05
14000 -- (-5734.467) [-5725.775] (-5725.319) (-5739.813) * [-5723.447] (-5734.556) (-5735.317) (-5732.822) (...0 remote chains...) -- 0:00:05
15000 -- (-5728.179) (-5721.962) (-5724.484) [-5729.233] * [-5725.047] (-5729.352) (-5734.814) (-5729.500) (...0 remote chains...) -- 0:00:04
Average standard deviation of split frequencies: 0.001378
16000 -- (-5726.266) (-5719.612) (-5723.972) [-5725.508] * (-5724.286) [-5719.120] (-5726.067) (-5727.467) (...0 remote chains...) -- 0:00:03
17000 -- (-5724.019) (-5721.611) (-5728.017) [-5732.297] * (-5732.124) [-5721.600] (-5722.171) (-5723.226) (...0 remote chains...) -- 0:00:02
18000 -- (-5725.945) (-5737.688) [-5727.868] (-5722.582) * [-5727.586] (-5727.064) (-5733.604) (-5724.478) (...0 remote chains...) -- 0:00:01
19000 -- (-5727.067) (-5721.765) (-5739.332) [-5722.077] * [-5719.814] (-5730.075) (-5734.928) (-5726.458) (...0 remote chains...) -- 0:00:00
20000 -- (-5732.071) [-5721.275] (-5726.843) (-5717.984) * (-5725.414) (-5733.573) (-5724.125) [-5722.246] (...0 remote chains...) -- 0:00:00
Average standard deviation of split frequencies: 0.001041
Continue with analysis? (yes/no): no
Analysis completed in 17 seconds
Analysis used 16.29 seconds of CPU time on processor 0
Likelihood of best state for "cold" chain of run 1 was -5716.00
Likelihood of best state for "cold" chain of run 2 was -5715.33
Acceptance rates for the moves in the "cold" chain of run 1:
With prob. (last 100) chain accepted proposals by move
37.6 % ( 41 %) Dirichlet(Revmat)
58.4 % ( 57 %) Slider(Revmat)
19.3 % ( 18 %) Dirichlet(Pi)
20.3 % ( 21 %) Slider(Pi)
36.3 % ( 37 %) Multiplier(Alpha)
63.5 % ( 64 %) Slider(Pinvar)
0.1 % ( 0 %) ExtSPR(Tau,V)
0.2 % ( 0 %) ExtTBR(Tau,V)
0.5 % ( 0 %) NNI(Tau,V)
0.7 % ( 0 %) ParsSPR(Tau,V)
36.5 % ( 32 %) Multiplier(V)
24.2 % ( 27 %) Nodeslider(V)
13.9 % ( 17 %) TLMultiplier(V)
Acceptance rates for the moves in the "cold" chain of run 2:
With prob. (last 100) chain accepted proposals by move
38.4 % ( 42 %) Dirichlet(Revmat)
54.4 % ( 56 %) Slider(Revmat)
14.6 % ( 17 %) Dirichlet(Pi)
22.1 % ( 20 %) Slider(Pi)
35.1 % ( 39 %) Multiplier(Alpha)
66.7 % ( 68 %) Slider(Pinvar)
0.4 % ( 0 %) ExtSPR(Tau,V)
0.3 % ( 0 %) ExtTBR(Tau,V)
0.3 % ( 0 %) NNI(Tau,V)
0.5 % ( 0 %) ParsSPR(Tau,V)
36.6 % ( 21 %) Multiplier(V)
24.9 % ( 30 %) Nodeslider(V)
12.5 % ( 11 %) TLMultiplier(V)
Chain swap information for run 1:
1 2 3 4
--------------------------
1 | 0.60 0.40 0.26
2 | 3285 0.64 0.38
3 | 3260 3342 0.58
4 | 3403 3348 3362
Chain swap information for run 2:
1 2 3 4
--------------------------
1 | 0.65 0.46 0.30
2 | 3451 0.71 0.41
3 | 3386 3250 0.57
4 | 3304 3271 3338
Upper diagonal: Proportion of successful state exchanges between chains
Lower diagonal: Number of attempted state exchanges between chains
Chain information:
ID -- Heat
-----------
1 -- 1.00 (cold chain)
2 -- 0.91
3 -- 0.83
4 -- 0.77
Heat = 1 / (1 + T * (ID - 1))
(where T = 0.10 is the temperature and ID is the chain number)
MrBayes > quit
Deleting previously defined characters
Deleting previously defined taxa
Quitting program
[user@cn2351 mrbayes]$ exit
salloc.exe: Relinquishing job allocation 24838742
[user@biowulf ~]$
First, create a script, primates-gtr-gamma.nex to execute your MrBayes commands:
begin mrbayes; set autoclose=yes nowarn=yes; execute primates.nex; lset nst=6 rates=gamma; mcmc nruns=1 ngen=10000 samplefreq=10 file=primates.nex1; mcmc file=primates.nex2; mcmc file=primates.nex3; end;
If your run was interrupted, you can resume from the last checkpoint bysetting append=yes with mcmc.
Then create a batch input file (e.g. mrbayes.sh), which differs for CPU and GPU operation.
mrbayes.sh:
#!/bin/bash set -e module load mrbayes mpirun -np $SLURM_NTASKS mb primates-gtr-gamma.nex
Submit this job using the Slurm sbatch command.
sbatch --no-requeue --ntasks=# --ntasks-per-core=1 --constraint x2695 --partition=multinode [--mem-per-cpu=#] mrbayes.sh
See Parallel Jobs in the user guide for more information.
mrbayes.sh:
#!/bin/bash set -e module load mrbayes mpirun -np 1 mb primates-gtr-gamma.nex
Submit this job using the Slurm sbatch command.
sbatch --no-requeue --partition=gpu --gres=gpu:gputype:1 mrbayes.sh
See GPU allocation in the user guide for more information.