基于GASpy 的材料模拟计算框架

2022-02-27 11:24阳王东杨昊冷灿潘佳铭唐卓田泽安李肯立
关键词:模拟计算框架工具

阳王东,杨昊,冷灿,潘佳铭,唐卓,田泽安,李肯立

(1.湖南大学信息科学与工程学院,湖南长沙 410082;2.国防科技大学计算机学院,湖南长沙 410073;3.国家超级计算长沙中心,湖南长沙 410082)

半个世纪之前,材料科学的迅速发展带动了科学技术的进步与经济的发展.在这个过程中,从新物质的发现到实际应用的周期时间较长,有的甚至长达十几年,新材料的开发和生产成为制约一个国家工业化发展的因素之一.传统的材料研发局限于以专家试验为主的“试错法”,这种方法模式单一,需要多年的经验以及相关知识的积累,开发周期较长,开发成本较高,而且回报率比较低[1].

同时传统方法面临着日益严峻的化石能源危机与环境污染等问题.为了解决这个问题,人们提出了各种替代方案.这些方案包括使用光电、电池、太阳能燃料和化学品、燃料电池以及其他新兴技术.发展可再生绿色能源的转换技术对优化能源结构具有重大意义.这些技术的一个共同问题是,研究人员仍然需要进行额外的材料开发,以提高经济可行性.一些研究人员已经转向计算模拟来帮助材料筛选和开发.

现今计算机技术和各种信息学工具的发展为加快新材料模拟和性能预测提供了新的机会.面临着智能制造行业和经济的飞速发展,越来越多研究人员将以更短的时间、更低的成本缩短新型材料从发现到生产应用的研究使用周期.

人类基因组计划是结合已知的基因数据,用可拓展的理论去模拟未知的基因组合.新材料的发现过程与这种情况相似,通过高性能的计算方式,去发现更多的我们还未发现的材料,同时利用高通量的数据处理方式,为新材料的发现以及生产设计提供更广阔的数据基础,扩大了模型的筛选模式,减少了研发周期和性能测试时间和纠错时间,为新材料的研究趋势贡献新的力量.

在材料学、计算科学等领域,会经常运用第一性原理,与“试错法”相比,第一性原理计算方法的优势十分明显,它能够确定表面弛豫、吸附等.对比实验研究,第一性原理计算能加快人们提出合理实验方案的速度.随着电子信息技术的高速发展,第一性原理计算,在材料模拟计算方面有了很大的进步,第一性原理计算已经成为计算材料科学的重要基础和核心内容[2].

研究人员采用密度泛函理论(DFT)来预测析氢反应的电催化性能[3].DFT 还用于预测电池电解液稳定[4],DFT 和分子动力学(MD)用于预测材料的光学带隙[5-6].当遇到搜索空间逐步增大的情况,这些模拟的设置在计算上可能是昂贵的和耗时的.所以许多研究人员已经开始构建或使用信息科学工具,如工作流管理器、数据库或代理模型来加速他们的材料开发.这些类型的信息工具在软件工程领域很丰富,但在材料模拟计算领域却不常见.

晶体材料的大范围筛选并非一件容易的事情.有些方法通过关注有限的搜索空间来解决这个问题,比如双金属A、B 晶体[7]或简单的立方晶格金属间化合物[8].其他的方法还包括建立电子结构计算的数据库[9-10].大量的数据集对于进行稳健的筛选研究是必要的,但创建这些数据库需要数十位DFT 专家的合作.这种方法的结果是,研究人员花费了大量的时间配置、管理和等待DFT 计算,这本身就是一种耗时的工作.配置和管理DFT计算的人员成本已经通过创建基于计算机科学的解决方案得到了有效解决.

信息学和数据科学工具在材料模拟计算研究中的应用不断增加,彻底改变了材料发现的方法.

在本文中我们首先讨论了计算机软件工具如何增强和改善材料筛选和发展,并实现了工作流、数据库和Docker 容器的组合.然后我们描述了一种框架GASpy,GASpy框架可以跨多个计算集群进行密集型计算.这些解决方案对于进行高通量材料筛选是至关重要的,它使用动态依赖图来共享、组织和调度计算,以实现表面科学中新的、灵活的研究工作流,该框架可以用于金属间化合物表面的大规模材料计算以发现电化学催化剂.最后,我们在天河一号上利用此高通量模拟计算框架对从材料数据库中获取的晶体结构数据进行了模拟实验.验证了该框架在解决实际问题中的可行性.

1 信息学工具

1.1 数据库

