掌桥专利:专业的专利平台
掌桥专利
首页

共价键计算任务分配方法、装置、介质及设备

文献发布时间:2024-04-18 20:02:18


共价键计算任务分配方法、装置、介质及设备

技术领域

本发明涉及分子动力学模拟领域,特别涉及一种共价键计算任务分配方法、装置、介质及设备。

背景技术

分子动力学模拟的计算复杂度高、计算任务量庞大,加速计算需要使用专用处理器并行协同计算。

相关技术中,对线性简单分子的共价键计算任务可以进行均匀切片法划分,对包含支链的非线性分子的共价键计算任务可以按结构分类进行划分处理。其中,切片法是将一个分子的共价键计算任务列表合并,然后切分成多个比较均匀的片段,根据每个片段原子的空间位置将片段对应的计算任务分配到计算单元。分类法是根据一个分子的结构特点,将分子中的线性和非线性片段分别从任务列表中挑出,并用不同方法分别处理分成多个片段,对应任务分配到多个计算单元。切片法对线性分子分配效果较好,但无法完成具有支链结构的非线性分子的共价键计算任务划分。分类法对一般非线性分子效果较好,但对各条支链的线性程度要求较高,遇到复杂链结构无法完成任务划分。

切片法和分类法这两种方案,使得一般线性单链分子和具有支链的一般非线性分子能够满足该处理限制要求,能够在该处理器上进行加速计算。在实际计算中,发现部分生物分子的结构更复杂,遇到一些成环或者成树状结构的情形在划分计算任务时依然会撞处理器的任务墙,无法使用该处理器加速计算。

发明内容

为了解决现有技术的问题,本发明实施例提供了共价键计算任务分配方法、装置、介质及设备。所述技术方案如下:

第一方面,提供了一种共价键计算任务分配方法,所述方法包括:

获取二面角列表和偏离平面角列表,其中,共价键的类型包括键、键角、二面角、偏离平面角,所述二面角列表包括二面角涉及的原子和所述二面角的参数信息,所述偏离平面角列表包括偏离平面角涉及的原子和所述偏离平面角的参数信息;

将所述二面角列表和所述偏离平面角列表进行合并,得到目标列表;

从所述目标列表中确定初始线性共价键和初始非线性共价键;

确定是否需要进行补充筛选,若需要进行补充筛选,则确定补充非线性共价键;

将所述初始非线性共价键和所述补充非线性共价键作为目标非线性共价键,将所述目标列表中除所述目标非线性共价键外的共价键作为目标线性共价键;

将所述目标非线性共价键划分到至少一个非线性容器中,将所述目标线性共价键划分到至少一个线性容器中,其中,所述非线性容器中存放有所述目标非线性共价键以及所述目标非线性共价键涉及的原子,所述线性容器中存放有所述目标线性共价键以及所述目标线性共价键涉及的原子;

根据原子被划分到的容器数量,确定特异原子,并对所述特异原子被划分到的容器进行合并,以使所述特异原子被划分到的容器数量小于或等于预设数量阈值;

将每一容器分别分配至不同的计算单元,以由所述计算单元对容器中的原子进行处理。

可选地,所述将所述二面角列表和所述偏离平面角列表进行合并,包括:

针对所述偏离平面角列表中的每一所述偏离平面角,执行如下步骤:

分别确定所述偏离平面角与各个二面角的公共原子数量;

将所述公共原子数量作为所述偏离平面角与对应二面角之间的相关性;

根据最大相关性,确定所述偏离平面角在所述二面角列表中的合并位置信息,

根据所述合并位置信息,将所述偏离平面角合并至所述二面角列表中。

可选地,所述从所述目标列表中确定初始线性共价键和初始非线性共价键,包括:

针对所述目标列表中的每一共价键,确定所述共价键中是否存在满足如下条件的两个原子:两个原子的ID之差的绝对值大于第一预设阈值;

若存在,则确定所述共价键为强相关共价键,若不存在,则确定所述共价键为弱相关共价键;

将所述强相关共价键中的原子作为连接原子,将所述弱相关共价键中除所述连接原子外的其他原子作为常规原子;

针对每一所述连接原子,若该连接原子属于多个强相关共价键,则确定该连接原子为非线性原子;

将所述目标列表中除所述非线性原子外的原子,作为线性原子;

将含有所述非线性原子的共价键,确定为所述初始非线性共价键;

将仅包含有所述线性原子的共价键,确定为所述初始线性共价键。

可选地,所述确定是否需要进行补充筛选,包括:

