CN111710376B 有效 大分子及团簇体系分块计算负载均衡方法及系统
技术领域 [0001]本发明涉及计算化学、高性能计算、大分子及团簇体系的计算与模拟领域,具体为一种基于人工智能和化学信息学的大分子及团簇体系分块计算负载均衡方法及系统。 背景技术 [0002]对生物分子、有机材料分子等大分子及团簇体系的相关性质的研究所建立的新概念、新理论和新方法,大大拓展了人们对物质世界认识的深度和广度,为理解生命现象、能量转化、环境保护以及寻找与设计新材料提供了重要的基础。目前,受到计算条件及计算时间的限制,传统的量子化学从头算方法(ab initio)还无法直接用于计算大分子及团簇体系的性质,因此,模拟大分子体系的性质主要还是依靠经验性的分子力场以及参数化的半经验模型方法。然而,分子力场、半经验模型的缺陷如缺乏精确电子结构图像,这是大家众所周知且一直以来都在讨论和持续改进的一个问题。 [0003]传统的量子力学方法,包括以Hartree-Fock(HF)方法为基础的从头算方法和密度泛函理论(density functional theory,DFT),能够对中小尺寸的体系给出较为准确的描述,由于这些方法的标度很高,很难推广到大体系的计算。如HF和DFT方法的计算标度是N3~4(这里N是能够表示体系尺寸大小的量,如电子数),电子相关方法的话计算标度会更高。为了使得严格而精确的量子力学方法能够应用到生物大分子、溶液分子等体系,在过去的二十多年里人们做出了很多努力,发展了各种线性标度及分块的量子化学方法。在各种方法中,分块方法己经越来越受到大家的欢迎,因为其精度较高、实现也较为简单,而且其计算量随着分子体系的増大近似可呈线性増加。 [0004]分块方法是基于分子局部的物理化学性质主要受分子局部结构影响的规律提出的。在此规律下面,可将一个大分子体系按照一定的方法分成一系列的分子碎片,对于每一个分子碎片,可用量子化学方法来计算能量及波函数性质,最后大分子的能量、波函数等性质就可通过加合每一个分子碎片的性质来描述。分子分块方法作为一种实用有效的手段,不仅是因为它的计算时间近似是线性标度的,而且它可以很方便地利用现有的量子化学计算软件,易于并行计算,从而可实现较髙理论水平上的全体系量子化学计算。在过去的几十年里,已经有很多分块方法发展出来,包括分块分子轨道(FMO)方法、分子碎片共轭帽(MFCC)方法、系统的分块法(SFM)、可调整的密度矩阵组装法(ADMA)、分子裁剪法(MTA)、广义的基于能量的分块(GEBP)方法、静电嵌入的多体展开理论(EEMB)、显式的极化势(X-Pol)方法及自动化分块的量子力学和分子力学(AF-QM/MM)方法等等。这些方法的出现极大地提高了量子化学理论计算大分子体系性质的效率。而且由于分块方法本身的特性,它可以很容易地实现大规模的并行计算,使得计算时间不再受体系大小的限制,而是取决于计算机处理器的数量。因此可以说,分块方法突破了传统的量子化学计算受分子体系大小限制的瓶颈,实现了各种理论水平上的高效计算。 [0005]与此同时,当前的分子分块方法的侧重点仍然在分块方法的开发方面,对于该方法在大规模并行集群的效率优化方面鲜有报道。由于分片方法普遍采用“先分块,再计算”的计算策略,导致在计算前需要设定各个分子片需要的计算资源,通常研究人员会依据各分子片中的原子数目、原子类型等预估每个分片所需要的计算资源及可能的计算时长。根据的计算经验,越是偏向于实际的分子体系,其分块后的分子片越不规律,也越难以预估其所需要的计算资源及可能的计算时长。因为,现有的分块计算策略在处理实际的大分子计算的时候,往往会存在计算资源分配与分子片实际需要不匹配,以致短板效应明显并拖累并行效率。 发明内容 [0006]针对现有的分块计算策略在处理实际的大分子计算中并行效率低下等实际问题,本发明提出了一种基于人工智能和化学信息学的大分子及团簇体系分块计算负载均衡方法,利用机器学习结合化学信息学的手段,对每个分块后的分子片给出预测的计算量,在此基础上智能地分配每一个分子片计算所使用的计算资源(如核心数、线程数),来达到平衡整体计算的负载,提高计算效率的方法。 [0007]为实现上述目的,本发明采用以下技术方案: [0008]一种大分子及团簇体系分块计算负载均衡方法,包括以下步骤: [0009]选取若干种已知结构的分子的收敛策略、泛函和基组作为训练数据,来训练机器学习模型:随机森林(RF)模型、双向长短期记忆网络(Bi-LSTM)模型、消息传递神经网络(MPNN)模型和多层图卷积神经网络(MGCN)模型中的一个或多个; [0010]将待预测分子的分子及其分子片的结构信息、收敛策略、泛函和基组作为输入信息,输入到机器学习模型中,来预测计算机时,包括: [0011]将分子及其分子片的结构信息和基函数数目输入到RF模型中进行预测; [0012]将独热形式的分子及其分子片的结构信息和基函数数目输入到Bi-LSTM模型中进行预测; [0013]将分子及其分子片的结构信息输入到MPNN模型中进行预测; [0014]将分子及其分子片的结构信息输入到MGCN模型中进行预测; [0015]根据上述计算机时数据,采用线性规划模型对各个分子片需要的算力进行统筹规划,该线性规划模型的约束条件是计算集群的核心和线程总数目,目标函数为各个分子片所需的实际计算时间尽量接近。 [0016]一种大分子及团簇体系分块计算负载均衡系统,包括: [0017]输入模块,负责将待预测分子的分子及其分子片的结构信息、收敛策略、泛函和基组作为输入信息进行输入; [0018]预测模块,包括机器学习模型:RF模型、Bi-LSTM模型、MPNN模型和MGCN模型中的一个或多个;负责选取若干种已知结构的分子的收敛策略、泛函和基组作为训练数据,来训练机器学习模型,然后将输入信息输入到机器学习模型中来预测计算机时;其中,RF模型根据分子及其分子片的结构信息和基函数数目进行预测,Bi-LSTM模型根据独热形式的分子及其分子片的结构信息和基函数数目进行预测,MPNN模型根据分子及其分子片的结构信息进行预测,MGCN模型根据分子及其分子片的结构信息进行预测; [0019]线性规划模块,负责根据计算机时数据,采用线性规划模型对各个分子片需要的算力进行统筹规划,该线性规划模型的约束条件是计算集群的核心和线程总数目,目标函数为各个分子片所需的实际计算时间尽量接近; [0020]输出模块,负责接收线性规划模块的规划结果,并将结果输出和保存。 [0021]本发明方法的优点在于:本方法沿用分片方法中流行的“先分块,再计算”的计算策略,对于分块后的各个分子片,采用化学信息学及机器学习的手段,预估各个分块所需要的计算资源及计算机时,再辅以线性规划的优化方案,使各个分子片在优化的方案下可以达到尽可能接近的实际计算时间,以平衡整个计算过程中的计算负载,最大化硬件的利用效率。 附图说明 [0022]图1是展示了智能预测系统的整体架构图。 [0023]图2是RF的模型结构图。 [0024]图3是Bi-LSTM的模型结构图。 [0025]图4是MPNN的模型结构图。 [0026]图5是MGCN的模型结构图。 具体实施方式 [0027]为使本发明的技术方案能更明显易懂,特举实施例并结合附图详细说明如下。 [0028]本方案可划分为四个主要的模块:输入模块、预测模块、线性规划模块、输出模块,整体流程架构如附图1所示。各个模块简述如下: [0029](1)输入模块 [0030]该模块负责接收输入的大分子整体信息、所有的分子片信息。具体包括分子及其分子片的结构文件、计算策略(计算方法,包括但不限于泛函和基组的组合)、收敛策略(例如准牛顿方法、最陡下降法)。输入模块将这些信息传递给预测模块。 [0031](2)预测模块 [0032]该模块主要负责预测各个分子片所需要的计算机时。这部分可以使用自主开发的基于化学信息学及多种机器学习模型的计算量预测模块。该模块内建多种机器学习模型,分别是:随机森林+前馈神经网络模型(random forest with feedforward neuralnetworks,简称RF)、有注意力机制的双向长短期记忆网络模型(bi-directional longshort term memory with attention,简称Bi-LSTM)、消息传递神经网络模型(messagepassing neural network,简称MPNN)、多级图卷积神经网络模型(multi-level graphconvolutional neural network,简称MGCN),根据需要选择哪一种或几种模型。选取若干种给定的分子的收敛策略、泛函和基组的组合,针对每种组合训练机器学习模型,并封装于预测模块中。这四种机器学习模型可以根据分子结构、基函数数目预测出可靠的计算机时。 [0033]四种模型的原理如下所述: [0034]a.RF模型的结构如图2所示,其计算过程可分为输入、预处理、分类、拟合、输出五阶段。在输入阶段,模型接收分子的SMILES编码和基函数数目(记为x)。在预处理阶段,基于分子的SMILES编码,统计出分子中的原子数、支链数、支链上原子数、环数、环上原子数、双键数,将这些信息拼接成一个表示分子结构特征的向量,并送入随即森林分类器。在分类阶段,随机森林分类器会给出输入的分子结构分别属于五种典型结构(线性结构、支链结构、环状结构、直链烯烃结构、聚苯结构)的概率(分别记为PL,PD,PR,PA,PP)。在拟合阶段,使用预训练的五个前馈神经网络模型(分别对应五种典型结构)基于基函数数目分别预测出时间(记为fL(x),fD(x),fR(x),fA(x),fP(x))。最后,模型输出的预测结果为y=PLfL(x)+PDfD(x)+PRfR(x)+PAfA(x)+PPfP(x) [0035]b.Bi-LSTM模型的结构如图3所示,可分为五个层次。首先是输入层,该层接收独热(one-hot)形式的SMILES编码和基函数数目作为输入,SMILES编码被送入词嵌入(WordEmbedding)层。在词嵌入层,使用word2vec算法预训练一个权重矩阵(称为词嵌入,记为W),利用词嵌入将独热形式的SMILES编码转化为实数向量,并送入双向LSTM层(一层前向LSTM层,一层后向LSTM层)。双向LSTM层提取出SMILES中包含的高级结构特征,得到前向和后向两个输出向量(记为Hf和Hb)。接下来是Attention层,该层接收LSTM层输出向量之和作为输入(记为H,H=Hf+Hb),Attention层的输出记为向量c, [0036]c=HaT [0037]a=softmax(wTtanh(H)) [0038]最后是输出层,将Attention层的输出c和基函数数目x一起送入全连接网络进行拟合,得到最终的预测计算机时。 [0039]c.MPNN模型的结构如图4所示,其计算过程可分为输入、预处理、消息传递、读出、输出五个阶段。在输入阶段,根据分子及其分子片的结构信息将分子建模为图的形式(记为G),模型的输入包括G的顶点向量(记为xv)集合和边向量(evw)集合。每个顶点向量的分量保存该顶点对应原子的原子类型、是否在芳环上以及杂化类型,每个边向量保存这条边对应的化学键的类型。在预处理阶段,xv通过一层网络(称为“顶点网络”)被转化为n×d维的矩阵(称为“点嵌入”),其中n是顶点数目,d是顶点网络隐藏层节点的维度。消息传递阶段对点嵌入执行T次卷积操作,第t次的卷积操作由消息函数Mt和顶点更新函数Ut来定义,顶点v的隐状态由“消息”来更新。因此,消息传递阶段所执行的操作可以归纳为: [0040] [0041] [0042]其中,N(v)表示顶点v的邻域,Mt定义为M(hv,hw,eew)=A(evw)hw,w表示顶点,hw表示顶点w的隐状态,A(evw)是一个网络(称为“边网络”),evw表示顶点v和w连结成的边向量,将边向量evw映射为d×d的矩阵(称为“边嵌入”)。顶点更新函数Ut的具体形式是门控循环单元(gated recurrent unit,GRU)。在读出阶段,利用读出函数(readout function)R来得到图G的高层特征表示 [0043] [0044]其中R是set2set模型。在输出阶段,将和基函数的数目一起送入全连接网络进行拟合,得到预测的计算机时。 [0045]d.MGCN模型的结构如图5所示,其计算过程亦可分为输入、预处理、消息传递、读出、输出五个阶段。在输入阶段,根据分子及其分子片的结构信息将分子建模为图的形式(记为G),模型的输入包括G的顶点向量(记为a0)集合和和边向量(e)集合。每个顶点向量的分量保存该顶点对应原子的原子类型、是否在芳环上以及杂化类型,每个边向量保存这条边对应的化学键的类型以及键长。在预处理阶段,由嵌入层将顶点向量集合和边向量集合转化为顶点嵌入以及边嵌入同时,径向基函数(radialbasis function,RBF)层将键长转化为距离张量D的分量dij代表原子i和j之间的距离。在消息传递阶段,交互层(interaction layer)被构建为层级结构的形式,目的是模拟原子之间的量子相互作用,记第l层交互层输出的边状态为顶点状态为则: [0046] [0047] [0048]其中,N表示所有分子体系中所有的分子,dij表示原子i和j之间的距离;he是边状态更新函数,hv是顶点状态更新函数,he的具体形式为: [0049] [0050]其中,η是一个常量,此处设为0.8,Wue是一个权重矩阵,代表逐元素相加而⊙代表逐元素相乘。hv的具体形式为 [0051] [0052]其中,v为图中表示原子的顶点,u为作为辅助的高斯径向基(Radial BasisFunction)里面的点,是用来辅助表示空间性质的参量;f表示函数,fa、fd、fe分别表示有关顶点、距离、边的函数;M(x)代表一层线性网络,为全连接层,其形式为M(x)=Wx+b,W是权重矩阵,x表示W后小括号中内容,b表示常数项,优化时b会被自动调整。之后,将T个交互层的输出与初始的顶点状态拼接起来,得到向量ai。之后,在读出阶段产生图G的高层特征表示g: [0053] [0054]式中,r表示MGCN模型最后的readout层里的权重矩阵,在模型训练过程中会自动优化;σ代表softplus函数,为激活函数。在输出阶段,将高层特征表示g和基函数数目一起送入全连接网络进行拟合,得到预测的计算机时。 [0055](3)规划模块 [0056]该模块主要依据预测模块提供的计算机时数据,对各个分子片需要的算力进行统筹规划。当前规划模块采用的为线性规划模型,其中约束条件是高性能计算集群的核心、线程总数目,目标函数为各个分子片所需的实际计算时间尽可能接近。 [0057](4)输出模块 [0058]输出模块接收规划模块传来的规划结果,并将结果输出保存。输出模块内置多种应用程序接口,可以直接输出程序执行脚本,供集群管理系统的相关组件调用。 [0059]本实施例的大分子及团簇体系分块计算负载均衡方法可由python语言实现,系统支持SDF、mol等多种格式的分子文件或量子化学程序执行文件作为输入。此外,在输入时还需指定整体计算所采用的泛函和基组类型。基组类型确定后,系统借助Basis SetExchange量子化学数据库提供的信息计算各个分子片的基函数数目,并结合内置的模型提供预测的计算机时,并以此规划出优化的算力分配方案,保存备用或直接进行任务提交。预测模块涉及RF、Bi-LSTM、MPNN和MGCN等多种机器学习的训练和使用。其中RF模型的随机森林分类器使用scikit-learn模块实现,五种前馈神经网络使用tensorflow深度学习框架实现。Bi-LSTM、MPNN和MGCN模型全部使用pytorch深度学习框架实现。 [0060]以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,本发明的保护范围以权利要求所述为准。
现在,一起体验智慧芽的产品和服务
自动注册,无需人工审核,即可立即开始查询专利
立即注册
澳门正版图库

AI助手