计算机科研工作者经常共享数据,以避免执行冗余计算,在过去,我们只是简单地将结果存储在共享计算机资源的文件系统中,然后报告文件的位置,以便协作者手动搜索和解析数据.该方法简单灵活,但随着数据量大,耗时长,它会变得难以处理.这种方法还要求我们的合作者拥有与我们相同的计算资源,这对其他研究团队,特别是实验人员来说是一个障碍.计算机和材料计算领域的科学家通过创建包含底层数据的新格式或创建数据集来解决这个问题,这些数据库允许我们系统地存储和共享数据.使用数据库还可以减少材料计算领域的科研工作者冗余的计算.

在材料模拟中使用数据集的例子有很多.一个广泛使用的数据库工具是原子仿真环境(ASE)中的数据库模块,此模块是开源的.它将仿真结果作为ASE 原子对象存储在自定义SQL 模式中[11].许多计算材料库中收集了用于小型计算的此类数据库示例[12].ASE 原子对象也可以存储在灵活的Mongo 模式中,使用开源的Vasp 模块[13]或更专门的开源pymatgen-db 模块[14].其他大型数据库的例子包括但不限于OQMD[15]、The Materials Project[16]、Aflow⁃lib[17]、和NOMAD.随着数据量的增大,数据如何存储和检索将成为难题,由于大量的材料数据产生,机器学习已经成为一个主要的数据挖掘的工具.OQMD、AFLOW 和NOMAD 等数据库中均引入了机器学习算法,加速材料知识的挖掘.

在材料模拟计算领域中数据库的大量使用,以及减少合作数据共享的障碍,极大地加速了材料的发现.数据库是复杂的系统,最终用户需要经过培训才能正确地填充、查询和管理数据库.在大多数情况下,不存在一致的API 或方案来跨数据库访问信息或计算,这在很大程度上是由计算类型、理论级别和材料类型所导致的,Citrination[18]等商业机构试图解决在API领域的挑战.

1.2 工作流管理

材料计算通常使用成熟或衍生的方法进行迭代研究,例如计算数千种材料晶体的形成能或利用Vasp 计算势能面.每个计算都需要研究人员配置和管理,而重复配置数十次、数百次或数千次所需的时间有时会成为这些研究的限制因素.工作流管理器(WFMs)协调并自动化处理这些常见的任务,使研究人员可以花更多的时间在研究上,用更少的时间执行重复的任务.

其中最成熟的一套WFMs 是由管理材料项目的一个团队开发的.他们的WFMs 包括Python Materi⁃als Genomics(Pymatgen)、FireWorks、[19]Custodian 和Atomate.[20]Pymatgen 是用于材料分析的开源Python库;它有可用的分析工具,如相图生成器或吸附位置图.FireWorks 是一种跨多个计算集群管理计算的软件,在计算机科学界被称为pilot abstraction.它为数据驱动的科学计算提供了广泛的支持,例如故障检测和重复消除、长时间运行的项目报告和动态工作流.Fireworks的工作流主要由三个部件组成:

1.Firetask 是一个原子计算工作,可以调单个shell脚本或定义单个Python函数.

2.一个FireWork 是用json 格式的文件定义的,包含引导作业所需的所有信息,例如有Firetask 顺序执行的数组,由于json 文件的灵活性,用户可以轻松地设计各种功能参数.

3.一个工作流Workflow 是一组FireWorks,彼此之间存在着依赖关系,运行两个子FireWorks,需要一个父FireWork完成并产生输出.

FireWorks 工作流还支持工作优先级的分配,例如我们有两个工作流,每个任务有两个步骤,我们希望在工作流B 之前将A 运行完成,我们可以遵循曲线所示的深度优先方向来运行,也可以选用广度优先方向运行.这些都可以通过调用lpad 工作板执行相应的命令做到.以上实例如图1-2所示.

图1 深度优先工作流Fig.1 Depth-first workflow

Atomate构建在Pymatgen、FireWorks和Custodian之上,它为材料科学应用程序提供了许多预构建和可定制的工作流.一旦安装和学习了这些工具,执行大量的计算就变得容易得多,一致地执行它们也变得更加自然.除了材料项目团队开发的WFMs 之外,还存在其他WFMs,并且对于补充许多其他大型数据库系统是必要的.这些WFM 工具的主要缺点是它们需要时间来创建和实现,这可能会导致研究人员无法等待工作流管理器为其构建用例.

图2 广度优先工作流Fig.2 Breadth-first workflow

1.3 计算机软件工具的结合