遍历所述初始线性共价键,确定所述初始线性共价键中是否存在满足如下条件的两个原子:两个原子的ID之差的绝对值大于第二预设阈值;

若存在,则确定需要进行补充筛选。

可选地,所述确定补充非线性共价键,包括:

遍历所述初始非线性共价键涉及的每一原子,确定该原子在所述初始非线性共价键构成的列表中出现的次数,若所述次数大于预设次数阈值,则将该原子作为补充非线性原子;

根据所述补充非线性原子,确定所述补充非线性共价键。

可选地,所述根据所述补充非线性原子,确定所述补充非线性共价键,包括:

确定含有所述补充非线性原子的所述初始线性共价键;

将含有所述补充非线性原子的所述初始线性共价键,确定为所述补充非线性共价键。

可选地,所述根据原子被划分到的容器数量,确定特异原子,包括:

在原子被划分到的容器数量大于所述预设数量阈值的情况下,将该原子确定所述特异原子。

第二方面,提供一种共价键计算任务分配装置,所述装置包括:

列表获取模块,用于获取二面角列表和偏离平面角列表,其中,共价键的类型包括键、键角、二面角、偏离平面角,所述二面角列表包括二面角涉及的原子和所述二面角的参数信息,所述偏离平面角列表包括偏离平面角涉及的原子和所述偏离平面角的参数信息;

列表合并模块,用于将所述二面角列表和所述偏离平面角列表进行合并,得到目标列表;

第一确定模块,用于从所述目标列表中确定初始线性共价键和初始非线性共价键;

第二确定模块,用于确定是否需要进行补充筛选,若需要进行补充筛选,则确定补充非线性共价键;

第三确定模块,用于将所述初始非线性共价键和所述补充非线性共价键作为目标非线性共价键,将所述目标列表中除所述目标非线性共价键外的共价键作为目标线性共价键;

容器划分模块,用于将所述目标非线性共价键划分到至少一个非线性容器中,将所述目标线性共价键划分到至少一个线性容器中,其中,所述非线性容器中存放有所述目标非线性共价键以及所述目标非线性共价键涉及的原子,所述线性容器中存放有所述目标线性共价键以及所述目标线性共价键涉及的原子;

容器合并模块,用于根据原子被划分到的容器数量,确定特异原子,并对所述特异原子被划分到的容器进行合并,以使所述特异原子被划分到的容器数量小于或等于预设数量阈值;

分配模块,用于将每一容器分别分配至不同的计算单元,以由所述计算单元对容器中的原子进行处理。

可选地,所述列表合并模块,用于:

针对所述偏离平面角列表中的每一所述偏离平面角,通过如下子模块进行列表合并:

数量确定子模块,用于分别确定所述偏离平面角与各个二面角的公共原子数量;

相关性确定子模块,用于将所述公共原子数量作为所述偏离平面角与对应二面角之间的相关性;

位置确定子模块,用于根据最大相关性,确定所述偏离平面角在所述二面角列表中的合并位置信息,

列表合并子模块,用于根据所述合并位置信息,将所述偏离平面角合并至所述二面角列表中。

可选地,所述第一确定模块,包括:

第一确定子模块,用于针对所述目标列表中的每一共价键,确定所述共价键中是否存在满足如下条件的两个原子:两个原子的ID之差的绝对值大于第一预设阈值;

第二确定子模块,用于若存在,则确定所述共价键为强相关共价键,若不存在,则确定所述共价键为弱相关共价键;

第三确定子模块,用于将所述强相关共价键中的原子作为连接原子,将所述弱相关共价键中除所述连接原子外的其他原子作为常规原子;

非线性原子确定子模块,用于针对每一所述连接原子,若该连接原子属于多个强相关共价键,则确定该连接原子为非线性原子;

线性原子确定子模块,用于将所述目标列表中除所述非线性原子外的原子,作为线性原子;

非线性共价键确定子模块,用于将含有所述非线性原子的共价键,确定为所述初始非线性共价键;

线性共价键确定子模块,用于将仅包含有所述线性原子的共价键,确定为所述初始线性共价键。

可选地,所述第二确定模块,包括:

第一遍历子模块,用于遍历所述初始线性共价键,确定所述初始线性共价键中是否存在满足如下条件的两个原子:两个原子的ID之差的绝对值大于第二预设阈值;

第四确定子模块,用于若存在,则确定需要进行补充筛选。

可选地,所述第二确定模块,包括:

第二遍历子模块,用于遍历所述初始非线性共价键涉及的每一原子,确定该原子在所述初始非线性共价键构成的列表中出现的次数,若所述次数大于预设次数阈值,则将该原子作为补充非线性原子;

