..微笑着看着杯中的花茶一片片撑开.. ..透明的花瓣里水破开的声音很轻微..
分类: 信息化
2017-05-19 14:23:15
本次编译的是Mrbayes 3.2.2版本。其实都是很简单的事情,只是有些依赖的东西要解决。
平台环境如下:
Ubuntu server 12.04LTS 64位
Linux版本为 3.2.0-57
Gcc编译器采用的 gcc 4.6
MPI软件如下(在新立德中安装即可):
1. OpenMPI:
Openmpi-bin
Openmpi-checkpoint
Openmpi-common
Libopenmpi1.3
2. MPICH:
Mpich-bin
Mpich-mpd-bin
Libmpich1.0gf
Libmpich-mpd1.0gf
Mpich2
Libmpich2-3
Mpi-default-bin
有些虽然可能不是必要的,而且这是两套MPI框架。不过除了Mrbayes外,像PhyML的多线程版本也会使用这些框架的。因此安装了也无妨,总会用到的。
Mrbayes的包下载自官方网站,网址如下:下载其中的source code就可以了。
1. 关于编译单线程的版本这里就不说,编译多线程的其实跟单线程的也没什么太大区别。首先先检查下你的gcc编译器,我是在gcc 4.6的版本下编译成功的。
$which gcc
2. 解压源码包,将路径切换至src目录下,具体路径看你自己的设置。
$cd src
3. 先自动配置
$autoconf
如果没有这步,src文件夹下是不会有configure这个文件的,网上有篇教程中忽略了这步,所有有些人可能就发现无法配置,也不能make。
4. 设置参数
$./configure (如果你是编译单线程版本直接默认就可以了)
$./configure –enable-mpi=yes –with-beagle=no
如果你不启用GPU加速,应该像上面这样设置,否则你需要确定你的工作站安装了NVIDIA显卡并采用了CUDA驱动,那么你可以安装libbeagle,并直接启用mpi配置:
$./configure –enable-mpi=yes
当然我只编译了多线程,并没有采用GPU加速,因此是使用了上面的参数。
5. 编译
$make clean (清除掉先前编译的内容,第一次编译的时候就免了。)
$make (编译,可能要等上一小会儿。)
$make install (将程序安装在程序目录下,这样可以在终端直接调用,不过直接拷贝编译好的文件在当前文件夹下用也是没有问题的。)
默认编译好的文件为mb。
运行的方法可以如下:
$mpirun –np 8 ./mb(-np 8 表示采用8个线程来执行)
$mpiexec –n 8 ./mb(-n 8 表示采用8个线程来执行)
启动后跟单现成的界面差不多,但是在前面的信息中会告诉你采用了多少个线程。剩下的操作就跟单线程的没什么区别了。你也可以从系统监视器中看到如果你启用了8个线程,那么有8个CPU的负载应该是100%的。
你也可以将要执行的步骤卸载nex文件中直接在命令行中加载。
$mpirun –np 8 ./mb your_file.nex
例如:
……
END;(NEX序列结尾)
begin mrbayes;
mcmc ngen=10000000 printfreq=1000 samplefreq=1000 checkpoint=yes checkfreq=10000 stoprule=yes stopval=0.01;
mcmc;
sump relburnin=yes burninfrac=0.25;
sumt relburnin=yes burninfrac=0.25;
end;
祝各位好运吧。