WFMs 可以与DB 结合.例如:材料项目利用其超级计算资源和工作流工具,如Custodian 和Fire⁃Works,对大量材料的数百万相关计算执行数据处理和分析.AiiDA 是另一个同时管理数据和计算的基础设施[21].这种数据库和工作流管理的结合帮助研究人员创建和共享大量数据,同时避免重复计算.然而,这样的框架需要相对大量的代码和数据维护.

图3 将各种计算机软件工具有机的组合起来,为我们构建GASpy框架搭建了软件基础.

图3 材料模拟计算任务管理框架Fig.3 Material simulation calculation task management framework

Task Entity 是FireWorks 中已经准备好等待计算的任务(我们称为make fireworks)

Job Entity 是FireWorks 中已经开始执行计算的任务(我们称为rlaunch)

2 GASpy框架

前面提到的数据库/工作流管理框架主要是为了实现工作流的自动化,然后将其应用到许多系统中.这在功能上不同于标准的、手动的、专家驱动的方法.如果一个专家想要计算一个新系统的属性,他们通常首先向团队成员或合作者询问前提数据,然后检查系统文件夹以获取数据.然后他们提交最小的一组计算来填补知识的空白.这种专家驱动的方法更加灵活,因为只要前提数据存在,无需考虑数据来源或方法,就可以使用数据.当然,这种方法需要专家验证计算上下文的准确性.

对于实际的科学探索,我们需要一个与专家驱动的方法更紧密结合的框架,因此我们搭建了一个GASpy(Generalized Adsorption Simulator for Py⁃thon)[22].GASpy 是一个开源框架,它将各种工作流管理包与数据库软件结合起来,并可以创建一个DFT 模拟和结果的“智能数据库”.用户可以查询这个数据库,它将返回已经存储的相关结果.智能数据库的框架是围绕任务构建的,这些任务可以动态组合到各种管道中执行不同计算的操作.

GASpy 通过建立一组任务来计算被吸附物和催化剂表面之间的吸附能.我们将这些任务与各种工作流管理器和数据库软件相结合.有些任务依赖于其他任务,在表面上的任何吸附位点可以被识别之前,需要从一个晶体中枚举一个表面.这种任务相互依赖由Luigi[23]软件包管理,该软件包通过为用户管理任务先决条件和相互依赖关系来简化任务执行.所有需要DFT 弛豫的Luigi 任务都是通过FireWorks执行的.

我们使用MongoDB数据库存储我们所有DFT的结果,即用户信息、计算任务的工作流、用户的数据权限以及计算结果.Mongo 数据库可以实现用户和数据库的交互式使用,方便用户查询,处理数据库中的数据.在材料科学中,不同种类的材料所关注的属性差别较大,如果采用传统的关系型数据库则需要为每种类别材料建立一张数据库表,这样不但会增加开发维护成本,而且不利于对用户提供统一的数据查询入口,增加了系统使用的复杂性.因此GASpy框架的数据库系统建立在MongoDB 基础上,充分利用“无模式”的特点,将所有材料类别统一存储管理,并为用户提供统一的查询入口.

图4 展示了MongoDB 数据库对于材料模拟计算方便的功能.

图4 Mongo数据库Fig.4 Mongo database

我们可以很容易地创建新的任务,使用从材料模拟计算得到的中间DFT 结果来填充表面能数据库,而无需解析吸附能结果.这种从中间数据中分离结果的做法允许我们将旧数据用于新的目的,同时最大限度地减少数据处理和分析时间.

GASpy 的工作流管理和数据库框架为材料模拟计算提供了各种好处.GASpy 继承了工作流管理框架的主要优点:减少了执行计算的开销.传统的工作流程包括对研究人员进行几周或几个月的培训,然后要求他们花几个小时或几天的时间管理成百上千的DFT 弛豫.GASpy 只花几分钟来查询和排队进行任意数量的DFT 弛豫.GASpy 还继承了数据库的主要优点:计算集中在一起,从不重复.这意味着一个用户排队的单个裸露表面弛豫将被所有其他用户在计算该表面上的吸附能量时使用.

GASpy 框架可以Docker 在集群上部署,Docker包含了代码运行的基础环境,可以在容器内模拟材料计算,避免了因为大规模的计算而导致的服务器崩溃的问题.