第五确定子模块,用于根据所述补充非线性原子,确定所述补充非线性共价键。

可选地,所述第五确定子模块,包括:

第六确定子模块,用于确定含有所述补充非线性原子的所述初始线性共价键;

第七确定子模块,用于将含有所述补充非线性原子的所述初始线性共价键,确定为所述补充非线性共价键。

可选地,所述容器合并模块,用于:

在原子被划分到的容器数量大于所述预设数量阈值的情况下,将该原子确定所述特异原子。

第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面提供的所述方法的步骤。

第四方面,提供了一种电子设备,包括:

存储器,其上存储有计算机程序;

处理器,用于执行所述存储器中的所述计算机程序,以实现第一方面提供的所述方法的步骤。

本发明实施例提供的技术方案带来的有益效果是:

通过上述技术方案,将二面角列表和偏离平面角列表进行合并,得到目标列表,首先从目标列表中确定初始线性共价键和初始非线性共价键,再确定是否需要进行补充筛选,若需要进行补充筛选,则确定补充非线性共价键。如此,为了解决无法将非线性结构彻底筛出导致剩余部分依然存在支链级别的连接、不利于剩余结构的切片划分的问题,对非线性结构进行分级多次筛选,进一步减少线性部分中残留的互联结构,进而使后续的划分流程可以正常进行,对一些复杂的具有网状结构或环形结构的分子效果较好,提高了处理器对计算任务的兼容性。并且,根据原子被划分到的容器数量,确定特异原子,并对特异原子被划分到的容器进行合并,以使特异原子被划分到的容器数量小于或等于预设数量阈值,这样,要求执行共价键模拟时单个原子数据只能发往预设数量阈值个计算单元,减少通信数据量,提高任务处理效率。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是示例性示出的一种共价键计算任务分配方法的流程图;

图2是示例性示出的生物大分子内的共价键类型的示意图;

图3是示例性示出的从目标列表中确定初始线性共价键和初始非线性共价键的方法的流程图;

图4是示例性示出的一种共价键计算任务分配装置的框图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

图1是示例性示出的一种共价键计算任务分配方法的流程图,如图1所示,该方法可包括步骤11至步骤18。

步骤11:获取二面角列表和偏离平面角列表,其中,共价键的类型包括键、键角、二面角、偏离平面角,所述二面角列表包括二面角涉及的原子和所述二面角的参数信息,所述偏离平面角列表包括偏离平面角涉及的原子和所述偏离平面角的参数信息;

步骤12:将所述二面角列表和所述偏离平面角列表进行合并,得到目标列表;

步骤13:从目标列表中确定初始线性共价键和初始非线性共价键;

步骤14:确定是否需要进行补充筛选,若需要进行补充筛选,则确定补充非线性共价键;

步骤15:将所述初始非线性共价键和所述补充非线性共价键作为目标非线性共价键,将所述目标列表中除所述目标非线性共价键外的共价键作为目标线性共价键;

步骤16:将所述目标非线性共价键划分到至少一个非线性容器中,将所述目标线性共价键划分到至少一个线性容器中,其中,所述非线性容器中存放有所述目标非线性共价键以及所述目标非线性共价键涉及的原子,所述线性容器中存放有所述目标线性共价键以及所述目标线性共价键涉及的原子;

步骤17:根据原子被划分到的容器数量,确定特异原子,并对所述特异原子被划分到的容器进行合并,以使所述特异原子被划分到的容器数量小于或等于预设数量阈值;

步骤18:将每一容器分别分配至不同的计算单元,以由所述计算单元对容器中的原子进行处理。

通过上述技术方案,将二面角列表和偏离平面角列表进行合并,得到目标列表,首先从目标列表中确定初始线性共价键和初始非线性共价键,再确定是否需要进行补充筛选,若需要进行补充筛选,则确定补充非线性共价键。如此,为了解决无法将非线性结构彻底筛出导致剩余部分依然存在支链级别的连接、不利于剩余结构的切片划分的问题,对非线性结构进行分级多次筛选,进一步减少线性部分中残留的互联结构,进而使后续的划分流程可以正常进行,对一些复杂的具有网状结构或环形结构的分子效果较好,提高了处理器对计算任务的兼容性。并且,根据原子被划分到的容器数量,确定特异原子,并对特异原子被划分到的容器进行合并,以使特异原子被划分到的容器数量小于或等于预设数量阈值,这样,要求执行共价键模拟时单个原子数据只能发往预设数量阈值个计算单元,减少通信数据量,提高任务处理效率。

