另外MrBays也支持并行计算,可以充分利用多核计算机乃至网络集群的计算能力,大大缩短计算时间。 并行版的效率相当不错。在我的双核(T7400)笔记本上,运行MrBayes examples目录中的脚本model_test.nex,并行版耗时13分半钟,非并行版耗时21分半钟;与非并行版相比,并行版效率提高了37%。在4核羿龙940上,运行时间比非并行版约缩短了2/3 。
本人编译了 MrBayes v3.2 32位并行版及单机版(下载)供大家使用,下面是安装及使用方法:
1. 以系统管理员身份安装MPICH2运行时。
http://www.mcs.anl.gov/research/projects/mpich2/downloads/tarballs/1.2.1p1/mpich2-1.2.1p1-win-ia32.msi
下载地址: https://files.cnblogs.com/agateriver/mrbayes_3.2_for_Windows_%E5%B9%B6%E8%A1%8C%E7%89%88.7z
a. 交互式运行
2 "C:\Program Files\MPICH2\bin\mpiexec" -n 4 C:\mrbayes_3.2\mb.exe
b. 运行脚本
2 "C:\Program Files\MPICH2\bin\mpiexec" -n 4 C:\mrbayes_3.2\mb.exe demo.nex
4. 如果您想多机并行 MrBayes ,请网上搜索 MPICH2 windows 版的相关使用教程。
关于3.2版的checkpoint功能
MrBayes通过mcmc命令中的三个参数checkpoint、checkfreq、append来控制检查点的保存。具体大家可以在MrBayes中输入"help mcmc"命令然后查看"checkpoint"和"checkfreq"等节的说明:
Checkpoint -- 如果这个参数被设为 Yes(默认为Yes),则每隔Checkfreq参数所指定的代数,所有链的当前参数值都会被输出到检查点文件保存。检查点文件名形如
Checkfreq -- 保存检查点的频率,就是每隔多少代保存一次,默认100000。
Append -- 是否从最后保存检查点继续运行分析。
下面是一个Mrbayes脚本:
2 exec example.nex;
3 lset nst=6 rates=invgamma;
4 mcmc ngen=20000000 stoprule=yes stopval=0.01 checkpoint=yes checkfreq=50000;
5 sump relburnin=yes burninfrac=0.25;
6 sumt relburnin=yes burninfrac=0.25;
7 end;
假设你有一个很大的数据集example.nex,并且运行这个脚本已经几个星期了,但是突然被某个毛头师兄弟碰掉了电源插头,这时你可以假装懊恼一下,好让那个毛头师兄稍微有点内疚感,:)。重新开机后,像下面一样将脚本的第四行末尾加上append=yes,然后重新运行,MrBayes就会从最后的检查点处继续运行你的分析了。
3 lset nst=6 rates=invgamma;
4 mcmc ngen=20000000 stoprule=yes stopval=0.01 checkpoint=yes checkfreq=50000 append=yes;
5 sump relburnin=yes burninfrac=0.25;
6 sumt relburnin=yes burninfrac=0.25;
7 end;
浙公网安备 33010602011771号