预处理加速方法、装置、设备及存储介质与流程

文档序号:30703861发布日期:2022-07-09 21:12阅读:74来源:国知局
预处理加速方法、装置、设备及存储介质与流程

1.本公开实施例涉及计算机技术领域,尤其涉及一种预处理加速方法、装置、设备及存储介质。


背景技术:

2.分子动力学模拟是一种使用牛顿经典力学模拟微观粒子运动来获得原子体系的宏观性质的模拟方法,广泛应用在医学、生物等领域。
3.分子动力学模拟包括预处理和模拟分子运动轨迹。目前,在预处理中为了对原子体系进行至少两项检验,需要多次读取原子体系文件,导致预处理耗费很长时间,且如果在后续的模拟分子运动轨迹中出现偏差时,还要重新返回到预处理,导致整个分子动力学模拟过程需要多次预处理,而预处理耗费时间又较长,如此,整个分子动力学模拟过程需要很长的时间,会给研究带来诸多不便。因此,目前亟需一种能够加速预处理的方法。


技术实现要素:

4.为了解决上述技术问题或者至少部分地解决上述技术问题,本公开实施例提供了一种预处理加速方法、装置、设备及存储介质。
5.本公开实施例的第一方面提供了一种预处理加速方法,该方法包括:读取原子体系文件,得到各原子的原子信息;对各原子的原子信息进行处理,得到至少两项预设检验对应的检验参考信息;根据至少两项预设检验对应的检验参考信息,对原子体系进行至少两项预设检验;其中,至少两项预设检验包括能量检验、边界检验、拓扑结构检验、原子电荷检验、原子类型统计中的至少两项。
6.本公开实施例的第二方面提供了一种预处理加速装置,该装置包括:第一读取模块,用于读取原子体系文件,得到各原子的原子信息;第一处理模块,用于对各原子的原子信息进行处理,得到至少两项预设检验对应的检验参考信息;第一检验模块,用于根据至少两项预设检验对应的检验参考信息,对原子体系进行至少两项预设检验;其中,至少两项预设检验包括能量检验、边界检验、拓扑结构检验、原子电荷检验、原子类型统计中的至少两项。
7.本公开实施例的第三方面提供了一种电子设备,该服务器包括:处理器和存储器,其中,所述存储器中存储有计算机程序,当所述计算机程序被所述处理器执行时,所述处理器执行上述第一方面的方法。
8.本公开实施例的第四方面提供了一种计算机可读存储介质,该存储介质中存储有计算机程序,当该计算机程序被处理器执行时,可以实现上述第一方面的方法。
9.本公开实施例提供的技术方案与现有技术相比具有如下优点:在本公开实施例,能够读取原子体系文件,得到各原子的原子信息;对各原子的原
子信息进行处理,得到至少两项预设检验对应的检验参考信息;根据至少两项预设检验对应的检验参考信息,对原子体系进行至少两项预设检验;其中,至少两项预设检验包括能量检验、边界检验、拓扑结构检验、原子电荷检验、原子类型统计中的至少两项。由于本公开实施例可以重排预处理逻辑,将对原子体系的预设检验进行合并,使得读取一次原子体系文件即可,相比于现有技术可以减少读取原子体系文件的次数,节省预处理花费在读取原子体系文件上的时间,从而加速预处理。
附图说明
10.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
11.为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
12.图1是本公开实施例提供的一种预处理加速方法的流程示意图;图2是本公开实施例提供的另一种预处理加速方法的流程示意图;图3是本公开实施例提供的又一种预处理加速方法的流程示意图;图4是本公开实施例提供的一种预处理加速装置的结构示意图;图5是本公开实施例中的一种电子设备的结构示意图。
具体实施方式
13.为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
14.在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
15.在相关技术中,预处理的处理过程通常如下:读取原子体系文件中的各原子的原子信息,并将各原子的原子信息存储在缓存区;然后,从缓存区中获取第一个原子的原子信息,将第一个原子的原子信息中的自身所带能量提取出来;然后,从缓存区中获取第二个原子的原子信息,将第二个原子的原子信息中的自身所带能量提取出来;然后,从缓存区中获取第三个原子的原子信息,将第三个原子的原子信息中的自身所带能量提取出来;以此类推,直至从缓存区中获取第n个原子的原子信息,将第n个原子的原子信息中的自身所带能量提取出来,其中,n为原子体系中原子的原子总数;最后,根据各原子的自身所带能量,对原子体系进行能量检验,将缓存区中的各原子的原子信息释放掉。如此,完成对原子体系的能量检验。
16.读取原子体系文件中的各原子的原子信息,并将各原子的原子信息存储在缓存区,然后,从缓存区中获取第一个原子的原子信息,根据第一个原子的原子信息确定原子体系的起始位置,将第一个原子的原子信息中的原子位置提取出来;然后,从缓存区中获取第二个原子的原子信息,根据第一个原子的原子信息和第二个原子的原子信息,确定第一个
原子和第二个原子是否属于同一分子,将第二个原子的原子信息中的原子位置提取出来;然后,从缓存区中获取第三个原子的原子信息,根据第二个原子的原子信息和第三个原子的原子信息,确定第二个原子和第三原子是否属于同一分子,将第三个原子的原子信息中的原子位置提取出来;以此类推,直至从缓存区中获取第n个原子的原子信息,根据第n-1个原子的原子信息和第n个原子的原子信息,确定第n-1个原子和第n个原子是否属于同一分子,将第n个原子的原子信息中的原子位置提取出来;最后,根据原子体系的起始位置、相邻原子是否属于同一分子的信息、各原子的原子位置,对原子体系进行拓扑结构检验和边界检验,将缓存区中的各原子的原子信息释放掉。如此,完成对原子体系的拓扑结构检验和边界检验。
17.读取原子体系文件中的各原子的原子信息,并将各原子的原子信息存储在缓存区;然后,从缓存区中获取第一个原子的原子信息,将第一个原子的原子信息中的原子电荷提取出来;然后,从缓存区中获取第二个原子的原子信息,将第二个原子的原子信息中的原子电荷提取出来;然后,从缓存区中获取第三个原子的原子信息,将第三个原子的原子信息中的原子电荷提取出来;以此类推,直至从缓存区中获取第n个原子的原子信息,将第n个原子的原子信息中的原子电荷提取出来;最后,根据各原子的原子电荷,对原子体系进行电荷检验,将缓存区中的各原子的原子信息释放掉。如此,完成对原子体系的电荷检验。
18.读取原子体系文件中的各原子的原子信息,并将各原子的原子信息存储在缓存区;然后,从缓存区中获取第一个原子的原子信息,将第一个原子的原子信息中的原子名称提取出来;然后,从缓存区中获取第二个原子的原子信息,将第二个原子的原子信息中的原子名称提取出来;然后,从缓存区中获取第三个原子的原子信息,将第三个原子的原子信息中的原子名称提取出来;以此类推,直至从缓存区中获取第n个原子的原子信息,将第n个原子的原子信息中的原子名称提取出来;最后,根据各原子的原子名称,对原子体系进行原子类型统计,将缓存区中的各原子的原子信息释放掉。如此,完成对原子体系的原子类型统计。
19.申请人考虑到,相关技术中的预处理方案,需要对原子体系进行能量检验、边界检验、拓扑结构检验、电荷检验、原子种类统计等多种检验中的至少两项,以使原子体系在通过上述各种检验后,进入模拟分子运动轨迹,但是,在每项检验过程中,都需要读取一次原子体系文件,而大规模原子体系(例如亿级原子体系)的原子体系文件通常较大,读取一次原子体系文件便需要耗费很长时间,有鉴于此,申请人认为可以重排预处理逻辑,将对原子体系的多项检验进行合并,以减少读取原子体系文件的次数,从而加速预处理。
20.图1是本公开实施例提供的一种预处理加速方法的流程示意图,该方法可以由电子设备来执行。该电子设备可以示例性的理解为诸如手机、平板电脑、笔记本电脑、台式机、智能电视等具有页面展示功能的设备。如图1所示,本实施例提供的方法包括如下步骤:s110、读取原子体系文件,得到各原子的原子信息。
21.在本公开实施例中,原子体系文件中记载了各原子的原子信息,因此,电子设备可以读取原子体系文件,以得到各原子的原子信息。其中,原子体系文件可以为存储设备(例如u盘,磁盘等)中的文件,也可以为其它电子设备通过有线网络、或者无线网络等发送而来的文件,此处不作限定。
22.具体地,原子体系文件可以为任意待进行分子动力学模拟的原子体系对应的体系
文件。
23.具体地,原子信息可以包括原子名称、归属于哪个分子信息、原子位置(例如原子的三维坐标)、原子电荷、以及自身所带能量等中的至少一项,此处不作限定。
24.在一些实施例中,电子设备读取原子体系文件后可以将各原子的原子信息存储在内存的缓存区(即buffer),以便后续对各原子的原子信息进行处理,但并不限于此。
25.s120、对各原子的原子信息进行处理,得到至少两项预设检验对应的检验参考信息。
26.在本公开实施例中,电子设备可以对各原子的原子信息进行处理,以得到每项预设检验对应的检验参考信息。
27.具体地,预设检验对应的检验参考信息为,对原子体系进行该项预设检验时所需的信息。
28.其中,至少两项预设检验包括能量检验、边界检验、拓扑结构检验、原子电荷检验、原子类型统计中的至少两项。
29.具体地,当对原子体系进行能量检验时,能量检验对应的检验参考信息可以包括各原子的自身所带能量。
30.具体地,当对原子体系进行拓扑结构检验和边界检验时,拓扑结构检验和边界检验对应的检验参考信息可以包括原子体系的起始位置、以及各原子的原子位置、以及原子间的关联关系,其中,关联关系包括是否属于同一分子。
31.具体地,当对原子体系进行原子电荷检验时,原子电荷对应的检验参考信息可以包括各原子的原子电荷。
32.具体地,当对原子体系进行原子类型统计时,原子类型统计对应的检验参考信息可以包括各原子的原子名称。
33.s130、根据至少两项预设检验对应的检验参考信息,对原子体系进行至少两项预设检验。
34.具体地,具体如何根据预设检验对应的检验参考信息,对原子体系进行相应的预设检验,本领域技术人员可参照现有技术,此处不作赘述。
35.可以理解的是,现有技术在预处理的时候,会对原子体系文件进行多次重复读取。然而,本公开实施例中,相比于现有技术中的预处理,重排了预处理逻辑,合并了各项预设检测之前的获取检测参考信息的过程,并且,合并了各项预设检测,使得在预处理中,电子设备读取一次原子体系文件即可,相比于现有技术减少了读取原子体系文件的次数,从而加速预处理。
36.在本公开实施例,能够读取原子体系文件,得到各原子的原子信息;对各原子的原子信息进行处理,得到至少两项预设检验对应的检验参考信息;根据至少两项预设检验对应的检验参考信息,对原子体系进行至少两项预设检验;其中,至少两项预设检验包括能量检验、边界检验、拓扑结构检验、原子电荷检验、原子类型统计中的至少两项。由于本公开实施例可以重排预处理逻辑,将对原子体系的预设检验进行合并,使得读取一次原子体系文件即可,相比于现有技术可以减少读取原子体系文件的次数,节省预处理花费在读取原子体系文件上的时间,从而加速预处理。
37.在本公开另一种实施方式中,s120可以包括:s121、根据第一个原子的原子信息确
定原子体系的起始位置;s122、根据各原子的原子信息,确定原子间的关联关系;s123、针对每项第一类原子信息,将其从各原子的原子信息中提取出来,得到每项第一类原子信息对应的第一类原子信息集合;其中,s130包括:根据原子体系的起始位置、关联关系以及每项第一类原子信息对应的第一类原子信息集合,对原子体系进行能量检验、边界检验、拓扑结构检验、原子电荷检验、以及原子类型统计。
38.具体地,s121可以包括:从第一个原子的原子信息中提取出位置信息;基于第一个原子的位置信息确定原子体系的起始位置。
39.具体地,关联关系包括是否属于同一分子,例如,某一原子的名称为h1,归属于h2o1分子,则名称为h1的原子是h2o1分子中的原子。但关联关系并不限于仅包括是否属于同一分子,例如还可以包括所归属的分子是否为统一分子类型等,本公开对此不作限定。
40.在一个示例中,s122可以包括:确定各原子归属于哪个分子,并且,针对每个原子,将该原子所归属的分子与其它原子所归属的分子进行一致性比较,确定该原子与其它原子是否属于同一分子。
41.具体地,第一类原子信息可以包括原子名称、原子位置、原子电荷、以及自身所带能量等中的至少一项。此时,s123可以包括:s1231、将原子名称从各原子的原子信息中提取出来,得到原子名称对应的原子名称集合(即第一类原子信息集合),原子名称集合中包括n个原子的原子名称;s1232、将原子位置从各原子的原子信息中提取出来,得到原子位置对应的原子位置集合(即第一类原子信息集合),原子位置集合中包括n个原子的原子位置;s1233、将原子电荷从各原子的原子信息中提取出来,得到原子电荷对应的原子电荷集合(即第一类原子信息集合),原子电荷集合中包括n个原子的原子电荷;s1234、将自身所带能量从各原子的原子信息中提取出来,得到自身所带能量对应的自身所带能量集合(即第一类原子信息集合),自身所带能量集合中包括n个原子的自身所带能量。
42.可以理解的是,通过设置对原子体系进行能量检验、边界检验、拓扑结构检验、原子电荷检验、以及原子类型统计,可实现对原子体系更全面的检测,以降低后续在模拟分子运动轨迹出现偏差的风险,并且,相对于现有技术预处理逻辑对原子体系进行上述四种检验需要四次读取原子体系文件,本公开实施例读取一次原子体系文件即可,相比于现有技术减少了三次读取原子体系文件的时间,从而大幅度缩短预处理所耗费的时间。
43.图2是本公开实施例提供的另一种预处理加速方法的流程示意图。本公开实施例在上述实施例的基础上进行优化,本公开实施例可以与上述一个或者多个实施例中各个可选方案结合。
44.如图2所示,该预处理加速方法可以包括如下步骤。
45.s210、读取原子体系文件,得到各原子的原子信息。
46.具体地,s210与s110相似,此处不作赘述。
47.s220、根据第一个原子的原子信息确定原子体系的起始位置。
48.具体地,s220与s121相似,此处不作赘述。
49.s230、根据各原子的原子信息,确定原子间的关联关系。
50.具体地,s230与s122相似,此处不作赘述。
51.s240、通过多个第一内核中的每个第一内核,从第一内核对应的原子的原子信息中,将每项第一类原子信息分别提取出来。
52.在本公开实施例中,电子设备包括中央处理器(central processing unit,cpu),cpu包括多个内核,该多个内核中包括多个第一内核,多个第一内核可以并行处理从原子信息中提取第一类原子信息。
53.具体地,原子体系中包括n个原子,将一个原子中的每项第一类原子信息分别提取出来可以看作一份任务,则s240可以拆分为n份任务,该n份任务可以分摊到多个第一内核中。
54.例如,多个内核中包括三个第一内核,三个第一内核可以同时分别对不同原子的原子信息进行提取,即第一个内核从第一个原子的原子信息中提取第一类原子信息的过程中,第二个内核可以从第二个原子的原子信息中提取第一类原子信息,第三个内核可以从第三个原子的原子信息中提取第一类原子信息。并且,第一个内核从第一个原子的原子信息中提取第一类原子信息的过程具体可以如下:从第一个原子的原子信息中提取出原子名称,并将原子名称放置在原子名称集合中;从第一个原子的原子信息中提取出原子位置,并将原子位置放置在原子位置集合中;从第一个原子的原子信息中提取出原子电荷,并将原子电荷放置在原子电荷集合中;从第一个原子的原子信息中提取出自身所带能量,并将自身所带能量放置在自身所带能量集合中。对于第二个内核从第二个原子的原子信息中提取第一类原子信息、以及第三个内核从第三个原子的原子信息中提取第一类原子信息同理,此处不再赘述。
55.可以理解的是,为了加速分子动力学模拟过程,在模拟分子运动轨迹中,通常会并行处理,因此,cpu中通常会设置多个内核,但是,现有技术中的预处理方案,在从各原子的原子信息中提取第一类原子信息时,通常采用一个内核逐个从每个原子的原子信息中提取出第一类原子信息(即串行处理),导致花费时间较长,且对其它内核的利用率较低,造成大量内核的资源浪费。然而,在本公开实施例中,申请人考虑到,从原子信息中提取出各项第一类原子信息,先后顺序性不强,即先从某一原子信息中提取出各项第一类原子信息,还是后从某一原子信息中提取出各项第一类原子信息,对最终得到各项第一类原子信息对应的第一类原子信息集合无影响,因此,可以采用并行处理的方式,通过多个第一内核,从第一内核对应的原子的原子信息中,将每项第一类原子信息分别提取出来,如此,可以充分利用电子设备中的各个内核,可以提高电子设备中内核的利用率,并且,可以加快从各原子的原子信息中提取第一类原子信息的处理速度,从而进一步加速预处理。
56.s250、根据原子体系的起始位置、关联关系以及每项第一类原子信息对应的第一类原子信息集合,对原子体系进行能量检验、边界检验、拓扑结构检验、原子电荷检验、以及原子类型统计。
57.具体地,s250与s130相似,此处不再赘述。
58.在本公开实施例,通过设置多个第一内核并行处理,从各原子的原子信息中将每项第一类原子信息分别提取出来,可缩减从各原子的原子信息中提取第一类原子信息所耗费的时间,并且,可以充分利用电子设备中的内核,提高电子设备中的内核的使用率。
59.图3是本公开实施例提供的又一种预处理加速方法的流程示意图。本公开实施例在上述实施例的基础上进行优化,本公开实施例可以与上述一个或者多个实施例中各个可选方案结合。
60.如图3所示,该预处理加速方法可以包括如下步骤。
61.s310、读取原子体系文件,得到各原子的原子信息。
62.具体地,s310与s110相似,此处不作赘述。
63.s320、将各原子的原子信息存储在缓存区。
64.具体地,原子信息可以存储在电子设备的内存的缓存区。
65.s330、通过第二内核,从缓存区中读取第一个原子的原子信息;并且通过第二内核,根据第一个原子的原子信息确定原子体系的起始位置。
66.在本公开实施例中,电子设备的多个内核中包括第二内核,电子设备通过第一内核,可以从缓存区中读取第一个原子的原子信息,并根据第一个原子的原子信息确定原子体系的起始位置。需要说明的是,多个内核中的哪个内核为第一内核,本领域技术人员可根据实际情况设置,此处不作限定。
67.s340、通过第三内核,从缓存区中获取各原子的原子信息;并且通过第三内核,根据各原子的原子信息,确定原子间的关联关系。
68.在本公开实施例中,电子设备的多个内核中还包括第三内核,电子设备通过第三内核,可以获得各原子的原子信息,确定原子间的关联关系。需要说明的是,第二内核和第三内核可以为同一内核,也可为不同内核,此处不作限定。
69.可选地,s340可以包括:根据第i个原子的归属于哪个分子信息以及第i-1个原子的归属于哪个分子信息检测第i个原子与第i-1个原子是否属于同一分子;其中,i为整数且1<i≤n,n为原子体系中原子的原子总数。
70.具体地,首先,根据第二个原子的归属于哪个分子信息以及第一个原子的归属于哪个分子信息检测第二个原子与第一个原子是否属于同一分子,然后,根据第三个原子的归属于哪个分子信息以及第二个原子的归属于哪个分子信息检测第三个原子与第二个原子是否属于同一分子;再然后,根据第四个原子的归属于哪个分子信息以及第三个原子的归属于哪个分子信息检测第四个原子与第三个原子是否属于同一分子,
……
,依此类推,直至根据第n个原子的归属于哪个分子信息以及第n-1个原子的归属于哪个分子信息检测第n个原子与第n-1个原子是否属于同一分子。
71.可以理解的是,在原子体系文件中,同一分子中的不同原子通常在原子体系文件的相邻几行,因此,统计原子归属于哪个分子时,通常要根据前一个原子所属的分子来判断当前原子是否与前一个原子属于同一个分子,如此,可使确定属于同一原子的方式简单,易操作,并且速度较快,有利于加速预处理。并且,由于需要根据前一个原子所属的分子来判断当前原子是否与前一个原子属于同一个分子,该过程具有较强的顺序性,因此,可以串行处理,以免出现错误。
72.s350、通过每个第一内核,从缓存区中读取第一内核对应的原子的原子信息;并且通过每个第一内核,从第一内核对应的原子的原子信息中,将每项第一类原子信息分别提取出来。
73.在本公开实施例中,电子设备的多个第一内核中的每个第一内核,可以从缓存区中读取该第一内核对应的原子的原子信息,并将读取到的原子信息中每项第一类原子信息分别提取出来。
74.在一些实施例中,第一内核与第三内核不同,如此,电子设备在执行s340的过程中,也可以执行s350,从而进一步加快预处理速度。
75.在另一些实施例中,第三内核可以为多个第一内核中的其中一个内核,如此,在电子设备执行s350时,并行处理的内核的数量较多,有利于缩减s350所花费时间,从而进一步加快预处理速度。
76.可以理解的是,通过第一内核直接从缓存区中读取第一个原子的原子信息,可省去通过第一内核从原子体系文件中将第一个原子的原子信息读取到缓存区的过程。
77.s360、根据原子体系的起始位置、关联关系以及每项第一类原子信息对应的第一类原子信息集合,对原子体系进行能量检验、边界检验、拓扑结构检验、原子电荷检验、以及原子类型统计。
78.具体地,s360与s130相似,此处不再赘述。
79.在本公开实施例,将现有技术中逐条处理原子信息的逻辑拆成三部分,即单核串行处理第一个原子的原子信息、单核串行处理原子顺序和原子是否属于同一个分子等信息、以及众核并行处理提取第一类原子信息,可以提高内核的使用率,并且可以通过并行处理加速预处理。此外,通过设置将各原子的原子信息存储在缓存区,使得电子设备中各个内核无需分别从头读取原子体系文件,即各内核无需再次从存储设备中(例如磁盘)中读取原子体系文件,而是直接可以从内存的缓存区中读取出需要的原子信息,相比于现有技术中对相同的原子体系文件多次读取,本公开实施例通过引入原子体系文件复用,减少了访问存储设备的次数,缩短原子体系文件从存储设备读入到内存的缓存区的时间,提高了io的有效利用率,并且加速了预处理。
80.在本公开再一种实施方式中,第一类原子信息包括原子名称,原子名称对应的第一类原子信息集合为原子名称集合;其中,对原子体系进行原子类型统计,包括:将原子名称集合拆分为多份原子名称子集;针对每份原子名称子集,统计各原子类型对应的原子数量,得到每份原子名称子集的原子类型统计结果;基于每份原子名称子集的原子类型统计结果,统计各原子类型对应的总原子数量。
81.具体地,原子名称子集为原子名称集合的子集,两个不同原子名称子集中所包括的原子名称的数量可以相同也可以不同,此处不作限定。
82.具体地,两个不同原子名称子集,可以均由同一内核分别统计各原子类型对应的原子数量,也可以由不同内核分别统计各原子类型对应的原子数量,此处不作限定。
83.具体地,统计结果包括原子类型以及每个原子类型对应的原子数量。
84.具体地,针对各份原子名称子集的原子类型统计结果,将其中的原子类型取并集,并且将原子类型统计结果中同一原子类型下的原子数量进行加和,即可得到各原子类型对应的总原子数量。
85.可以理解的是,现有技术中,通常通过单个内核,采用for循环逐个判断每个原子的原子类型,并且更新当前进行判断的原子的原子类型对应的统计值(即进行加1),直至对第n个原子判断其原子类型并更新其对应的原子类型。如此,对该内核的使用率不高,对于未展开的for循环语句,没有很好的利用cpu流水线的乱序发射功能。然而,在本公开实施例中,将现有技术中的for循环拆开,这样可以充分利用cpu流水线的各个阶段,减少流水线气泡,更细粒度的加速程序运行,从而加速预处理。
86.在本公开再一种实施方式中,第一类原子信息包括原子电荷,原子电荷对应的第一类原子信息集合为原子电荷集合;其中,对原子体系进行电荷检验,包括:将原子电荷集
合拆分为多份原子电荷子集;针对每份原子电荷子集,将各原子的电荷进行加和,得到每份原子电荷子集的电荷加和结果;将每份原子电荷子集的电荷加和结果进行加和,得到总电荷加和结果。
87.具体地,原子电荷子集为原子电荷集合的子集,两个不同原子电荷子集中所包括的原子电荷的数量可以相同也可以不同,此处不作限定。
88.具体地,两个不同原子电荷子集,可以均由同一内核分别进行电荷加和,也可以由不同内核分别进行电荷加和,此处不作限定。
89.具体地,针对各份原子电荷子集的电荷加和结果,将它们进行加和,即可得到原子体系的总电荷加和结果。
90.可以理解的是,现有技术中,通常通过单个内核,采用for循环逐个将每个原子的原子电荷累加至原子体系的电荷加和结果上,即原子体系的电荷加和结果的初始值为0,将第一个原子的原子电荷累加在原子体系的电荷加和结果上,以更新原子体系的电荷加和结果;将第二个原子的原子电荷累加在原子体系的电荷加和结果上,以再次更新原子体系的电荷加和结果;
……
,依次类推,直至将第n个原子的原子电荷累加在原子体系的电荷加和结果上。如此,对该内核的使用率不高,对于未展开的for循环语句,没有很好的利用cpu流水线的乱序发射功能。然而,在本公开实施例中,将现有技术中的for循环拆开,这样可以充分利用cpu流水线的各个阶段,减少流水线气泡,更细粒度的加速程序运行,从而加速预处理。
91.在本公开再一种实施方式中,该方法还可以包括:基于原子的编号确定各原子所归属的分子的分子类型;其中,同一分子类型下的所有分子所包含的原子的编号连续。
92.具体地,电子设备预先可以获知每个分子类型下的所有分子所包含的原子的编号范围。例如,原子体系文件中包括400个原子,原子编号为1-100的原子为蛋白质分子的原子,101-400为水分子的原子。
93.具体地,原子体系中会存在大量属于同一种分子类型的原子,一般会对原子属于哪个蛋白质分子进行记录。因此,现有技术中的预处理方案,是采用循环逻辑,按照从第一个原子到最后一个原子的处理的顺序循环处理的,例如,通常通过如下语句来实现扫描原子体系文件中每一行的原子信息:while(文件行指针未指到文件末尾的下一行){读取文件行指针指向的原子体系文件中的当前行的原子信息;if(这一行原子信息为蛋白质分子的原子的原子信息){对蛋白质分子的原子的原子名称和该原子属于哪个蛋白质分子进行记录;}else{对水分子的原子的原子名称和该原子属于哪个水分子进行记录;}文件行指针向下移动一行;
}但是,在每一次循环中,都会判断当前原子属于蛋白质分子还是属于水分子,所以在循环中存在大量的判断语句,而cpu在执行判断语句时是基于历史预测记录来进行预测的,当cpu预测错误时,会将整个流水线全部清空,增加程序运行时间。
94.有鉴于此,申请人考虑到,属于同一分子类型的分子的所有原子连续记录在原子体系文件中,即它们的原子编号是连续的,例如,蛋白质分子的原子和水分子的原子是分开写入文件的,即蛋白质分子的原子的原子信息存放于原子体系文件的前部,水分子的原子的原子信息存放于文件的后部,而各原子的原子信息存储于缓存区,电子设备可以预先获知每个分子类型下的所有分子所包含的原子的编号范围,因此,可以得到蛋白质分子个数及在体系文件中的起始位置,依据此位置,可以将原来逻辑的循环内嵌套判断语句改为判断语句内嵌套循环,这样将cpu通过比较原子名称来判断是否为蛋白质分子的原子还是水分子的原子这种判断方式,改为原子编号的判断,减少了cpu的判断逻辑,从而提高了cpu预测的准确率,从而加速预处理。例如,针对上述循环逻辑可以修改为如下语句:for(int i = 0; i《原子总数n;i++){if(i《=100){对蛋白质分子的原子的原子名称和该原子属于哪个蛋白质分子进行记录;}else{对水分子的原子的原子名称和该原子属于哪个水分子进行记录;}}相比于现有技术中的方案,由于仅需根据i的值是否超过100即可判断出是否为蛋白质分子的原子,判断方式简单,耗费cpu判断时间较短且提高了cpu的预测命中率。
95.图4是本公开实施例提供的一种预处理加速装置的结构示意图,该预处理加速装置可以被理解为上述电子设备或者上述电子设备中的部分功能模块。如图4所示,该预处理加速装置400包括:第一读取模块410,用于读取原子体系文件,得到各原子的原子信息;第一处理模块420,用于对各所述原子的原子信息进行处理,得到至少两项预设检验对应的检验参考信息;第一检验模块430,用于根据所述至少两项预设检验对应的所述检验参考信息,对原子体系进行所述至少两项预设检验;其中,所述至少两项预设检验包括能量检验、边界检验、拓扑结构检验、原子电荷检验、原子类型统计中的至少两项。
96.在本公开另一种实施方式中,第一处理模块420可以包括:第一确定子模块,用于根据第一个原子的原子信息确定原子体系的起始位置;第二确定子模块,用于根据各原子的原子信息,确定原子间的关联关系;其中,关联关系包括是否属于同一分子;
提取子模块,用于针对每项第一类原子信息,将其从各原子的原子信息中提取出来,得到每项第一类原子信息对应的第一类原子信息集合;其中,第一检验模块430,具体用于根据原子体系的起始位置、关联关系以及每项第一类原子信息对应的第一类原子信息集合,对原子体系进行能量检验边界检验、拓扑结构检验、原子电荷检验、以及原子类型统计。
97.在本公开又一种实施方式中,提取子模,具体用于通过多个第一内核中的每个第一内核,从第一内核对应的原子的原子信息中,将每项第一类原子信息分别提取出来。
98.在本公开再一种实施方式中,该装置还包括:第一存储模块,用于在读取原子体系文件,得到各原子的原子信息之后,将各原子的原子信息存储在缓存区;第一读取模块410,用于在根据第一个原子的原子信息确定原子体系的起始位置之前,通过第二内核,从缓存区中读取第一个原子的原子信息;第一确定子模块,具体用于通过第二内核,根据第一个原子的原子信息确定原子体系的起始位置;第二读取模块,用于在根据各原子的原子信息,确定原子间的关联关系之前,通过第三内核,从缓存区中获取各原子的原子信息;其中,第二确定子模块,具体用于通过第三内核,根据各原子的原子信息,确定原子间的关联关系;第三读取模块,用于在针对每项第一类原子信息,将其从各原子的原子信息中提取出来之前,通过每个第一内核,从缓存区中读取第一内核对应的原子的原子信息。
99.在本公开再一种实施方式中,第一内核与第三内核不同。
100.在本公开再一种实施方式中,第一类原子信息包括原子名称,原子名称对应的第一类原子信息集合为原子名称集合;其中,第一检验模块430可以包括:第一拆分子模块,用于将原子名称集合拆分为多份原子名称子集;第一统计子模块,用于针对每份原子名称子集,统计各原子类型对应的原子数量,得到每份原子名称子集的原子类型统计结果;第二统计子模块,用于基于每份原子名称子集的原子类型统计结果,统计各原子类型对应的总原子数量。
101.在本公开再一种实施方式中,第一类原子信息包括原子电荷,原子电荷对应的第一类原子信息集合为原子电荷集合;其中,第一检验模块430可以包括:第二拆分子模块,用于将原子电荷集合拆分为多份原子电荷子集;第一加和子模块,用于针对每份原子电荷子集,将各原子的电荷进行加和,得到每份原子电荷子集的电荷加和结果;第二加和子模块,用于将每份原子电荷子集的电荷加和结果进行加和,得到总电荷加和结果。
102.本实施例提供的装置能够执行上述图1-图3中任一实施例的方法,其执行方式和有益效果类似,在这里不再赘述。
103.本公开实施例还提供了一种电子设备,该电子设备包括:存储器,存储器中存储有计算机程序;
处理器,用于执行所述计算机程序,当所述计算机程序被所述处理器执行时可以实现上述图1-图3中任一实施例的方法。
104.示例的,图5是本公开实施例中的一种电子设备的结构示意图。下面具体参考图5,其示出了适于用来实现本公开实施例中的电子设备500的结构示意图。本公开实施例中的电子设备500可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、pda(个人数字助理)、pad(平板电脑)、pmp(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字tv、台式计算机等等的固定终端。图5示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
105.如图5所示,电子设备500可以包括处理装置(例如中央处理器、图形处理器等)501,其可以根据存储在只读存储器(rom)502中的程序或者从存储装置508加载到随机访问存储器(ram)503中的程序而执行各种适当的动作和处理。在ram 503中,还存储有电子设备500操作所需的各种程序和数据。处理装置501、rom 502以及ram 503通过总线504彼此相连。输入/输出(i/o)接口505也连接至总线504。
106.通常,以下装置可以连接至i/o接口505:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置506;包括例如液晶显示器(lcd)、扬声器、振动器等的输出装置507;包括例如磁带、硬盘等的存储装置508;以及通信装置509。通信装置509可以允许电子设备500与其他设备进行无线或有线通信以交换数据。虽然图5示出了具有各种装置的电子设备500,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
107.特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置509从网络上被下载和安装,或者从存储装置508被安装,或者从rom 502被安装。在该计算机程序被处理装置501执行时,执行本公开实施例的方法中限定的上述功能。
108.需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、rf(射频)等等,或者上述
的任意合适的组合。
109.在一些实施方式中,客户端、服务器可以利用诸如http(hypertext transfer protocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“lan”),广域网(“wan”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
110.上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
111.上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:读取原子体系文件,得到各原子的原子信息;对各原子的原子信息进行处理,得到至少两项预设检验对应的检验参考信息;根据至少两项预设检验对应的检验参考信息,对原子体系进行至少两项预设检验;其中,至少两项预设检验包括能量检验、边界检验、拓扑结构检验、原子电荷检验、原子类型统计中的至少两项。
112.可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
113.附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
114.描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定。
115.本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、片上系统(soc)、复杂可编程逻辑设备(cpld)等等。
116.在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电
子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
117.本公开实施例还提供一种计算机可读存储介质,所述存储介质中存储有计算机程序,当所述计算机程序被处理器执行时可以实现上述图1-图3中任一实施例的方法,其执行方式和有益效果类似,在这里不再赘述。
118.需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
119.以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1