图2是示例性示出的生物大分子内的共价键类型的示意图,共价键的类型包括键、键角(简称角)、二面角、偏离平面角。其中,键涉及两个原子,键角涉及三个原子,二面角涉及四个原子,偏离平面角涉及四个原子。

分子模拟的主要对象是原子,每个原子按照肽链顺序有一个独立的ID,来索引或区分原子的各种数据(如坐标,速度,带电量,以及各种作用力等)。分子模拟计算主要在于求解原子受到的各种作用力(包括成键和非键作用)和原子的速度位移。

成键作用力(即广义共价键)的计算是分子动力学模拟重要的一步,该系统涉及的成键作用力包括键(bond)作用、键角(angle)作用、二面角(dihedral)作用、偏离平面角(improper)作用,以及部分长程短相互作用力,每种力的计算涉及不同数量的原子以及不同种类的计算参数,在此成键作用的计算任务以共价键任务列表的形式列出。目标列表包括二面角涉及的原子和二面角的参数信息、偏离平面角涉及的原子和偏离平面角的参数信息。其中,二面角的参数信息例如包括二面角的能量系数、倍角参数、平衡位置,偏离平面角的参数信息例如包括偏离平面角的能量系数、倍角参数、平衡位置。

以二面角为例,每个二面角涉及4个原子,包括3组参数,作为示例,二面角列表如下表1所示。

表1

如表1所示,第一个二面角涉及的原子的ID分别为1、5、7、10,参数信息包括624.6、83.2、-41。第二个二面角涉及的原子的ID分别为18、5、7、10,参数信息包括160.6、-318.8、0。

生物大分子二面角和角沿着链状结构分布比较均匀,偏离平面角数量不多分布很不均匀,角的数量多,但其原子一定包含在二面角和偏离平面角里,键的数量少,其原子也肯定包含在角里面,所以共价键任务分配需要先完成二面角和偏离平面角的分配,然后根据分配情况再依次完成剩余共价键任务的划分。单个共价键计算时间基本是:二面角=偏离平面角>角>>键,为了让每个计算单元的计算时间接近,需要让每个计算单元负责的二面角和偏离平面角的总量接近,这里提前将这两种计算任务混合。考虑到偏离平面角分布不均,混合过程要根据原子相关性把每个偏离平面角插入到二面角列表中,形成目标列表,再依次将计算任务分配到计算单元。

本发明中,步骤12中将所述二面角列表和所述偏离平面角列表进行合并,包括:

针对所述偏离平面角列表中的每一所述偏离平面角,执行如下步骤:

分别确定所述偏离平面角与各个二面角的公共原子数量;

将所述公共原子数量作为所述偏离平面角与对应二面角之间的相关性;

根据最大相关性,确定所述偏离平面角在所述二面角列表中的合并位置信息;

根据所述合并位置信息,将所述偏离平面角合并至所述二面角列表中。

示例地,存在四个二面角A、B、C、D如下表2所示,表中的数字表示原子的ID,其中,二面角A涉及ID为1、2、3、4的四个原子,二面角B涉及ID为2、3、4、5的四个原子,二面角C涉及ID为3、4、5、6的四个原子,二面角D涉及ID为4、5、6、7的四个原子。示例地,存在两个偏离平面角E、F如下表3所示,表中的数字表示原子的ID,其中,偏离平面角E涉及ID为3、5、10、11的四个原子,偏离平面角F涉及ID为6、7、11、12的四个原子。

表2

表3

其中,偏离平面角E与二面角A只有一个公共原子,ID为3,所以相关性为1。偏离平面角E与二面角B有两个公共原子,ID为3和5,所以相关性为2。偏离平面角E与二面角C有两个公共原子,ID为3和5,所以相关性为2。偏离平面角E与二面角D只有一个公共原子,ID为5,所以相关性为1。偏离平面角F与二面角A没有公共原子,相关性为0。偏离平面角F与二面角B没有公共原子,相关性为0。偏离平面角F与二面角C只有一个公共原子,ID为6,所以相关性为1。偏离平面角F与二面角D有两个公共原子,ID为6和7,所以相关性为2。由此可知,偏离平面角E在二面角列表中相关性最大的位置为B或C处,偏离平面角F在二面角列表中相关性最大的位置为D处。那么可将B或C在二面角列表中的位置作为偏离平面角E的合并位置信息,将D在二面角列表中的位置作为偏离平面角F的合并位置信息。

