摘要:本文以Flare的WaterSwap计算结合自由能为例,介绍如何利用云计算资源解决突发性大规模的计算需求,内容包括:1)远程(云端)主机的软件安装、配置与测试;(2)本地主机的软件安装与配置。整个过程从购买云计算资源到作业提交只需要5分钟的时间。

作者:肖高铿

一. 应用场景

Flare结合自由能采用WaterSwap反应坐标、用Monte Carlo采样计算FEP,TI等四种结合自由能。在典型的16核心主机里,大部分作业大约在2-3天完成(与蛋白的大小有关系,体系越大则越慢)。如果您有很多的配体,比如20个,针对同一个蛋白计算结合自由能,而自己本地的计算资源不足,此时您需要租用外部计算资源比如亚马逊云、阿里云或腾讯云来解决这个问题。

Flare的WaterSwap不仅支持本地多核并行计算,还可以通过BROKER将计算作业分布到局域网内的集群(或其它主机)或公网上的公有云计算资源。无论是将作业分配到局域网的集群还是公有云计算资源的方法基本一样的,使用体验与本地使用一致,仅需要通过IP来指定使用哪个计算资源即可。本文将介绍如何快速的将计算作业部署到远程机器上以解决临时大规模的计算的需求,从购买主机到完成部署,仅需要5分钟,您可以充分的利用云计算资源。

Flare教程 | WaterSwap-如何整合公有云加速结合自由能的计算-墨灵格的博客

图1. WaterSwap不仅可以在本地进行单机多核并行计算,还可以将计算分配到局域网内的集群或公网上的计算资源。BROKER让各种计算资源的切换非常容易,体验与本地计算一致。

二. 远程机器(云端)的软件安装

我们推荐主机的配置至少包含16个核心以便确保作业可以在2-3天左右完成。

1. Flare软件的安装

(1)软件安装:

[gkxiao@master apps]$ tar -Jvxf flare.tar.xz

(2) license安装

将license文件放在cresset/licenses目录里

(3) 检查FieldEngine是否可用

运行安装目录里的cresset/Flare/bin/FieldEngine

[gkxiao@master ~]$ /public/apps/cresset/Flare/bin/FieldEngine

出现类似如下提示:

1
2
3
4
[2017-12-04 10:59:14.611 I] default: Creating socket for communications...
master:33144
[2017-12-04 10:59:14.612 I] default: Running on "master"
[2017-12-04 10:59:14.612 I] default: Now listening on port 33144

其中master是我服务器的名称,这个会有不同,其它的应该大致与上面一致。

可能会出现libGLU.so.1找不到的提示,请按照《Linux命令极简教程》安装对应软件包。

先了解libGLU.so.1在哪个包里提供,我用的是centos,所以用yum命令:

1
yum whatprovides libGLU.so.1

在我这里提示由mesa-libGLU-9.0.0-4.el7.i686提供,所以再安装这个包:

1
yum install mesa-libGLU-9.0.0-4.el7.i686

再安装mesa-libGLU-devel.x86_64:

1
yum install mesa-libGLU-devel.x86_64

2. 安装BROKER 2.4

(1)下载Cresset Engine Broker 2.4

提供rpm与tar.xz两种下载文件:tar.xz可以安装于任意地方,不需要root权限;rpm需要root权限。

(2)安装Broker

tgz文件的安装方法

[gkxiao@master ~]$ tar -Jvxf CEB2.tar.xz

rpm文件的安装方法:

[gkxiao@master ~]$ yum -y install CEB2.rpm

RPM方式安装后,文件被放置于/opt/cresset。

(3)安装license

将license放在cresset/licenses目录里。实际上,如果在Flare的安装步骤里已经放置过license文件,可以忽略本次操作。

3. 在实例(云主机)上启用Broker

[gkxiao@master ~]$ nohup /home/gkxiao/cresset/CEBroker2/bin/CEBroker2 -e -v -v -v -p 9100 < /dev/null >& cebroker.log &

4. 在实例(云主机)上启用FieldEngine

手动启用FieldEngine:

Flare V2或以前的版本:

[gkxiao@master ~]$ nohup /home/gkxiao/cresset/Flare/bin/FieldEngine -v -v -v -b localhost:9101 --only-multicore-tasks < /dev/null >& cebroker_fieldengine.log &