GASpy 工作流的有向无环图形式如图5 所示.每个盒子都是一个任务,所有任务都由Luigi 管理.任务的形状表明Luigi 使用哪个工具来执行任务.触发任何单个任务都会导致Luigi 触发所有必要的上游任务.因此,在数据库中查询特定位点的吸附能将自动触发之前未完成的任务.我们采用圆角矩形表示Pthton 工具,剪去单角的矩形表示FireWorks 工具,矩形表示Mongo 工具,剪去对角矩形表示Pymat⁃gen工具.

图5 GASpy工作流Fig.5 GASpy workflow

GASpy 的框架存在一些缺陷.对于少量的计算,构造基础设施然后使用它所需的时间比简单地手动执行和分析结果所需的时间要长.因此,当基于已建立的计算工作流时,创建和使用类似GASpy 的框架是有效的,但当基于未建立的计算工作流时并非有效.这个缺点是框架固有的,是不可避免的.GASpy还有其他一些缺点,例如:GASpy 没有自动处理错误的方法.如果DFT 弛豫因为服务器崩溃而失败,那么用户必须重新在GASpy 上请求弛豫,或者如果DFT 弛豫因为无法收敛而失败,那么用户必须提交另一个查询来指定不同的DFT 设置并重新请求弛豫.

3 GASpy示范案例

本文在国家超级计算长沙中心的天河一号上基于GASpy 框架进行了材料模拟,我们模拟了mp-1006883 的晶体CONi,计算了弥勒指数为1 的晶面吸附氢氧根的吸附能.

3.1 实验设置

为了验证系统的可用性,本次实验在GASpy 框架上进行了CONi晶体的结构推演仿真模拟.为了简单起见,本次任务用Luigi工作流方式批量产生CONi弥勒指数为1 的晶面所有吸附点,总共有25 个不同吸附位置,这些数据都存放在Mongo 数据库里面.再利用FireWorks 批量对这些吸附模型产生待提交的任务,并根据当前的可用节点情况执行任务.我们从材料网站上获得了745个计算模型,图6展示了Fire⁃Works工作流的作业状态.

图6 部分计算模型的作业Fig.6 Partial calculation model job

然后对这些模型进行了优化,优化后可以得到吸附能结果.这些结果都存储在Mongo数据库中.图7展示了Mongo数据库中的数据格式.

图7 数据库中的吸附能计算结果Fig.7 Calculated results of adsorption energy in the database

我们的天河集群配置如表1所示.

表1 天河一号集群配置Tab.1 Tianhe No.1 cluster configuration

我们在天河一号集群上进行测试的并行节点有27 个,图8 展示了我们在天河一号上的节点设置情况.

图8 天河一号节点设置Fig.8 Tianhe-1 node setting

整套过程中我们都是利用FireWorks 工作流产生任务并执行计算.我们可以利用FireWorks 的lpad工作板在添加FW 工作流后利用命令行设置工作优先级,取消、删除已经执行的工作流,重新启动工作流,重置失败的工作流.

3.2 实验结果

CONi吸附能结果如表2所示.

表2 CONi吸附能结果Tab.2 CONi adsorption energy results

该案例利用计算机科学软件工具,针对不同吸附点产生了批量任务,并利用超级计算机对任务进行了模拟计算,这些科学工具能够管理不同任务之间的关系,因此是用来测试基于信息工具就可以改善和增强材料筛选的问题的一个很好案例.

4 结论

随着各种计算机软件工具的发展,使得大规模材料模拟计算变得更为方便,并且广泛应用于电催化领域,高效地加速了催化剂的发现,有效的解决了能源问题.这些工具有不同的优点和缺点,充分利用这些工具可以大大补充和加速现有的研究工作流程,提高科研人员的工作效率.本文结论如下:

1)本文分析总结了各种信息学软件工具在材料筛选和电催化领域的发展,并将数据库与工作流软件进行结合,为构建模拟计算环境搭建了基础.

2)我们在天河一号集群上搭建了GASpy 框架,它可以连续地生成和存储DFT 数据,不需要用户干预,实现了计算机软件成功应用于材料和催化领域.

3)我们率先采用最新的GASpy 框架在天河一号上面计算晶体CONi 弥勒指数为1 的晶面吸附氢氧根的吸附能,结果表明了结合工作流和数据库等计算机软件可以更加灵活高效地实现大规模自动化的DFT材料模拟计算.

猜你喜欢
模拟计算框架工具
R1234ze PVTx热物性模拟计算
有机框架材料的后合成交换
框架
波比的工具
波比的工具
准备工具:步骤:
“巧用”工具
民用飞机APU舱门蒙皮结构对排液的影响分析
计算模拟在化工原理精馏实验教学中的运用
关于原点对称的不规则Gabor框架的构造