图3是示例性示出的从目标列表中确定初始线性共价键和初始非线性共价键的方法的流程图,如图3所示,上述步骤13可包括步骤31至步骤37。

步骤31:针对所述目标列表中的每一共价键,确定所述共价键中是否存在满足如下条件的两个原子:两个原子的ID之差的绝对值大于第一预设阈值;

步骤32:若存在,则确定所述共价键为强相关共价键,若不存在,则确定所述共价键为弱相关共价键;

步骤33:将强相关共价键中的原子作为连接原子,将弱相关共价键中除所述连接原子外的其他原子作为常规原子;

步骤34:针对每一所述连接原子,若该连接原子属于多个强相关共价键,则确定该连接原子为非线性原子;

步骤35:将目标列表中除非线性原子外的原子,作为线性原子;

步骤36:将含有非线性原子的共价键,确定为初始非线性共价键;

步骤37:将仅包含有线性原子的共价键,确定为初始线性共价键。

其中,对第一预设阈值的取值不做限制,示例地,第一预设阈值例如为100。判断共价键的性质将该共价键涉及的所有原子ID两两做差,寻找绝对值大于100的一对原子。示例地,如果一个二面角的原子ID分别为1、2、3、1000,存在|1-1000|=999>100,所以这个二面角是强相关二面角。如果一个二面角的原子ID分别为1、2、3、4,每对原子ID做差绝对值都小于100,该二面角是弱相关二面角。强相关二面角的4个原子为连接原子,所以1、2、3、1000为连接原子,弱相关二面角中除去连接原子其余均为常规原子,所以4号为常规原子。如果有一个连接原子属于多个强相关二面角,该原子就是非线性原子,二面角所涉及的原子除了非线性原子,其余都是线性原子,含有非线性原子的二面角是初始非线性二面角,只包含线性原子的二面角是初始线性二面角。以上以二面角为例进行举例说明,偏离平面角与之同理,本发明中将非线性二面角和非线性偏离平面角称为非线性共价键,将线性二面角和线性偏离平面角称为线性共价键。

示例地,下表4示出了六个二面角A、B、C、D、E、F,表中的数字表示原子的ID。

表4

如表4所示,根据二面角的原子ID的差,可以判断C和D为强相关的二面角,A、B、E、F为弱相关二面角。强相关二面角的原子1、2、3、1000、1001为连接原子,其余原子为常规原子。同时出现在多个强相关二面角中的连接原子为非线性原子,可以判断原子2、3、1000为非线性原子,其余均为线性原子。含有非线性原子的二面角是初始非线性二面角,所以A、B、C、D、E为初始非线性二面角,二面角F只包含线性原子,为初始线性二面角。

本发明中,对非线性结构进行分级多次筛选,进一步减少线性部分中残留的互联结构,尽可能将非线性结构全部筛出,进而使得后续的划分流程可以正常进行。

本发明中,确定是否需要进行补充筛选,包括:

遍历所述初始线性共价键,确定所述初始线性共价键中是否存在满足如下条件的两个原子:两个原子的ID之差的绝对值大于第二预设阈值;

若存在,则确定需要进行补充筛选。

示例地,第二预设阈值例如为50。第二预设阈值可以小于第一预设阈值。遍历检查初始线性共价键对应的原子,若存在两个原子的ID之差的绝对值大于50,则继续进行第二阶段筛选。

本发明中,确定补充非线性共价键,包括:

遍历所述初始非线性共价键涉及的每一原子,确定该原子在所述初始非线性共价键构成的列表中出现的次数,若所述次数大于预设次数阈值,则将该原子作为补充非线性原子;

根据所述补充非线性原子,确定所述补充非线性共价键。

其中,所述根据所述补充非线性原子,确定所述补充非线性共价键,包括:

确定含有所述补充非线性原子的所述初始线性共价键;

将含有所述补充非线性原子的所述初始线性共价键,确定为所述补充非线性共价键。

示例地,预设次数阈值例如为1,对其取值不做限制。这样,对非线性结构进行进一步筛选,减少线性部分中残留的互联结构,尽可能将非线性结构全部筛出。由此,非线性共价键中可能含有非线性原子也可能含有线性原子,线性共价键中只包含有线性原子。

其中,步骤17中根据原子被划分到的容器数量,确定特异原子,包括:

在原子被划分到的容器数量大于所述预设数量阈值的情况下,将该原子确定所述特异原子。

示例地,预设数量阈值例如为2,要求执行共价键模拟时单个原子数据只能发往2个计算单元来减少通信数据量,还要求每个计算单元负责的任务数量不超过256来平衡计算任务量,将这两种限制称为任务墙。