Flare V3版本开始不在使用--only-multicore-tasks,可以用--min-resource-count 1 --max-resource-count 0代替。

[gkxiao@master ~]$ nohup /home/gkxiao/cresset/Flare/bin/FieldEngine -v -v -v -b localhost:9101 -t 0 --resource CPU --min-resource-count 1 --max-resource-count 0 < /dev/null >& cebroker_fieldengine.log &

-t 600的意思是如果600秒内没有作业提交过来,则关闭Broker,使得计算完毕会自动关闭,节省您的机时。而-t 0则表示不自动关闭。

上面FieldEngine默认使用CPU资源(--resource CPU)。如果你的云实例资源既有CPU资源,又有GPU资源,你需要混合使用的GPU与CPU,那么除了启用上述CPU资源的FieldEngine之外,还需要额外再启用一个GPU资源的FieldEngine:

[gkxiao@master ~]$ nohup /home/gkxiao/cresset/Flare/bin/FieldEngine -v -v -v -b localhost:9101 -t 0 --resource GPU --min-resource-count 1 --max-resource-count 0 < /dev/null >& cebroker_fieldengine.log &

更多的FieldEngine配置,请键入FieldEngine -h获取帮助。

三. 本地主机的配置

假设阿里云主机实例的IP地址为192.168.31.108,我们需要在本地的机器上进行配置,以便Flare将作业提交到该地址上的阿里云实例。

1. 打开Flare

Windows机器下双击桌面的Flare图标就可以打开Flare。

2.File >Preferences >Processing

如图2所示,在"Cresset Engine Broker"方框里,添加计算实例IP地址(这个例子里是192.168.31.108)与端口(port,为你启用实例上BROKER端口,这里是9100),然后勾选enable,点击Test Connection按钮,如果验证通过则返回"Connection OK"。将你可以利用的远程实例都添加进来,需要使用的则enable它。

Flare教程 | WaterSwap-如何整合公有云加速结合自由能的计算-墨灵格的博客

图2. 本地Flare的设置

3. 常见问题

在本地Flare上提交作业,远程服务器端没有反应。可能是远程主机防火墙的设置问题,请确认服务器端的端口9100已经开通。

假设远程主机的IP为192.168.31.108,检查其9100端口是否开通:

[gkxiao@master apps]$ nc -v 192.168.31.108 9100

如果开通的话,会返回类似如下字样:

1
Connection to 192.168.31.108 9100 port [tcp/*] succeeded!

如果没有开通的话,会返回类似如下字样:

1
connect to 192.168.31.108 port 9100 (tcp) failed: Connection refused

此时,需要请你的管理员开通相应的端口,或者用root权限开通:

[root@master apps]# firewall-cmd --zone=public --add-port=9100/tcp --permanent

[root@master apps]# firewall-cmd --reload

四. 开始WaterSwap结合自由能计算

现在,一切准备就绪,你可以在本地提交WaterSwap计算了,详见教程:《FLARE教程 | WaterSwap计算结合自由能》

将作业提交到远程的公有云实例上与在本机计算没有任何区别,仅是计算资源不同而已。如果有20个复合物结构计算结合自由能,您刚好有20个公有云实例,则每个实例运行一个作业就可以快速完成计算。此外,Flare的会自动的将计算结果从远程机器上收集到本地,因此,计算完毕不用再对远程服务器做任何后续处理,本地可以直接看结果。

五. 利用本地局域网内集群计算资源

你还可以将Broker部署于局域网内的集群上,Broker可以自动配合PBS、LSF、SEG之类的队列管理系统获得计算资源,Broker以SERVICE的方式侦听端口为您安排计算。

六. 小结

通过Broker,您可以可以快速的实现公有云计算资源与本地计算资源无缝结合,加速您的计算;具有统一的使用体验,只需要在Preference里数据远程服务器的IP地址,就可以在本地机器上以同样的体验使用软件。

七. 文献

  1. Woods, C. J.; Malaisree, M.; Hannongbua, S.; Mulholland, A. J. A Water-Swap Reaction Coordinate for the Calculation of Absolute Protein-Ligand Binding Free Energies. J. Chem. Phys. 2011, 134 (5).

八. 联系我们