其中,对所述特异原子被划分到的容器进行合并,包括:

针对被划分到相同非线性容器、且存在第一公共线性容器的多个所述特异原子,将相同的所述非线性容器与所述第一公共线性容器合并,得到第一合并容器,将所述特异原子划分到所述第一合并容器和第一线性容器中,其中,所述第一线性容器为所述特异原子被划分到的线性容器中除所述第一公共线性容器外的容器,所述第一公共线性容器是多个所述特异原子均被划分到的线性容器;

针对被划分到相同非线性容器、且不存在所述第一公共线性容器的多个特异原子,将该多个特异原子构成特异原子列表;

按照指定顺序,将特异原子列表中第一个特异原子被划分到的线性容器合并,得到第二合并容器;

根据所述第二合并容器,更新特异原子列表中的特异原子被划分到的线性容器;

根据特异原子被划分到的容器数量,更新特异原子列表;

针对更新后的特异原子列表,确定是否存在第二公共线性容器,其中,所述第二公共线性容器是当前特异原子列表中的特异原子均被划分到的线性容器;

若存在第二公共线性容器,则将非线性容器与第二公共线性容器合并,得到第三合并容器,将当前特异原子列表中的特异原子划分到第三合并容器和第二线性容器中,其中,第二线性容器为特异原子被划分到的线性容器中除第二公共线性容器外的容器;

若不存在第二公共线性容器,则重新执行所述按照指定顺序,将所述特异原子列表中第一个特异原子被划分到的线性容器合并,得到第二合并容器的步骤至所述针对更新后的特异原子列表,确定是否存在第二公共线性容器的步骤。

示例地,以下以非线性二面角和线性二面角为例进行举例说明,不构成对本发明实施方式的限制,对于非线性偏离平面角和线性偏离平面角的处理过程,与之类似。

表5是示例性示出的两个非线性二面角A、B。表中的数字表示原子的ID。

表5

如表5所示,如果二面角A和B都被划分到了非线性容器CN1,那么CN1内存在二面角A和B,以及这两个二面角的所有原子1、2、3、1000、1001。需要说明的是,本发明描述中原子1指的是ID为1的原子,原子2指的是ID为2的原子,其他原子同理。

表6是示例性示出的四个线性二面角C、D、E、F。表中的数字表示原子的ID。

表6

如表6所示,如果二面角C和D被划分到了线性容器CL1,那么CL1中存在二面角C和D,以及二面角C和D所包含的所有原子1、4、5、6、7、8。如果二面角E和F被划分到了线性容器CL2,那么CL2中存在二面角E和F,以及二面角E和F所包含的所有原子1、6、7、8、9、10。

这样,针对表5所示的非线性二面角以及表6所示的线性二面角,原子1被划分到了线性容器CL1、CL2和非线性容器CN1,同时存在于3个容器中,秩为3,原子1为特异原子。原子2、3、1000、1001只属于非线性容器CN1,为常规原子,秩为1。原子4、5、9、10,只属于线性容器CL1,为常规原子,秩为1。原子6、7、8属于两个容器CL1和CL2,为常规原子,秩为2。

原子容器合并是为了解决特异原子被划分到3个及以上容器中的问题。对于特异原子被分到2个线性和1个非线性容器,那么可以找出公共线性容器,将非线性容器与公共线性容器合并。

对于容器合并的实施方式,下面以特异原子A、B、C为例进行举例说明。

示例地,例如特异原子A和B对应的容器分别为:

A被划分到非线性容器CN1、以及线性容器CL1和CL2;

B被划分到非线性容器CN1、以及线性容器CL1和CL3。

显然特异原子A、B有公共线性容器CL1,将容器CN1与CL1合并得到容器C,合并后原子A被划分到容器C和CL2中,B被划分到容器C和CL3中。这样A、B两原子都只存在于2个容器中,满足处理器限制要求。

示例地,例如特异原子A和B对应的容器分别为:

A被划分到非线性容器CN1、以及线性容器CL1和CL2;

B被划分到非线性容器CN1、以及线性容器CL3和CL4。

该示例中原子A、B没有公共线性容器,对于第一个原子A,合并线性容器CL1和CL2为Cnew,合并后A被划分到容器CN1和Cnew,不再是特异原子,更新特异原子列表,特异原子只剩下B,于是公共容器为CL3(或CL4),找到公共容器C=CL3,停止循环,将CN1合并到C中,合并后B被划分到容器C和CL4。这样A、B两原子都只存在于2个容器中,满足处理器限制要求。

示例地,例如有三个特异原子A、B、C,A被划分到非线性容器CN1、以及线性容器CL1和CL2,B被划分到非线性容器CN1、以及线性容器CL3和CL4,C被划分到非线性容器CN1、以及线性容器CL5和CL6。这三个特异原子没有公共线性容器,首先将第一个特异原子A被划分到的线性容器CL1和CL2合并,得到Cnew1,更新特异原子被划分到的线性容器,A被划分到非线性容器CN1、以及线性容器Cnew1,更新特异原子列表,更新后的特异原子列表中还有原子B、C,原子B、C不存在公共线性容器,针对当前特异原子列表中的第一个特异原子B,将线性容器CL3和CL4合并,得到Cnew2,之后更新特异原子列表,还有特异原子C,找到公共线性容器CL5或CL6,例如为CL5,可将原子C分配至CL5与CN1合并后的容器以及CL6中。

示例地,例如有三个特异原子A、B、C,A被划分到非线性容器CN1、以及线性容器CL1和CL2,B被划分到非线性容器CN1、以及线性容器CL1和CL4,C被划分到非线性容器CN1、以及线性容器CL5和CL6。首先将第一个特异原子A被划分到的线性容器CL1和CL2合并,得到Cnew1,更新特异原子被划分到的线性容器,A被划分到非线性容器CN1、以及线性容器Cnew1,B被划分到非线性容器CN1、以及线性容器Cnew1和CL4,更新后的特异原子列表中还有原子B、C,针对原子B,将Cnew1和CL4合并为Cnew2,那么B被划分到非线性容器CN1、以及线性容器Cnew2,还剩余特异原子C,找到公共线性容器CL5或CL6,例如为CL5,可将原子C分配至CL5与CN1合并后的容器以及CL6中。

示例地,例如有三个特异原子A、B、C,A被划分到非线性容器CN1、以及线性容器CL1和CL2,B被划分到非线性容器CN1、以及线性容器CL1和CL2,C被划分到非线性容器CN1、以及线性容器CL5和CL6。首先将第一个特异原子A被划分到的线性容器CL1和CL2合并,得到Cnew1,更新特异原子被划分到的线性容器,A被划分到非线性容器CN1、以及线性容器Cnew1,B被划分到非线性容器CN1、以及线性容器Cnew1,还剩余特异原子C,找到公共线性容器CL5或CL6,例如为CL5,可将原子C分配至CL5与CN1合并后的容器以及CL6中。

示例地,例如有三个特异原子A、B、C,A被划分到非线性容器CN1、以及线性容器CL1和CL2,B被划分到非线性容器CN1、以及线性容器CL3和CL4,C被划分到非线性容器CN1、以及线性容器CL3和CL6。首先将第一个特异原子A被划分到的线性容器CL1和CL2合并,得到Cnew1,更新特异原子被划分到的线性容器,A被划分到非线性容器CN1、以及线性容器Cnew1,还剩余特异原子B、C,B和C有公共线性容器CL3,可将CN1与CL3合并得到容器C,原子B被划分到C和CL4中,原子C被划分到C和CL4中,至此A、B、C均不再是特异原子。

以上过程将二面角计算任务和偏离平面角计算任务分配到若干容器中,剩下的键、键角作用通过判断原子相关性完成划分,具体方式可参照相关技术。综上,确保了每个原子进被划分到两个容器中,保证单个原子数据只能发往两个计算单元来减少通信数据量。

本发明涉及的处理器具有三维互联计算单元结构,依据计算单元的空间位置将模拟空间做同等规模的划分,每一个计算单元负责其中一个子空间。提交计算任务时,可以取每个容器所有原子质心,依据质心位置将容器内的原子和共价键信息放入合适的计算单元存储内,即可进行分子模拟计算。

基于同一发明构思,本发明还提供一种共价键计算任务分配装置,图4是示例性示出的一种共价键计算任务分配装置的框图,如图4所示,该装置40可包括:

列表获取模块41,用于获取二面角列表和偏离平面角列表,其中,共价键的类型包括键、键角、二面角、偏离平面角,所述二面角列表包括二面角涉及的原子和所述二面角的参数信息,所述偏离平面角列表包括偏离平面角涉及的原子和所述偏离平面角的参数信息;

列表合并模块42,用于将所述二面角列表和所述偏离平面角列表进行合并,得到目标列表;

第一确定模块43,用于从所述目标列表中确定初始线性共价键和初始非线性共价键;

第二确定模块44,用于确定是否需要进行补充筛选,若需要进行补充筛选,则确定补充非线性共价键;

第三确定模块45,用于将所述初始非线性共价键和所述补充非线性共价键作为目标非线性共价键,将所述目标列表中除所述目标非线性共价键外的共价键作为目标线性共价键;

容器划分模块46,用于将所述目标非线性共价键划分到至少一个非线性容器中,将所述目标线性共价键划分到至少一个线性容器中,其中,所述非线性容器中存放有所述目标非线性共价键以及所述目标非线性共价键涉及的原子,所述线性容器中存放有所述目标线性共价键以及所述目标线性共价键涉及的原子;

容器合并模块47,用于根据原子被划分到的容器数量,确定特异原子,并对所述特异原子被划分到的容器进行合并,以使所述特异原子被划分到的容器数量小于或等于预设数量阈值;

分配模块48,用于将每一容器分别分配至不同的计算单元,以由所述计算单元对容器中的原子进行处理。

可选地,所述列表合并模块42,用于:

针对所述偏离平面角列表中的每一所述偏离平面角,通过如下子模块进行列表合并:

数量确定子模块,用于分别确定所述偏离平面角与各个二面角的公共原子数量;

相关性确定子模块,用于将所述公共原子数量作为所述偏离平面角与对应二面角之间的相关性;

位置确定子模块,用于根据最大相关性,确定所述偏离平面角在所述二面角列表中的合并位置信息,

列表合并子模块,用于根据所述合并位置信息,将所述偏离平面角合并至所述二面角列表中。

可选地,所述第一确定模块43,包括:

第一确定子模块,用于针对所述目标列表中的每一共价键,确定所述共价键中是否存在满足如下条件的两个原子:两个原子的ID之差的绝对值大于第一预设阈值;

第二确定子模块,用于若存在,则确定所述共价键为强相关共价键,若不存在,则确定所述共价键为弱相关共价键;

第三确定子模块,用于将所述强相关共价键中的原子作为连接原子,将所述弱相关共价键中除所述连接原子外的其他原子作为常规原子;

非线性原子确定子模块,用于针对每一所述连接原子,若该连接原子属于多个强相关共价键,则确定该连接原子为非线性原子;

线性原子确定子模块,用于将所述目标列表中除所述非线性原子外的原子,作为线性原子;

非线性共价键确定子模块,用于将含有所述非线性原子的共价键,确定为所述初始非线性共价键;

线性共价键确定子模块,用于将仅包含有所述线性原子的共价键,确定为所述初始线性共价键。

可选地,所述第二确定模块44,包括:

第一遍历子模块,用于遍历所述初始线性共价键,确定所述初始线性共价键中是否存在满足如下条件的两个原子:两个原子的ID之差的绝对值大于第二预设阈值;

第四确定子模块,用于若存在,则确定需要进行补充筛选。

可选地,所述第二确定模块44,包括:

第二遍历子模块,用于遍历所述初始非线性共价键涉及的每一原子,确定该原子在所述初始非线性共价键构成的列表中出现的次数,若所述次数大于预设次数阈值,则将该原子作为补充非线性原子;

第五确定子模块,用于根据所述补充非线性原子,确定所述补充非线性共价键。

可选地,所述第五确定子模块,包括:

第六确定子模块,用于确定含有所述补充非线性原子的所述初始线性共价键;

第七确定子模块,用于将含有所述补充非线性原子的所述初始线性共价键,确定为所述补充非线性共价键。

可选地,所述容器合并模块47,用于:

在原子被划分到的容器数量大于所述预设数量阈值的情况下,将该原子确定所述特异原子。

本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现共价键计算任务分配方法的步骤。

本发明还提供一种电子设备,包括:

存储器,其上存储有计算机程序;

处理器,用于执行所述存储器中的所述计算机程序,以实现共价键计算任务分配方法的步骤。

需要说明的是:上述实施例提供的共价键计算任务分配装置在进行共价键计算任务分配时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的共价键计算任务分配装置与共价键计算任务分配方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

相关技术
  • 计算任务分配方法、装置、电子设备及计算机存储介质
  • 任务分配方法、装置、计算机设备和存储介质
  • 项目任务分配方法、装置、计算机设备及存储介质
  • 任务分配方法、装置、设备及存储介质
  • 任务分配方法、装置及计算机可读存储介质
  • 任务分配方法、任务分配装置、存储介质及计算机设备
  • 边缘计算任务分配方法、装置、计算机设备及相关介质
技术分类

06120116585597