CN117441208A - 多体模拟 - Google Patents
多体模拟 Download PDFInfo
- Publication number
- CN117441208A CN117441208A CN202280035819.4A CN202280035819A CN117441208A CN 117441208 A CN117441208 A CN 117441208A CN 202280035819 A CN202280035819 A CN 202280035819A CN 117441208 A CN117441208 A CN 117441208A
- Authority
- CN
- China
- Prior art keywords
- atoms
- interaction
- node
- nodes
- atom
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000004088 simulation Methods 0.000 title claims description 47
- 230000003993 interaction Effects 0.000 claims abstract description 196
- 230000006854 communication Effects 0.000 claims abstract description 79
- 238000004891 communication Methods 0.000 claims abstract description 76
- 238000004364 calculation method Methods 0.000 claims abstract description 43
- 238000000329 molecular dynamics simulation Methods 0.000 claims abstract description 11
- 239000002245 particle Substances 0.000 claims description 119
- 238000000034 method Methods 0.000 claims description 78
- 238000012545 processing Methods 0.000 claims description 52
- 230000015654 memory Effects 0.000 claims description 16
- 230000008859 change Effects 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 6
- 230000000694 effects Effects 0.000 claims description 5
- 238000000302 molecular modelling Methods 0.000 claims description 4
- 239000000758 substrate Substances 0.000 claims description 4
- 230000006855 networking Effects 0.000 claims description 2
- 239000000126 substance Substances 0.000 claims description 2
- 230000009977 dual effect Effects 0.000 claims 3
- 238000005094 computer simulation Methods 0.000 claims 1
- 230000007423 decrease Effects 0.000 claims 1
- 238000010295 mobile communication Methods 0.000 claims 1
- 239000004065 semiconductor Substances 0.000 claims 1
- 230000006872 improvement Effects 0.000 abstract description 5
- 125000004429 atom Chemical group 0.000 description 268
- 235000008694 Humulus lupulus Nutrition 0.000 description 13
- 230000006870 function Effects 0.000 description 12
- 238000003860 storage Methods 0.000 description 10
- 238000013459 approach Methods 0.000 description 7
- 230000004888 barrier function Effects 0.000 description 7
- 230000008676 import Effects 0.000 description 7
- 230000010354 integration Effects 0.000 description 7
- 238000000926 separation method Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000033001 locomotion Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000007906 compression Methods 0.000 description 5
- 230000006835 compression Effects 0.000 description 5
- 230000001419 dependent effect Effects 0.000 description 5
- 230000009467 reduction Effects 0.000 description 5
- 230000010076 replication Effects 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000001186 cumulative effect Effects 0.000 description 3
- 230000001934 delay Effects 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 238000002156 mixing Methods 0.000 description 3
- 230000000717 retained effect Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 241001522296 Erithacus rubecula Species 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000001627 detrimental effect Effects 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000013213 extrapolation Methods 0.000 description 2
- 125000004435 hydrogen atom Chemical group [H]* 0.000 description 2
- 230000003278 mimic effect Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000012900 molecular simulation Methods 0.000 description 2
- 230000007935 neutral effect Effects 0.000 description 2
- 239000000243 solution Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 241001614020 Asaphes Species 0.000 description 1
- 206010009696 Clumsiness Diseases 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000000692 anti-sense effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000008602 contraction Effects 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000007876 drug discovery Methods 0.000 description 1
- 125000000524 functional group Chemical group 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 239000012464 large buffer Substances 0.000 description 1
- 239000007788 liquid Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 241000894007 species Species 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
分子动力学模拟器的改进提供了在计算期间节省能量并减少集成电路上消耗的裸片面积的方法。这种改进的示例包括用于不同范围的不同相互作用模块、在相互作用模块阵列中沿着列多播的同时使用沿着行的流式传输、基于平衡计算成本和通信成本来选择计算单元、在连接计算单元的网络中使用围栏、以及使用键计算器来执行专门的键计算。
Description
相关申请
本申请要求于2021年3月19日提交的美国临时申请63/163,552、2021年7月30日提交的美国临时申请63/227,671和2021年11月16日提交的美国临时申请63/279,788的权益,这些申请的内容通过引用并入本文。
发明人先前公开的声明
Shaw、David E、Peter J.Adams、Asaph Azaria、Joseph A.Bank、Brannon Batson、Alistair Bell、Michael Bergdorf等人的“Anton 3:twenty microseconds of moleculardynamics simulation before lunch”,《高性能计算、网络、存储和分析国际会议论文集》,第1-11页,2021年11月,DOI:10.1145/3458817.3487397。
Keun Sup Shim、Brian Greskamp、Brian Towles、Bruce Edwards、J.P.Grossman、David E.Shaw的“The Specialized High-Performance Network on Anton 3”,arXiv:2201.08357v1,2022年1月。
这些出版物通过引用并入本文。
背景技术
本发明涉及多体模拟,更具体地涉及用于分子动力学模拟的设备的电路实现。
发明内容
在以下美国专利中描述了用于多体模拟的设备的电路实现和操作过程的许多示例,这些专利通过引用并入本文:标题为“ORTHOGONAL METHOD”的美国专利7,707,016、标题为“GRID BASED COMPUTATION FOR MULTIPLE BODY SIMULATION”的美国专利7,526,415和标题为“APPROACHES AND ARCHITECTURES FOR COMPUTATION OF PARTICLE INTERACTIONS”的美国专利8,126,956。
本文描述了可以与先前描述的方法结合使用的许多方面,例如,用本文呈现的方面替换子系统的实现或修改子系统。
在许多实现中,用于多体模拟的设备模拟包括多个粒子的物理体积。在分子动力学模拟的背景下,粒子包括原子,该原子的群可以形成分子。
设备包括多个互连处理节点,这些互连处理节点可以布置成三维阵列。在设备的许多使用中,在处理节点和物理体积的正被模拟的物理区域之间存在一对一的关联。实施例包括物理区域是立方体的实施例、物理区域是长方体的实施例、以及物理区域以与处理节点相同的相邻关系布置的实施例。在至少一些实现中,处理节点具有到其直接的邻居的通信路径。这些路径形成环形。
如在先前的专利中描述的,具体粒子的数据存储在与该粒子的物理位置相关联的处理节点中。粒子相互作用的计算通常涉及交换关于粒子的信息,使得处理节点可以计算逐对的相互作用,并且对于至少一些粒子,交换力信息,使得处理节点可以更新这些粒子的位置(和速度)。
可以单独使用或彼此组合使用的下面提及的许多新特征为在基于电路的系统中准确地模拟物理系统的实际问题提供了技术改进。
一个改进是减少了给定模拟所消耗的能量的总量。这种能量的减少使得能够实现更快和/或更小的系统。
另一改进是减少了模拟物理系统所需的时间,这不仅仅是由于使用更快的电路或通用处理器,而且是由于可以更好地使用可用电路的计算和节点间通信的特定布置,例如,通过引入处理元件的特定组合、布置通信和计算方面以减少延迟从而减少各模拟周期所需的时间,以及更有效地使用处理器之间的通信链路。
本文描述的所有实现和方法都是非抽象的,并且提供技术效果。如本文所用,申请人作为其自己的词典编纂者,在此将“非抽象”定义为“抽象”的反义词,因为该术语已由联邦巡回法院和最高法院在本申请提交日定义。因此,将权利要求解释为抽象的任何人将是以直接违背说明书的方式解释权利要求。
在一个方面,发明的特征在于一种用于使一对原子中的两个原子相互作用的混合方法。根据该方法,一个或多于一个计算节点的集合用于使一对原子相互作用。通过平衡必须在集合内的通信节点之间通信关于原子的数据的成本和与计算相互作用相关联的计算复杂性来选择集合。
如本文所使用的,动词“相互作用”应指执行估计由两个原子之间的相互作用而产生的这两个原子的状态变化(如位置、动量、电荷等)所需的计算。在本发明中,术语“原子”和“粒子”应互换使用。
如本文所使用的,术语“原子”不一定意指具有电子随从的原子核。在分子动力学的背景下,“原子”以其原始意义使用,被视为模拟期间的不可分割单位。因此,“原子”可以是原子核、原子核和一个或多于一个电子、键合在一起的多个原子核(例如分子)、或作为大得多的分子的一部分的官能团。
在分子动力学模拟器中,两个原子的相互作用需要关于这两个原子的信息。该信息必须在将执行相互作用的任何计算节点处可用。特定的计算节点具有关于一些但不是所有原子的信息。如果节点已经具有与一对原子的全部两个原子相关联的信息,则没有与发送这种信息相关联的通信成本。另一方面,如果节点不具有关于其中一个原子的信息,则结果导致了通信成本。在某些情况下,节点不具有关于任何一个原子的信息。这导致更大的通信成本。
本文描述的实现在具有较高通信成本以及较低计算复杂性的第一方法和具有较低通信成本以及较高计算复杂性的第二方法之间进行选择。在目前的情况下,第一方法是曼哈顿(Manhattan)法,第二方法是全壳(Full Shell)法。对于各相互作用,模拟器权衡第一方法增加的通信成本和第二方法较高的计算成本,并且选择为各相互作用提供更好性能的计算节点集合。
当与现有的中立区域(Neutral Territory)法(例如在美国专利US7,707,016中描述的方法)相比时,曼哈顿法通常由于在节点之间具有更小的导入量和在节点之间具有更好的计算平衡而改进了性能。曼哈顿法计算与节点中的包含在物理空间中离节点间边界最远的粒子的节点有关的相互作用。然后,将共享结果返回给另一节点。
全壳法在计算上比上述任何一方法都要复杂得多。然而,也需要少得多的通信。由于相互作用是在两个原子的主节点处计算的且因此相互作用不返回到配对的节点,因此产生了通信方面的这种节省。
在另一方面,设备包括在处理节点处用于评估粒子之间逐对的相互作用的电路。
计算一对粒子之间的相互作用可能取决于粒子的分离而有不同的要求。例如,彼此距离较远的粒子可能需要较少的计算,这是因为相互作用不如在这些粒子彼此距离较近的情况下复杂。相互作用的特性的幅值可能较小。所计算的相互作用的特性可能较小。
为了适应这一点,具有用于计算逐对的相互作用的多种类型的处理元件是有用的,其中根据粒子的分离来选择处理元件的类型。
作为示例,在分子动力学的模拟中,非键合粒子在彼此靠近时比更远离时具有更复杂的行为。近和远是由围绕点粒子的球体的截止半径定义的。由于分布在液体中的粒子的接近均匀的密度和截止范围,因此远区域中的粒子通常是近区域中的粒子的三倍。设备通过将彼此靠近的粒子对引导向能够执行更复杂处理的大相互作用模块来利用这一点。相反,彼此远离的粒子对被引导向小相互作用模块,该小相互作用模块执行较低精度的计算,并忽略仅当粒子彼此足够靠近时才重要的某些现象。
使用“大”和“小”是恰当的,因为大相互作用模块物理上尺寸更大。大相互作用模块比小相互作用模块消耗更多的芯片面积,并且每次相互作用还消耗更多的能量。处理节点可以具有比“大”处理元件数量更多的“小”处理元件,以适应模拟体积中粒子的空间分布。
各集成电路的总面积的一部分容纳形成计算流水线的相互作用电路。该相互作用电路执行前述相互作用。
与通用计算机不同,计算流水线是最小可配置的硬件模块,仅具有有限的功能。然而,无论计算流水线做什么,都做得很好。相互作用电路执行相互作用所消耗的能量远低于通用计算机针对相同的相互作用所消耗的能量。可以被看作逐对粒子相互作用模块的这种相互作用电路是集成电路的真正主力。
基板的其它部分上形成有逻辑电路。这种逻辑电路通常包括相互连接以将电力电压转换成输出电压的晶体管。这种转换的结果是相对于相互作用电路发送或接收由电压表示的信息,提供信息的临时存储,或者以其他方式调节信息。
在另一方面,通常,给定粒子的两个集合的数据,处理节点根据粒子之间的距离确定(1)是否评估粒子之间的相互作用,和/或(2)应该使用哪个处理元件来计算粒子之间的相互作用。
一些示例在确定是否评估相互作用时使用关于粒子之间距离的严格阈值。这有助于避免,例如,无意地“重复计算”相互作用(例如,粒子上的力)。
在其他示例中,粒子之间的距离确定了节点的不同类型的处理元件中的哪个类型被用于相互作用。这是特别有利的,因为不同的处理元件执行不同准确性水平的计算。这使得可以选择哪个准确性水平最适合于特定的相互作用。
在这方面,基于距离的决定(即,上面的(1)和(2))是分两个级进行的,增加了精度和/或增加了计算成本。
例如,在第一级,如果保证粒子对超过了阈值分离,则排除这些粒子对。作为另一示例,在第二级,未由第一级排除的粒子对根据它们的分离而被进行处理,例如,以进一步排除超过了阈值分离的粒子对和/或根据分离选择处理元件。例如,第二级对粒子对进行三向确定:一个粒子是否在第二粒子的近区域内(例如,在这种情况下,使用“大”处理元件评估该对),一个粒子是否在第二粒子的远区域内(例如,在这种情况下,使用“小”处理元件评估该对),或者一个粒子是否在第二粒子的远区域的截止半径之外(例如,在这种情况下,不进一步评估该对的相互作用)。
原子之间的相互作用包括考虑重要性随原子之间的距离而变化的现象。认识到这一点,定义距原子的阈值距离是有用的。如果一对原子中的第一和第二原子之间的原子间距离超过该阈值,将使用第一相互作用模块;否则,将使用第二相互作用模块。这两个相互作用模块在复杂性方面不同,其中第一相互作用模块忽略了至少一个在第二相互作用模块中考虑的现象。例如,当距离小时,量子力学影响足够重要以考虑在内。当距离大时,这种影响可以被忽略。
第一相互作用模块在物理上比第二相互作用模块大,因此占用更多的裸片(die)面积。此外,第一相互作用模块比第二相互作用模块每次相互作用消耗更多的能量。
通常,存在以第一原子为中心的球体。位于球体之外的原子根本不相互作用。位于球体内但超过阈值半径的原子使用第二相互作用模块进行相互作用。所有其他原子在第一相互作用模块中相互作用。
为了将相互作用引导到正确的相互作用模块,具有匹配电路是有用的,该匹配电路确定原子间距离,并且基于原子间距离是低于还是高于阈值半径,相应地丢弃所提出的相互作用或者将相互作用引导到第一相互作用模块或第二相互作用模块。
对于均匀的原子密度,预期更多的原子将位于球体的阈值半径之外的部分。因此,具有两个或多于两个第二相互作用模块是有用的。这进一步促进了第二类型的相互作用的并行性。
在一些实施例中,原子首先被保存在存储器中,然后被流式传输到相互作用电路中,特别地,流式传输到将原子引导到适当相互作用模块的匹配电路。匹配电路实现两级滤波器,其中低精度级为粗略的包含性滤波器。在各时钟周期中,低精度级计算各个被流式传输的原子和可能与被流式传输的原子相互作用的多个被存储原子之间的原子间距离。
各原子具有“类型”是有用的。了解原子的“类型”对于选择当该原子是相互作用的参与者时要使用的合适的相互作用方法是有用的。例如,当两个原子的类型已知时,可以查阅查找表来获得关于这两个原子之间的逐对相互作用的性质的信息。
为了避免与大表相关联的笨拙,相互作用模块具有两级表是有用的,其中第一级具有相互作用索引,并且第二级具有与各相互作用索引相关联的相关相互作用类型。相互作用索引表示的数据量比关于原子的类型的信息要少。因此,必须物理地存在于裸片上的表的第一级消耗小面积的裸片。因此,维持该信息也消耗较少的能量。
如上所述,形成计算流水线的相互作用电路仅具有有限的功能性。对于一些相互作用,需要执行相互作用电路不能执行的操作。对于这种情况,与参与原子之一相关联的相互作用类型指示需要特殊操作。为了执行该操作,相互作用电路实现了到相邻的通用核心(本文称为“几何核心”)的活板门(trap-door)。几何核心通常比相互作用电路能效低。然而,其可以执行更复杂的处理。因此,该实现保持了与相互作用电路相关联的能效,同时具有偶尔将计算的一部分分包给效率较低的几何核心的能力。
如上所述,处理节点之间的通信涉及交换关于粒子状态的信息。这种信息包括粒子的位置、速度和/或力中的一个或多于一个。在模拟的连续迭代中,特定的一对处理节点可以发送关于同一粒子的信息。
另一方面,通常,通过参考先前通信的信息来实现通信需求的减少。例如,接收节点可以高速缓存信息(例如,大量粒子),并且发送节点可以在随后的迭代中发送对高速缓存的数据的引用(例如,标签),而不是重新发送完整的数据。
另一方面,通常,发送节点和接收节点共享来自先前迭代的信息,该信息用于预测当前信息中要发送的信息。然后,发送节点相对于所共享的预测而对要在当前迭代中发送的信息进行编码,从而减少要发送的数据量。例如,在发送节点和接收节点共享粒子的先前位置和速度的程度上,例如通过以该先前速度移动粒子并假设速度保持恒定,各节点可以预测当前位置和速度。因此,发送节点只需发送当前位置和所预测的位置之间的差和/或当前速度和所预测的速度之间的差。类似地,可以以类似的方式预测力,并且可以发送所预测的力和所计算的力之间的差。
另一方面,连接系统中处理节点的通信基础设施(例如,节点间通信电路)包括用于节点之间的通信的同步的电路。在前述基础设施的实施例中,包括如下的实施例:节点发出“围栏(fence)”消息,该消息指示消息集合中的所有消息都已被发送和/或指示在围栏消息之后从该节点发送的消息必须在围栏消息之后被传送到目的地。
在前述基础设施的实施例中,还包括如下的实施例:通信基础设施确定何时向目的地节点发送消息,该消息指示来自源节点集合的所有消息已经被传送。在这些实施例中,通信基础设施处理来自源节点集合的围栏消息,并且当已经接收到来自源节点的所有围栏消息时,将围栏消息传送到目的地节点。这种基于基础设施的围栏消息处理可以避免必须在处理节点对之间发送“N2”次消息的需要。
另一方面,用于通过网络连接的大型多处理器计算机的处理器同步机制利用围栏。围栏是向目的地处理器保证不再有更多的数据从所有可能的源到达的屏障。在一些实施例中,围栏是全局屏障,即使计算机中的所有处理器同步。在其他实施例中,围栏是使计算机区域同步的选择性屏障。
在这些实施例中,包括如下的实施例:各个源向各个目的地发送指示发送了最后数据的包,并且各个目的地等待直到已经接收了来自各个源的包。在具有N个处理器的计算机中,全局屏障需要O(N2)个包以从所有源处理器穿越网络到目的地处理器。备选的围栏机制只要求端点处理器发送和接收O(N)个包。其他的实施例包括使用多播和计数器以减少围栏网络流量和端点处的处理的网络,从而减少功耗并减少硅芯片上使用的物理面积,由此减少制造成本。
另一方面,本发明包括用于计算原子对之间的相互作用的相互作用模块,其中本文称为“区块”的计算单元在集成电路或“芯片”内形成行和列的二维阵列。给定区块相对于同一列中的相邻区块或者同一行中的相邻区块发送和接收关于粒子的信息。为了便于说明,关于粒子的信息应简称为“粒子”。
区块存储粒子集合(在下文中称为“存储集粒子”)。在模拟过程期间,该区块接收粒子流(在下文中称为“流集粒子”)。在模拟过程中,区块使各流集粒子与各存储集粒子相互作用。在模拟中的各时间步长处,已经利用区块进行了相互作用的流集粒子沿着该区块的行移动到后续区块,以与该后续区块处的存储集粒子相互作用。另一方面,区块从该区块的行中的前一区块接收新的流集粒子。
为了执行这种逐行流式传输,存在专用的流式传输网络。这种专用的流式传输网络的特征在于位置总线和力总线。位置总线从芯片边缘处的存储器中获得关于粒子位置的信息,并且将该信息通过相互作用电路从一个区块流式传输到下一区块。对于各粒子,力总线累积作用在该粒子上的力,因为这些力是由该粒子通过的相互作用模块计算的。
如上所述,区块也能够与其列中的其他区块通信。这种通信不涉及流集粒子。这种通信涉及存储集粒子。特别地,区块处的存储集粒子被多播到该区块的列中的区块。因此,存储集粒子在同一列中的所有区块上复制。这使得存储集粒子与不同的流集粒子同时相互作用成为可能。
出现的困难是,由于与一个行中的流集粒子的相互作用而作用在存储集粒子上的力不一定可用于另一行中的相应存储集粒子。为了应对该困难,通过简单地遵循最初用于多播存储集粒子的多播模式的倒转,在卸载时在网络中减少针对行中的流集粒子计算的力。
此外,在同一列中的所有区块都准备好开始卸载之前,不允许任何区块开始卸载存储集粒子。为了实现这一点,以跨列内所有区块的四线同步总线的形式提供列同步器是有用的。这种同步总线避免了网络死锁,并且提供了低延迟同步。
在另一方面,本发明包括作为协处理器的键计算器,以帮助通用处理器执行涉及原子之间特定类型的键、特别是共价键的某些专门计算。通用处理器通过向键计算器提供关于原子和键的性质的信息并从键计算器的输出存储器中检索这种处理的结果来启动这种计算。
键计算器的实施例支持键对力的一个或多于一个响应。这种响应包括键长的变化,诸如键的延伸或收缩,键角度的变化(当三个原子键合时可能出现),以及键的二面角或扭转角的变化(诸如当四个键合原子存在时可能出现)。
对力的这些响应在分子模拟中尤其常见。因此,将与确定这些响应相关联的处理卸载到紧凑且专用的电路是特别有用的。这样做减少了计算原子的这种状态变化所需的能量。
在一些实施例中,粒子之间的相互作用采取指数差的形式,例如,exp(-ax)-exp(-bx)的形式,或者作为表示电子云分布卷积的积分的评估。虽然可以分别计算两个指数,然后取差,但这种差可能在数字上不准确(例如,非常大数字的差)。优选的方法是形成该差的一个级数表示。例如,该级数可以是泰勒级数或基于高斯-雅可比求积的级数。此外,维持整体模拟的精度所需的项的数量通常取决于ax和bx的值。因此,在(例如在粒子-粒子-相互作用电路(PPIM)中)计算逐对的项时,不同的特定粒子对、或者基于ax和bx的值的差的不同标准(例如,绝对差、比率等)可以确定要保留多少个级数项。通过减少项的数量(例如,针对许多对粒子的单个项),例如,当两个值接近时,所有逐对相互作用的总体计算可以显著减少,同时维持总体准确性,从而在准确性和性能(计算速度和/或硬件要求)之间提供可控的折衷。
在一些实现中,例如,在不同的处理器中冗余地计算相同的值(例如,粒子上的力),以避免通信成本。例如,这种冗余计算可以发生在“全壳”法中。还存在系统地截断或舍入结果可能对整体模拟有害的情形,例如,由于在一系列迭代中引入偏差。例如,重复向下舍入可能使积分随着时间的推移而显著过小。
避免随着连续时间步长由舍入导致的累积偏差的一个方法是在舍入或截断针对粒子集合计算的值之前添加小的零均值随机数。这方法可以被称为抖动。然而,当在不同的处理器中进行冗余计算时,例如因为随机数生成的顺序不同,没有理由在不同的处理器中生成的伪随机数将是相同的。对于不同的随机数,舍入或截断的值可能不同,以至于模拟可能不会在处理器之间保持完全同步。
优选的方法是使用数据相关随机数生成,其中在计算针对粒子集合的值的所有节点处使用完全相同的数据。生成随机值的一个方式是使用计算中涉及的粒子之间的坐标差作为随机种子,以供生成要在舍入或截断之前添加的随机值。在一些实施例中,三个几何坐标方向各自中的绝对差的低阶位被保留并组合作为散列函数的输入,散列函数的输出被用作随机值或被用作生成一个或多于一个随机数的伪随机数发生器的随机种子。当存在涉及粒子集合的多个计算时,相同的散列用于生成不同的随机数,以添加到计算的结果中。例如,一个随机数(如果分成几部分),或者随机数生成器被用于从同一种子生成一系列随机数。由于坐标距离的值在所有处理器处完全相同,因此散列值将是相同的,并且因此随机数将是相同的。粒子之间的距离可能优于绝对位置,这是因为距离对于平移和环形包裹是不变的,而绝对位置可能不是。计算坐标方向的差不会产生舍入误差,因此可能比欧几里德(标量)距离更优选。
实施例、示例和/或实现利用上述方法的各种组合,并且在不需要将各个方法与其他方法组合使用的情况下可以实现各个方法的优点,包括减少以发送的信息位数测量的通信需求,减少以绝对时间或相对于进行某些计算所需的时间测量的通信的延迟,减少在模拟时间内和对于多个模拟时间步长进行给定模拟的绝对(即“挂钟”(wall-clock))时间,减少进行模拟所需的计算操作的数量,将计算分配到特定的计算模块以减少所需的计算时间和/或功率和/或电路面积,以及/或者使用较少的通信资源的分布式模块之间的同步,以及/或者使用网络通信原语提供更同步的操作。从下面的描述中可以明显看出其他优点。
附图说明
图1是包括布置在三维网格中的计算节点的计算系统的逻辑框图。
图2是图1的计算节点的专用集成电路的结构的图示。
图3是图2的电路的核心区块的逻辑框图。
图4是图2的电路的边缘区块的逻辑框图。
图5A-5C是表示当计算原子之间的相互作用时计算节点之间通信的三个不同示例的图。
图6是图3的逐对粒子相互作用模块核心区块的逻辑框图。
具体实施方式
1 概述
1.1 硬件体系结构
下面的描述公开了硬件系统以及在该硬件系统上执行以实现分子动力学(MD)模拟的计算和通信过程。该模拟预测了化学系统中原子在大量离散时间步长上的三维移动。在各时间步长期间,使用基于物理学的模型来计算原子之间的原子间力。这些原子间力由键项组成,这些键项模仿了通常被1-3个共价键隔开的小原子群之间的力、以及所有剩余原子对之间的非键合力。在各时间步长,将给定原子上的力相加以给出原子上的总力,该总力(根据牛顿第二定律)直接确定原子的加速度,因此(通过随时间积分)可用于将原子位置和原子的速度更新到在下一个时间步长中使用的值。在不对某些计算进行近似的情况下,在各时间步长上计算的原子间力的数量与原子的数量成二次的比例,这意味着随着系统尺寸的增加,求解时间有巨大的增加。此外,稳定且准确的积分需要飞秒量级的时间步长;因此,模拟一微秒的原子运动需要大约10亿个时间步长。
参考图1,计算系统100包括作为单独的硬件元件实现的计算节点120的三维布置。例如,512个节点布置成8×8×8阵列,认识到可以使用不同数量的节点。通常,节点120托管在特定应用硬件和/或在集成在节点中的专用或相对通用的处理器上执行的软件中实现的计算和通信功能这两者。节点120是链接的节点间通信网络,其提供链接节点的通信能力。在图1所示的实施例中,节点间通信网络包括多个节点到节点通信链路110,这些节点到节点通信链路110在节点阵列的三个维度中以环形布置耦合相邻节点。即,如图1所示,各节点120耦合到六个链路,三个维度(例如,x、y和z)各自中有两个链路。尽管节点在图1中被示为立方体,其中链路耦合到各立方体的六个面中的各面,但是可以使用节点的其他物理布置(例如,在电子支架中)。
各节点包括通信元件,通信元件包括支持不相邻的节点之间通信的路由器。如下文进一步讨论的,这种路由器被称为“边缘路由器”。此外,各链路110通常由多个双向信道组成,这些信道又由一个或多于一个串行“通路”组成。例如,各链路110可以由16个通路组成,使得节点具有连接到系统的其他节点120的6×16=96个通路的聚合。因此,边缘路由器提供在耦合到节点的不同通路之间传递通信的通信路径。
参考图2,各个节点120包括被设置为核心(也称为“区块”)的二维阵列的专用集成电路(ASIC),该核心的二维阵列包括核心区块124的中心阵列以及在该阵列的两个相对边界侧上的边缘区块122的线性阵列。例如,中心阵列包括12×24个核心区块,而边缘区块122的各阵列具有12个区块。也就是说,总共有24个边缘区块。各边缘区块122耦合到多个串行信道,例如,各边缘区块经由相应的串行器-反串行器模块(SERDES)118耦合到4个串行信道。通常,边缘区块122为节点间通信以及节点间通信网络和节点内的一个或多于一个内部网络之间提供通信服务,而核心区块124为模拟提供计算服务,也支持节点上内部网络上的通信。
图3更详细地示出核心区块124的组件。网络路由器(也称为“核心路由器”)141将区块中的计算块连接到通用2D网状片上网络,该通用2D网状片上网络包括耦合相邻核心区块124的链路142。除了网状网络之外,专用总线用于分配模拟计算的数据输入和输出。这些总线包括位置总线151和力总线152。如下面将详细描述的,计算的重要部分涉及确定施加在成对的原子之间的力,并且该计算托管在各区块上的两个逐对点相互作用模块(PPIM)132中,这些PPIM通过位置总线151接收位置信息并通过力总线152提供力信息。此外,PPIM用于在PPIM之间传递数据,以使得各PPIM能够与边缘区块122通信。各核心区块124还包括另一计算模块(被称为键计算器(BC)133),该计算模块处置与键合原子相关的力的计算。最后,两个相对更一般的处理模块在各时间步长处置尚未由BC 133或PPIM 132处置的所有剩余计算。这些模块被称为几何核心(GC)134以及其相关联的存储器135(在图3中标记为“flex SRAM”)。
参考图4,各边缘区块122包含用于片外链路110(信道)的逻辑,其中各信道使用一组SERDES118连接到3D环面中芯片的六个邻居之一。各信道还连接到边缘路由器143,边缘路由器143在节点120的同一边缘上经由链路144(即,沿着如图2所示的节点各端的12个边缘区块122的阵列)与其他边缘区块形成边缘网络,从而允许流量在节点间网络中跨维度“转向”。边缘路由器143还经由用于注入和排出数据的链路142连接到核心区块的2D网状网络,并且连接到信道适配器115,信道适配器115经由SERDES118连接到节点间链路110。最后,相互作用控制块(ICB)150将边缘路由器连接到力总线152和位置总线151,力总线152和位置总线151如上所述在核心区块124的阵列间运行。ICB 150包括用于将原子位置发送到位置总线151上的大缓存器和可编程直接存储器存取(DMA)引擎。ICB 150还从力总线152接收原子力,并将原子力发送到边缘网络,以供传送到Flex SRAM 135。
对在2D网状网络上各节点处的通信包的路由使用由核心路由器141实现的维度顺序路由策略。3D环面网络中的路由利用随机维度顺序(即,六个不同维度顺序中的一个)。例如,针对节点的各端点对随机选择顺序。
系统100通常耦合到一个或多于一个其他计算系统。例如,在模拟之前向系统100提供初始化数据和/或软件,并且在模拟期间或模拟完成之后从系统100提供结果位置数据。避免死锁的方法包括使用针对所有响应包的特定维度顺序,以及使用虚拟电路(VC)。
1.2计算体系结构
分子动力学模拟确定三维模拟体积中原子的运动,例如,空间周期性重复以避免边界条件的问题的直线体积。整个模拟体积被分成连续的(即不重叠的)三维盒,这些盒通常具有统一的尺寸。这些盒各自被称为“归属盒(homebox)”。各归属盒与系统的节点120之一相关联(该节点可以被称为“归属盒的节点”),最典型地以一对一的关系,使得节点的几何关系与归属盒的几何关系相同(因此在一对一的情况下,归属盒可以被称为“节点的归属盒”)。在一对一关系的情况下,相邻的归属盒与相邻的节点相关联。注意,在替代实施例中,各节点可以托管多个归属盒,例如,各节点的不同部分被分配给不同的归属盒(例如,针对各归属盒使用不同的区块子集)。为了更清楚地说明,下面的描述假设节点和归属盒的一对一关联。
在模拟时间的任何点,模拟体积中的各原子都驻留在归属盒之一中(即,原子的位置在归属盒的体积内)。至少归属盒的节点存储并负责维持该原子的位置和速度信息。就任何其他节点拥有并依赖于该原子的位置和速度信息的程度而言,保证该信息与原子的归属盒节点处的信息相同(例如,位精确)。模拟在一系列时间步长中进行,例如,各时间步长表示飞秒量级的实时。
在各模拟的时间步长期间,使用基于物理学的模型计算原子之间的原子间力。这些原子间力由键项组成,这些键项模仿了通常被1-3个共价键隔开的小原子群之间的力、以及所有剩余原子对之间的非键合力。给定原子上的力相加以给出原子上的总力,该总力(根据牛顿第二定律)直接确定了原子的加速度,因此(通过随时间积分)可用于将原子位置和速度更新到下一个时间步长的值。在不对某些计算进行近似的情况下,在各时间步长上计算的原子间力的数量与原子的数量成二次的比例,这意味着随着系统尺寸的增加,求解时间有巨大的增加。此外,稳定且准确的积分需要飞秒量级的时间步长;因此,模拟一微秒的原子运动需要大约10亿个时间步长。
为了使这种模拟在计算上易于处理,非键合原子之间的力被表示为有限距离力和长距离力的总和。有限距离力随着距离迅速衰减,并且在原子对之间单独计算,直到截止距离。随着距离更慢衰减的长距离力是使用利用规则网格点晶格的原子的有限距离逐对相互作用、随后是网格上卷积、随后是利用网格点的原子的第二有限距离逐对相互作用来计算的。对计算长距离力的方法的进一步描述可以在美国专利7,526,415号以及在Shan、Yibing、John L.Klepeis、Michael P.Eastwood、Ron O.Dror和David E.Shaw的“Gaussiansplit Ewald:A fast Ewald mesh method for molecular simulation”,化学物理杂志122期、5(2005):054101中找到。
通常,利用在多个不同节点处计算的用于确定任何特定原子上的总力的求和项和/或在一个节点的不同区块处和/或不同模块(例如,一个区块中的PPIM)中计算的项,将各原子的力求和实现为简约分布式硬件。在各节点处,通常在节点处的不同类型的硬件模块中计算不同类型的力(例如,键合、有限距离和长距离)。通过在不同节点120处和各节点内的不同模块处(例如,在不同的核心区块124和/或区块内的不同模块中)进行力计算来实现并行性。如下面进一步讨论的,通过流水线计算(例如,“流式传输”)、将特定力计算所需的信息通信到一个节点并使返回的结果分发以减少总计算,和/或使用在多个节点处的相同力的冗余计算以减少返回结果的延迟,选择计算与通信的权衡来减少总模拟时间(即,针对固定模拟时间的实际计算时间)。
各时间步长通常涉及分布在系统的节点120和通信链路110之间的重叠通信和计算。在至少一些实施例中,在时间步长的起始处,例如基于原子对之间的相互作用,可以在计算节点处开始至少一些计算,其中该对的两个原子位于同一归属盒中,因此位于同一节点处。此外,在时间步长的起始处开始,关于原子的信息(例如,原子的位置)从存储(或以其他方式已知)该信息的节点通信(即,“导出”)到附近的节点(例如,到可能在导出原子的截止半径内具有原子的节点)。随着原子的信息到达其他节点(被称为正被这些节点“导入”/正“导入”到这些节点),可以开始进一步的计算以确定不同归属盒中原子之间的相互作用(例如,力项)。随着计算位置在不同归属盒的原子之间的计算,结果(例如,力项)可以被发送回导入原子信息的节点。注意,计算可以与通信重叠,由此可以在节点处正在发生位置信息的导入时,同时计算与导入的原子的相互作用,同时导出先前导入的原子的力信息。与键合力和有限距离力的计算并行地,使用例如上述基于网格的方法来计算长距离力。对于各原子,一旦在节点(例如,在时间步长的起始处原子位于其归属盒中的节点)处已知该原子上的所有力项,就针对该原子计算总力,并且可以更新该原子的位置。当整个系统中所有的原子位置都已被更新时,时间步长可以结束,然后可以开始下一时间步长。
在至少一些实施例中,近似也可选地用于减少计算需求。例如,某些类型的力比其他类型的力更新得少,例如,仅在每秒或第三个模拟时间步长上计算长距离力。此外,刚性约束可选地用于消除氢原子的最快运动,从而允许高达约2.5飞秒的时间步长。可选地,氢原子的质量被人为地增加,从而允许时间步长长达4-5fs。
对于各时间步长,每个原子需要大约104次数值运算,即使结合这些优化和近似,这也相当于在一百万个原子的系统上每微秒模拟时间大约1018次运算。这种计算强度部分地通过使用下面描述的一个或多于一个技术来解决,认识到除非另有规定,否则这些技术中没有一个对系统的操作是必不可少的。
2逐对计算
如上所述,计算过程的一个部分涉及计算在彼此的截止半径内的原子对之间的非键合相互作用的影响(即,有限距离相互作用)。对于任何一个原子,这种计算涉及将在该原子的截止半径内的其他原子施加在该原子上的力(即方向和幅值和/或矢量表示)相加,以确定所有这些非键合相互作用的总(聚合)力。
参考图5A-C,至少存在三个方式可以在系统中计算两个原子之间的相互作用。参考图5A,如果两个原子P1和P2(530)在同一归属盒A(520)中,则可以在归属盒的节点A(120)处计算原子P1和P2之间的相互作用,从而产生用于计算P1上的总力的力项以及用于计算由与P1的相互作用产生的P2上的总力的力项(例如,相等且相反的力)。计算这些项不需要节点间通信,因为节点已经具有针对这两个原子的数据。
参考图5B,计算位于不同归属盒中的两个原子(例如,分别位于归属盒(520)A和B中的原子P1和P3(530))之间的相互作用的一个方式,将P3的位置信息从节点B通信到节点A。一旦节点A具有原子P1和P3这两者的信息,就可以计算两个原子之间的相互作用。节点A保持P3施加在P1上的力以累积到P1上的总力中,并将P1施加在P3上的力(标记为“P1-P3”力)从节点A发送到节点B。在节点B处,将P1-P3力累积到P3上的总力中。注意,仅一个节点计算P1和P3之间的相互作用,并且节点A(至少出于计算P1-P3相互作用的目的)不需要将P1的位置信息发送到节点B。
参考图5C,计算位于不同归属盒中的两个原子(例如,分别位于归属盒A和E中的原子P1和P4(530))之间的相互作用的另一方式,将P1的位置信息从节点A通信到节点E,并且将P4的位置信息从节点E通信到节点A。节点A计算P4-P1相互作用,并且节点E还计算P1-P4相互作用。节点A使用结果以累积到P1上的总力中,并且节点E使用其结果以累积到P4上的总力中。节点A不需要向节点E发送P1-P4力项,节点E也不需要向节点A发送P4-P1力。注意,归属盒A和E不一定相邻,因此节点A和E之间的通信是间接的,例如如图所示,经由另一节点C。
如上所示,例如,参考图5B和5C,计算在彼此的截止半径内但不位于同一归属盒中的原子之间的逐对相互作用的一个方法是将归属盒的在截止半径内的所有原子的数据导入到该节点的归属盒中。注意,确定导入哪个原子(或者相反,哪些原子从其归属盒的节点导出)可以基于必须从其中导入原子的区域的规范。该区域可以以保守(即,最坏情况)方式定义,使得保证导入区域导入所有原子,而不管原子在导入节点的归属盒中的具体位置或在导入区域中导入的原子的具体位置。因此,节点的导入区域可以基于截止半径和归属盒以及附近归属盒的几何体积,并且通常在模拟起始之前确定,而无需考虑原子在模拟体积中的具体位置。该示例中使用的导入区域可以被称为“全壳”导入区域。
在该示例中,当已经在节点的归属盒中的两个原子如图5A所示在该节点处计算它们的相互作用时,该节点应用混合方法来确定是使用图5C所示的方法来计算来自不同归属盒的原子之间的相互作用、还是使用图5B中的方法。对于使用图5B中的方法的相互作用,虽然各原子的归属盒的节点具有足够的信息来计算相互作用,但是这两个节点使用相同的规则来确定哪个节点将计算相互作用。
确定特定原子对的两个节点中的哪个来计算相互作用的规则的一个示例在下面被称为“曼哈顿距离”规则。该规则可以表述如下。两个原子之间的相互作用是在如下的节点上计算的,在两个原子中,该节点的原子到另一节点的归属盒的最近角具有较大曼哈顿距离(x、y和z距离分量之和)。在图5B所示的示例中,原子P1到归属盒B的最近角的曼哈顿距离大于原子P2到归属盒A的最近角的曼哈顿距离,因此节点A计算P1和P2之间的相互作用,并且节点B不计算该相互作用(或者如果由于某种原因节点B计算该相互作用,则至少不重复计算这种计算的结果)。注意,曼哈顿距离规则只是用于例如在图5C中的节点A和B之间进行选择的一个计算有效的分布式规则,然而应该认识到还可以使用其他规则。
通常基于延迟考虑决定是否使用图5C所示的方法(在两个节点处计算两个原子之间的相互作用的计算),或者是否使用图5B所示的方法(在一个节点处进行计算,并且结果返回到另一节点)。例如,虽然仅在一个节点处计算相互作用可以减少总的计算量,但是引入了将计算结果返回到另一节点的通信成本。这种成本影响总的节点间网络流量,但可能更重要的是引入延迟。如果在两个节点之间的路径中有多个“跳”,这种延迟可能是显著的。
节点决定是应用曼哈顿距离规则(图5B)还是应用图5C所示的方法(可以被称为“全壳”规则)的一个方法是基于节点之间的网络接近度。对于特定节点,为该节点提供导入区域中的原子的节点被分为近邻和远邻。在一个示例中,节点的近邻是具有直接节点间连接(例如,图1中的链路110)的这些节点,而远邻具有间接连接(即,多跳连接(例如,通过多个链路110)。基于接近度的决定的示例是将曼哈顿距离规则应用于从近邻导入的所有原子,并且将全壳规则应用于从远邻导入的原子。可以不同地做出近邻和远邻的决定,例如,以在计算、网络流量和通信延迟之间产生不同的权衡,例如,定义近邻为彼此在一跳之内,如果彼此相距两跳或多于两跳,则是远邻。此外,在至少一些示例中,所有相邻节点被确定为近或远。虽然通常近和远的定义对于所有节点是一样的,但是在不同的节点处具有不同的定义也是可能的,例如基于诸如节点附近的预期原子数等的考虑因素。
因此,作为示例,在混合方法中在节点处应用的过程如下:
(a)如果两个原子位于同一归属盒中,则在该归属盒的节点处计算这两个原子之间的相互作用,并且该计算产生被聚合到这两个原子各自的总力中的相应力;
(b)如果两个原子位于不同归属盒中,并且在这些归属盒的节点之间存在直接的通信链路,则在如下的节点上计算两个原子之间的相互作用,在两个原子中的该节点的原子到另一节点的归属盒的最近角具有较大曼哈顿距离(x、y和z距离分量之和),并且未进行计算的节点处的针对原子的信息(例如,位置数据)是从维持该节点的数据的节点发送的,并且该原子上的力被返回到将被聚集的节点;
(c)如果两个原子位于不直接链接的不同归属盒中,则通过在时间步长的起始处交换各原子的数据,在两个归属盒中各自中计算相互作用,但是由于在这两个节点上的相同结果的冗余计算,因而不需要返回计算的力。
3专门的逐对相互作用模块
如上所述,给定节点120从附近的节点接收原子的数据,以便该节点具有分配给它例如根据如上所述的混合规则用于计算的所有逐对相互作用的所有所需数据。此外,如上所述,由于保守地定义了节点的导入区域,通常存在至少一些原子对可用于在节点处计算两个原子是否分离超过截止半径。
通常,对于节点的归属盒中的各原子,该节点排除与超过截止半径的其他原子(即,与导入的原子)的任何逐对计算。对于截止半径内的一对原子,节点例如根据上述混合规则确定是否将计算分配给该节点。
在各模拟时间步长期间,在下面进一步描述的节点内通信处理中,第一集合原子的数据被存储在节点的PPIM 132中,第一集合的各原子存储在PPIM的子集(通常小于全部)。然后,第二集合原子的数据被流式传输到PPIM。通信处理保证考虑了各对潜在相互作用的原子(其中一个原子来自第一集合,并且一个原子来自第二集合),以使得恰好一个PPIM进行计算。在一些示例中,第一集合原子由节点的归属盒中的原子组成,并且第二集合原子由节点的归属盒中的原子以及来自导入区域的被导入的原子组成。更一般地,决定什么构成第一集合和第二集合是这样的,即恰好节点的一个PPIM处考虑第一集合中的原子和第二集合中的原子之间的所有相互作用对。
参考图6,分配给特定PPIM 132(即,图6所示的PPIM,它是许多PPIM中的一个)的第一集合原子的原子被存储在匹配单元610中(或者以其他方式可从耦合到匹配单元610的存储器中获得)。在一些实施例中,匹配单元610被实现为多个独立匹配单元(例如96个这样的单元)的并行布置。一个匹配单元或并行匹配单元一起的实现是为了接收第二集合的原子的数据,并形成该原子和第一集合的原子的匹配对以供进一步考虑,同时从进一步考虑中排除保证相距远于截止半径的这些对。通常,至少一些匹配的原子对分离超过截止半径。匹配单元610被称为“级别1(L1)”匹配单元,因为它根据比分离的精确计算需要更少操作的计算,通过将第二集合的到达原子与第一集合的各个被存储原子相匹配来做出保守决定。这种简化运算计算的一个示例是确定第二原子是否在以第一集合的原子的位置为中心的多面体内。多面体被选择为完全包含截止半径的球体(即,保证不排除在截止半径处或彼此更接近的任何原子对),因此没有原子对被不恰当地排除,但是通常存在一些被匹配的多余的原子对。第二集合的原子是否在多面体内的计算比准确地计算原子之间的真实距离所需的三个维度中原子之间距离的平方相加需要更少的计算。多面体的一个示例是由不等式|Δx|≤Rcut、|Δy|≤Rcut和|Δz|≤Rcut定义的。注意,检查这些不等式不需要任何乘法,并且可选地可以使用较低精度的算术和比较电路,此外,可以使用其他更低复杂性的匹配计算(例如,添加进一步的不等式以创建小的多面体体积)。
由匹配单元610保留的各原子对(即,由于通过了定义多面体的所有不等式)被传递给匹配单元集合620(其被称为“级别2(L2)”匹配单元)之一。基于负载平衡方法(例如,轮询调度(round robin))来选择对被传递到的特定L2匹配单元。在该示例中,这些L2匹配单元各自通过以下方式来进行三向确定:首先计算高精度原子间距离或平方距离(例如d=(Δx)2+(Δy)2+(Δz)2),然后(a)确定为计算的距离大于截止半径(即,L1匹配单元610基于近似边界多面体找到要匹配的对),(b)确定为该对原子以中距离和截止半径之间的距离分离,以及(c)确定为该原子以小于中距离分离。在一些示例中,截止半径可以是8埃,而中距离可以是5埃。
如果确定为一对原子之间的距离大于截止半径,则L2匹配单元620丢弃该对原子。如果确定为距离在中距离和截止半径之间,则该对经由多路复用器622从L2匹配单元被传递到“小”的粒子-粒子相互作用流水线(PPIP)630。如果确定为距离小于中距离,则该对经由多路复用器624从L2匹配单元被传递到“大”PPIP 624。随着PPIP 630、624计算原子上的力项时,这些力从PPIM被传递出去。
“小”PPIP 630和“大”PPIP 624之间可能存在一个或多于一个不同。可以利用的一个不同是,因为由小PPIP 630处理的原子对之间的距离至少是中距离,所以力的幅值通常小于原子更靠近一起时的幅值。因此,小PPIP的硬件算术单元可以使用更少的位,这是因为不必容纳超过一定幅值的结果,这可以得到更少的逻辑门。例如,乘法器规模为位数的平方(w2),而加法器规模为超线性(wlogw)。例如,大PPIP可以给出23位数据路径,而小PPIP可以具有14位数据路径。在一些实施例中,可以使用硬件复杂性的其他降低,例如,通过简化力计算的形式或通过降低所得到的力的表示的精度(例如,去除最低有效位)。
与此相对,大PPIP 624适应附近原子之间的相互作用的计算,这可能需要更多位来表示附近原子之间力的潜在幅值。在一些实施例中,即使原子非常靠近一起,力计算的形式也可能更复杂并且是计算密集的,例如以提供准确性。
中半径的选择可以基于各种考虑,用于在大PPIP与小PPIP之间分配负载的负载平衡考虑,或者基于PPIP的计算能力。基于截止半径的球体和中半径的球体的体积具有8:5的比率,预期由小PPIP考虑的相互作用的数量与大PPIP相比约为3:1,这促使实现了针对每个PPIM 132的三个小PPIP 630和一个大PPIP 624。在硬件实现中,三个小PPIP消耗与一个大PPIP大致相同的电路面积和/或相同的功率。
在一些替代方案中,将匹配的原子对路由到大PPIP还是小PPIP的决定可以另外或代替地基于两个原子之间相互作用的性质。例如,即使分离大于中半径,L2匹配单元也可以基于原子对的特性确定为需要大PPIP。
不管到达PPIM的第二集合的原子在PPIM内采取的路径(即,经由小PPIP或大PPIP)是否为粒子总线151,力计算的结果都经由力总线152从PPIM发出。
4粒子相互作用表
如上所述,原子具有与其相关联的变化(即“动态”)信息,诸如原子的位置和原子的速度等,这些信息基于从不同原子施加到该原子的力在模拟时间步长处更新。原子还具有在模拟时段期间不变的静态信息。在节点之间传递的针对原子的数据包括元数据,例如,伴随所发送的动态信息的唯一标识符和原子类型(被称为原子的“atype”),而不是在节点之间传递该静态信息以及节点的动态信息。例如,atype字段可以用于查找PPIM中原子的电荷。基于在分子中的共价键,同一原子种类可以使用不同的atype。
例如,在L1匹配单元610中匹配两个原子之后,并且在计算两个原子之间的相互作用之前,使用间接表查找来确定相互作用的类型。例如,L1匹配单元或可替代地L2匹配单元确定各原子的atype,并且分别针对各原子例如基于表查找来确定该原子的扩展标识符。然后,扩展标识符对一起作为索引的一部分,该索引用于访问关联存储器(例如,存在于L1或L2匹配单元内或可被L1或L2匹配单元访问),以产生索引记录,该索引记录确定如何进行两个原子之间的相互作用的计算。例如,可以在索引记录的字段中标识计算函数(例如,函数形式)的枚举集合之一。当两个原子的元数据传递给大PPIP或小PPIP时,函数形式的标识符可以伴随着元数据。在一些示例中,如如果一些函数形式可以由大PPIP而不是小PPIP来计算,则函数形式还可以确定匹配对将被路由到什么类型的PPIP。
5通信压缩
如上所述,在各模拟时间步长,节点将原子位置信息导出到其导出区域中的附近节点,使得所有节点接收其各自导入区域中的所有原子。注意,在上述示例中,节点的导出区域与节点的导入区域相同。
通常,模拟中的原子位置随着时间缓慢而平稳地变化,这为数据压缩提供了机会。因此,当节点在连续的模拟时间步长发送原子位置信息时,位置通常在时间步长之间变化很小。数据量(即,需要通信的位数)的各种形式的压缩减少了通信要求,从而减少了在节点之间传送原子信息所需的时间。
一种压缩方法是通过接收节点维持其从其导入区域中的节点接收的一些或所有原子的先前位置(或更一般地,多个先前位置的历史)的高速缓存来实现的。发送节点知道接收节点保证具有针对哪些原子的高速缓存信息,并且接收节点处的高速缓存信息对于接收节点和发送节点这两者都是确切知道的。因此,当节点A向节点B发送(即“导出”)原子的位置信息时,如果节点A知道节点B没有该原子的高速缓存信息(或者至少不确定节点B确实有这样的高速缓存信息),则节点A发送完整的信息。当节点B接收到该原子的位置信息时,节点B高速缓存该位置信息以在随后的模拟时间步长使用。另一方面,如果节点A知道节点B具有原子的高速缓存信息,则作为新位置和该原子的高速缓存信息的函数的压缩信息可以从节点B发送到节点A。例如,节点A可以计算先前位置和当前位置之间的差并发送该差,而不是发送当前位置。接收节点B接收该差,并将该差加到先前位置,以产生在接收节点B处使用的新位置。如下文进一步讨论的,通常,差的幅值比节点B的归属盒内的绝对位置小得多,因此可能需要更少的位(平均而言)来通信差。不仅仅是原子的高速缓存的先前位置,例如,其他压缩也是可能的。例如,对于原子的两个先前位置,节点可以近似原子的速度,根据先前位置进行预测,然后根据预测和实际位置计算差。这种预测可以被认为是原子的位置的线性预测(外推)。通常,该差平均而言可以具有比与先前位置的差更小的幅值。只要发送节点和接收节点都使用相同的预测函数,并且这两个节点都具有用于进行预测的相同的先前位置记录(或从先前位置推断的其他概要/状态),就可以使用各种替代的预测函数。例如,对于三个先前位置,可以使用原子的位置的二次外推。
存在许多发送节点知道哪些原子被高速缓存在接收节点的替代方式。一个方式是在各节点处提供充足的内存,使得如果节点在一个时间步长发送位置信息,可以确保接收节点在下一时间步长高速缓存了该节点的信息。另一方式是发送节点和接收节点这两者以相同的方式做出高速缓存和高速缓存弹出决定,例如,各节点对彼此的节点具有固定数量的高速缓存位置,以及当位置不足以对所有原子进行高速缓存时对哪些原子进行弹出或不高速缓存的规则。又一方式是节点将关于原子是否被高速缓存的显式信息发送回发送节点,例如,结合可以发送回原子的归属盒节点的力信息。在其他替代方案中,可能偏好于高速缓存需要经由节点间网络的更多“跳”的原子,从而减少整体网络使用率。
在节点处存在用以维持高速缓存信息的许多替代电路位置。在一个替代方案中,高速缓存信息被维持在节点的边缘,例如在边缘网络区块122中(参见例如图4)。例如,可以在信道适配器115处维持高速缓存信息。在特定原子可以在不同时间步长通过不同链路110到达的示例中(例如,由于时间步长与时间步长之间的路由差),高速缓存信息可以通过共享存储器或通过复制到信道适配器而被多个信道适配器115访问。在一些替代方案中,可以在别处(例如在PPIM的匹配单元中)存储并应用高速缓存信息。
在降低了从节点发送到节点的位置信息的幅值之后,利用较小的幅值的一个方式是使用信息的可变长度编码。例如,该幅值的前导零可以被抑制或被游程编码(例如,通过使用跟随有符号位编码的幅值,使得小的负数和小的正数具有前导零)。前导零的数量可以由前导零字节数量的指示符(跟随有任何非零字节)表示。在一些示例中,不同原子的多个差被以位进行交错,并且对前导零部分的长度进行编码的处理被应用于交错表示。由于差可能倾向于具有相似的幅值,因此使用交错表示可以更高效地编码前导零部分的长度。
在这种压缩技术的实验评估中,与发送全部的位置信息相比,大约需要一半的通信容量。在通信延迟对模拟各时间步长所需的时间有贡献的程度上,通信总量的这种减少降低了模拟给定模拟持续时间所需的实时总量。此外,在一些实验评估中,通信需求的减少避免了通信成为模拟速度的限制因素。
6网络围栏
可以理解,系统节点处的分布式计算需要一定程度的同步。例如,重要的是,当在特定模拟时间步长在节点处进行计算时,输入(即原子位置)是与时间步长的起始相关联的输入,并且结果被正确应用以更新该时间步长结束时的原子的位置。一个同步方法利用内置于节点间网络中的硬件同步功能(“原语”)。下面描述的一个这样的原语被称为“网络围栏”。
网络围栏是用围栏包实现的。在节点B处接收到从节点A发送的围栏包向节点B通知了,在来自节点A的围栏包之前从节点A发送的所有包已经到达节点B。围栏包被视为与在系统的节点之间发送的其他包非常相似。包括包合并和多播支持的网络特征降低了发送围栏包所需的总通信要求(例如,“带宽”)。
各源组件在发送其希望在围栏包之前到达目的地的包之后发送该围栏包。然后,网络围栏保证目的地组件仅在接收到在围栏包之前从所有源组件发送的所有包之后才接收到该围栏包。网络围栏的排序保证建立在以下的基础排序属性和事实上,该基础排序属性为,沿着给定路径(例如,以特定维度路由顺序)从源到目的地发送的包总是按照它们被发送的顺序传送,并且该事实为,来自特定源的围栏包沿着来自该源的包可以到达该网络围栏的所有可能目的地的所有可能路径被多播。
网络中的寻址允许包被寻址到节点内的特定模块或模块组。例如,包可以被寻址到节点的几何核心134,而另一包可以被寻址到节点的ICM模块150。在一些示例中,从节点发送的围栏包包括源-目的地模式,诸如几何核心到几何核心(GC到GC)或几何核心到ICB(GC到ICB),以及多个跳。然后,围栏的功能特定于与模式相匹配的包。跳的数量指示围栏消息在网络中传播的距离。例如,ICB对GC到ICB模式围栏包的接收指示为,ICB已经从指定数量的节点间(即,环面)跳内的所有GC接收到在该围栏包之前发送的所有原子位置包。这是模拟中的常见用例,节点接收原子信息的导入区域具有来自该导入区域中任何源节点的最大数量的节点间的跳。通过限制网络跳的数量,网络围栏可以实现减少的有限同步域的延迟。注意,最大数量跳以内的各个源发送围栏包,因此接收节点基于网络中节点的固定互连知道该节点期望接收多少围栏包。
为了限制传播围栏包的通信要求,节点间网络的示例实现下面描述的合并和/或多播功能。
当围栏包到达节点的输入端口(即,到达节点的边缘路由器143)时,节点合并围栏包,而不是将包转发到输出端口。该合并是通过递增围栏计数器来实现的。当围栏计数器达到预期值时,单个围栏包被发送到各输出端口。在一些示例中,围栏输出掩码用于确定围栏应该多播到的输出端口的集合。进行这种确定的一个方式是,对于输入端口i,如果围栏包需要在该路由器内从输入端口i行进到输出端口j,则设置输出掩码的位j。当围栏包被发送出时,计数器被重置为零。由于路由器可以在等待最后到达的围栏包的同时持续转发非围栏包,因此在围栏包之后发送的正常流量可以在围栏包之前到达目的地(即,网络围栏充当单向屏障)。
软件针对各围栏模式预先配置预期计数和围栏输出掩模。例如,特定输入端口可能预期来自上游节点的两个不同路径的围栏包。由于合并而导致的各路径将到达一个围栏包,因此输入端口将接收共两个围栏包,从而将预期计数设置为2。围栏计数器宽度(位的数量)受路由器端口数量的限制(例如,针对六端口路由器的3位)。该示例中的围栏输出掩码将针对围栏包多播到的两个输出端口设置两位。
节点间环面网络的路由算法利用六个可能维度级的路径分集,以及各连接邻居的两个物理信道切片。此外,采用多个虚拟电路(VC)以避免节点间网络中的网络死锁,这意味着围栏包必须沿着包可以行进的有效路由被发送到所有可能的VC。当网络围栏跨过信道时,围栏包因此由信道适配器115在所有可能的请求类VC上注入到边缘网络144。尽管一些跳可能不一定利用所有这些VC,但该规则确保网络围栏覆盖整个网络中所有可能的路径,并且简化了围栏的实现,这是因为无论包采用的跳的数量如何,都可以使用相同的VC集合。在边缘路由器143内,必须针对各VC使用单独的围栏计数器;仅可以合并来自同一VC的围栏包。
以上描述仅限于网络中的单个网络围栏。通过在路由器中添加更多的围栏计数器,网络支持并发的未完成网络围栏,从而允许软件重叠多个围栏操作(例如,多达14个)。为了减少边缘路由器中围栏计数器阵列的大小要求,网络适配器实现流控机制,该机制通过限制新网络围栏的注入来控制边缘网络中并发网络围栏的数量。这些流控机制允许使用针对边缘路由器的每个输入端口仅96个围栏计数器来实现网络围栏。
具有几何核心到几何核心(GC到GC)模式的网络围栏可以用作同步给定数量的环面跳内的所有GC的屏障;一旦GC已经接收了围栏,GC就知道所有其他GC都发送了围栏。注意,当GC到GC网络围栏的节点间跳的数量被设置为机器直径(即,3D环面网络上到达所有节点的跳的最大数量)时,表现为全局屏障。
7节点内数据通信
在模拟时间步长的开始处,节点的各核心区块124已经在其存储器中存储了针对该节点的归属盒中的原子在先前时间步长期间计算的原子位置的子集。在时间步长的计算期间,在该节点的PPIM处将需要这些位置,在该节点的导出区域内的节点处也将需要这些位置。如上所述,节点具有2D网状网络,该2D网状网络具有链路142和核心路由器141。原子的位置在2D网状网络的列上广播,使得在时间步长的开始,各列中的PPIM具有存储在该列中的任何核心区块中的所有原子。同时,各核心区块沿着2D网络的行将原子位置发送到节点的同一行中的各边缘上的边缘区块122。边缘区块负责将这些原子位置转发到节点的导出区域的其他节点。
一旦所有PPIM都具有原子位置的副本,则经由位置总线151从一个边缘传递到另一边缘的任何其他原子被保证在恰好一个PPIM中遇到节点的归属盒中的各原子,并且如上所述,如果两个原子在彼此的截止半径内,则可以被匹配。因此,可以在节点中开始PPIM中原子之间的逐对相互作用的计算。
初始PPIM计算仅需要节点本地原子信息(即,都在节点的归属盒中的原子之间的相互作用),其中各核心区块使其原子位置通过位置总线151在PPIM的行上广播,从而使得进行所有节点本地计算(参见例如图5A)。所得到的力分量在力总线152上广播,并且在存储原子信息的核心时间被检索到。
随着原子位置信息从其他节点到达边缘区块,来自边缘区块的位置信息从边缘区块在核心区块的行之间流式传输,从而使得被导入的各原子恰好在一个PPIM处遇到节点的归属盒中要遇到的各原子。这些相互作用产生在PPIM中针对如下原子而累积的力,对于该原子,节点负责计算和累积力,和/或通过力总线152将力流式传输回边缘区块,以返回到提供用于相互作用的位置信息的节点。当流式传输完成时,PPIM中累积的力在核心区块的列中被通信,并且被传递到保存原子信息的核心区块。
在核心区块已经接收到所有力项(无论是来自同一节点上的其他核心区块,还是来自其他节点的返回)之后,核心区块可以使用总力来进行数值积分,这更新了各原子的位置。
在上述实现中,由于各列具有12个核心区块和每个核心区块2个PPIM,每列共有24个PPIM,因此节点的归属盒有24倍的原子信息复制。虽然这种复制可以有效地提供并行计算,但替代方案不需要这种程度的复制。例如,虽然全部的24倍的复制允许要匹配的任何原子通过单个位置总线151被传递,并且被保证遇到节点的归属盒中的所有原子,但是通过在多个位置总线上传递各原子,更少的复制是可能的。例如,不在列的核心区块上复制,并且在核心区块的两个PPIM中划分核心区块的原子,各原子可以通过所有位置总线151被发送,并且被保证在恰好一个PPIM中遇到各归属盒原子。也可以使用中间级别的复制,例如,核心区块可以被划分成子集,然后各原子需要通过各子集的一个位置总线被发送,以遇到所有的归属盒原子。
作为另一种替代实现,可以使用分页方法来访问归属盒的原子。在这方法中,ICB150可以将存储的原子集合(例如,使用不同存储区域的“页”)加载和卸载到PPIM,然后可以一次针对各集合跨PPIM流式传输各原子。因此,在已经流式传输多次之后,保证原子只遇到节点的归属盒原子各自恰好一次。在各页的末尾,PPIM流式传输出其归属盒原子上的累积力。
8键计算
如上面参考图3所介绍的,各核心区块包括键计算器模块(BC)133,该模块由区块用于直接键合或在一些配置中间接键合的原子之间的相互作用。并非所有的键合力都由BC计算。而是,在BC中仅计算最常见的和数值上“表现良好”的相互作用,而在几何核心134中计算其他更复杂的键计算。注意,这有点类似于使用小PPIP计算相互作用的子集,并且使用大PPIP计算剩余的相互作用,这可能需要更复杂的相互作用公式。
BC确定力,包括拉伸力、角度力和扭力。对于各种类型的键,力被计算为标量内部坐标(例如,键的长度或角度)的函数,标量内部坐标是根据参与键的原子的位置计算的。区块的GC 134(即,区块的两个GC之一)将这些原子位置发送到BC 133以保存在小高速缓存中,这是因为原子可以参与多个键项。随后,GC发送指定要计算的键项的BC命令,BC根据该命令从高速缓存中检索相应的原子位置,并且计算适当的内部坐标,从而计算键合力。各个键的原子上的所得力被累积在BC的本地高速缓存中,并且在所有原子的键项计算完成时,仅针对每个原子一次地将所得力发送回存储器。
9指数差
在一些示例中,粒子之间的相互作用采取指数差的形式,例如,形式exp(-ax)-exp(-bx),或者作为表示电子云分布卷积的积分的评估。虽然可以分别计算两个指数,然后取差,但这种差可能在数字上不准确(例如,非常大数字的差)。优选的方法是形成该差的一个级数表示。例如,级数可以是泰勒级数或基于高斯-雅可比求积的级数。此外,维持整体模拟的精度所需的项的数量通常取决于ax和bx的值。因此,在计算逐对的项(例如,在小或大PPIP中)时,不同的特定原子对,在该对的索引记录中检索的不同信息,或者基于ax和bx的值的差的不同标准(例如,绝对差、比率等)可以确定要保留多少个级数项。通过减少项的数量(例如,针对许多对粒子的单个项),例如,当两个值接近时,所有逐对相互作用的总体计算可以显著减少,同时维持总体准确性,从而在准确性和性能(计算速度和/或硬件要求)之间提供可控的折衷。
10分布式随机化
在一些示例中,例如,在不同的处理器中冗余地计算相同的值(例如,原子上的力),以避免通信成本。例如,这种冗余计算可以发生在“全壳”法中(例如,在如图5C所示的相互作用中)。还存在系统地截断或舍入结果可能对整体模拟有害的情形,例如,由于在一系列迭代中引入偏差。例如,重复向下舍入可能使积分随着时间的推移而显著过小。
避免随着连续时间步长由舍入导致的累积偏差的一个方法是在舍入或截断针对粒子集合计算的值之前添加小的零均值随机数。这方法可以被称为抖动。然而,当在不同的处理器中进行冗余计算时,没有理由在不同的处理器中生成的伪随机数将一定是相同的,例如,这是因为即使原始种子是相同的,随机数生成的顺序也不同。对于不同的随机数,舍入或截断的值可能不同,以至于模拟可能不会在处理器之间保持完全同步(例如,以精确的位表示同步)。
优选的方法是使用数据相关随机数生成,其中在计算针对粒子集合的值的所有节点处使用完全相同的数据。生成随机值的一个方式是使用计算中涉及的粒子之间的坐标差作为随机种子,以供生成要在舍入或截断之前添加的随机值。在一些实施例中,三个几何坐标方向各自中的绝对差的低阶位被保留并组合作为散列函数的输入,散列函数的输出被用作随机值或被用作生成一个或多于一个随机数的伪随机数发生器的随机种子。当存在涉及粒子集合的多个计算时,相同的散列用于生成不同的随机数,以添加到计算的结果中。例如,一个随机数(如果分成几部分),或者随机数生成器被用于从同一种子生成一系列随机数。由于坐标距离的值在所有处理器处完全相同,因此散列值将是相同的,并且因此随机数将是相同的。粒子之间的距离可能优于绝对位置,这是因为距离对于平移和环形包裹是不变的,而绝对位置可能不是。计算坐标方向的差不会产生舍入误差,因此可能比欧几里德(标量)距离更优选。
11总结
上面描述了许多不同的技术,例如,在上面不同编号的部分中描述了许多不同的技术。除非另有讨论,否则可以单独选择这些技术以包括在创新的模拟系统和计算方法的特定示例中,并且除非从描述中明显,否则没有特定的技术是必需的。此外,这些技术可以独立使用,或者与上述的申请人在先专利中描述的相关技术结合使用。
如上所述,上面的详细描述集中在分子模拟的技术问题上,在分子模拟中,模拟运动的粒子是原子,然而这些技术等同地适用于其他多体(“N体”)模拟问题,诸如行星的模拟等。上述一些技术也适用于并且解决了多体模拟以外的技术问题。例如,在具有不同精度和/或复杂性能力的模块之间(例如,在小PPIM和大PPIM之间,或者在BC和GC模块之间)划分计算集合的方法是如下的电路设计技术,该电路设计技术可以在其他特殊用途应用中提供电路面积和/或功率节省。提供在数据通信中强制排序和/或表示同步点的网络内原语的网络围栏广泛应用于多体模拟的问题之外(例如在广泛的分布式计算系统中),并且作为结果可以提供计算节点处的降低的同步复杂性。使用数据相关随机化以在不同计算节点处提供伪随机值的精确同步的技术也适用于广泛的分布式计算系统,在该分布式计算系统中,这种同步提供了算法益处。
应该大致理解,如上所述的分子模拟可以在诸如药物发现等的整体技术问题中提供一个步骤,在药物发现中,模拟可以用于例如确定分子的预测性质,并且模拟分子的确定性被物理合成并进一步评估。因此,在模拟之后,可以合成和/或物理评估至少一些分子或分子系统而作为实际应用的一部分,以识别具有期望性质的物理分子或分子系统。
已经描述了本发明的许多实施例。然而,应当理解,前述描述旨在说明而不是限制本发明的范围,本发明的范围由所附权利要求的范围限定。因此,其他实施例也在所附权利要求的范围内。例如,可以在不脱离本发明范围的情况下进行各种修改。此外,上面描述的一些步骤可以是顺序独立的,因此可以以不同于所描述的顺序来进行。
Claims (32)
1.一种包括计算节点和连接所述计算节点的通信链路的设备,其中,针对各原子对存在参与所述原子的相互作用的一个或多于一个计算节点的集合,其中,针对对所述一个或多于一个计算节点的集合的各选择,存在由执行所述相互作用产生的计算负担和由计算节点之间的通信产生的通信负担,其中,针对各原子对,被选择用于所述原子的相互作用的集成电路是使考虑到所述通信负担和所述计算负担的聚合成本最小化的集成电路。
2.根据权利要求1所述的设备,其中,所述节点是存储不关于所述原子对中任何原子的信息的节点。
3.根据权利要求1所述的设备,其中,所述一个或多于一个节点的集合包括存储有关于来自所述原子对中最多一个原子的信息的节点。
4.根据权利要求1所述的设备,其中,所述一个或多于一个节点的集合是通过权衡与曼哈顿法相关联的增加的联网成本和与全壳法相关联的更高的计算成本来选择的。
5.一种用于分子模拟的设备,该设备使用通过网络链路连接到具有节点的环形网络的集成电路,各节点是所述集成电路之一,其中,所述集成电路各自包括被配置为估计化学系统中原子之间的力的核心区块、使所述核心区块互连的网状网络、以及管理使用所述网状网络的核心区块之间的移动通信的边缘区块,并且所述边缘区块连接到所述网络链路以管理与另一集成电路的通信,所述设备在各所述核心区块中包括相互作用电路,所述相互作用电路接收表示流式传输的原子的信息流并且存储表示被存储原子的信息,所述相互作用电路包括第一相互作用模块、第二相互作用模块和匹配电路,所述第一相互作用模块和所述第二相互作用模块在计算复杂性上不同,其中,所述第一相互作用模块执行比所述第二相互作用模块更复杂的计算,所述匹配电路被配置为:比较一对原子之间的原子间距离,并且在所述原子间距离小于阈值时使得利用所述第一相互作用模块来估计所述原子之间的所述力,否则使用所述第二相互作用模块来估计所述原子之间的所述力。
6.根据权利要求5所述的设备,其中,所述第二相互作用模块是多个相同的第二相互作用模块之一。
7.根据权利要求5所述的设备,其中,所述第二相互作用模块是三个第二相互作用模块之一,针对各所述第一相互作用模块存在所述第二相互作用模块中的三个第二相互作用模块。
8.根据权利要求5所述的设备,其中,所述第二相互作用模块是多个相同的第二相互作用模块之一,所述第二相互作用模块的数量已经由随着所述阈值的降低而增加所述数量的规则来确定。
9.根据权利要求5所述的设备,其中,所述第一相互作用模块被配置为基于静电效应和量子效应这两者来估计所述力,并且其中,所述第二相互作用模块被配置为在估计所述力时忽略所述量子效应。
10.根据权利要求5所述的设备,其中,所述第一相互作用模块比所述第二相互作用模块在所述集成电路上消耗更多的面积。
11.根据权利要求5所述的设备,其中,所述第一相互作用模块比所述第二相互作用模块针对每次相互作用计算消耗更多的能量。
12.根据权利要求5所述的设备,其中,所述匹配电路包括第一级和第二级,所述第一级和所述第二级都将所述阈值与一对原子中的原子之间的原子间距离进行比较,所述第二级执行比所述第一级更准确的原子间距离的确定,其中,在将所述阈值与原子对的集合中的原子之间的原子间距离进行比较之后,所述第一级将所述对转发到所述第二级,所述第二级然后比所述第一级更准确地确定所述原子间距离。
13.根据权利要求5所述的设备,其中,所述匹配电路被配置为通过将所述阈值与原子对的集合中的原子之间的原子间距离进行比较来消耗能量的第一量;将所述集合划分为第一子集和第二子集;丢弃所述第一子集中的对;并转发所述第二子集中的对以供执行所述阈值与所述第二子集中的原子之间的原子间距离之间的第二比较,所述第二比较比所述第一比较消耗更多的能量。
14.根据权利要求5所述的设备,其中,各个原子利用基于所述原子的性质的类型索引而被分类,其中,所述集成电路包括存储有第一信息和第二信息的第一区域和第二区域,所述第一信息将相互作用索引与所述类型索引相关联,并且所述第二区域将力估计方法与所述相互作用索引相关联。
15.根据权利要求5所述的设备,其中,各个原子利用基于所述原子的性质的类型索引而被分类,所述集成电路上的半导体基板的区域已经被预留用于存储双级表,其中,所述双级表的第一级将相互作用索引与所述类型索引相关联,并且所述双级表的第二级存储将所述相互作用索引与多个相互作用类型之一相关联的信息。
16.根据权利要求5所述的设备,其中,所述集成电路的基板的一部分包括形成在其上的几何核心,所述几何核心与所述相互作用电路通信、并且被配置为支持所述相互作用电路不支持的原子之间的相互作用,所述相互作用电路被配置为将所述相互作用的估计委派给所述几何核心。
17.根据权利要求5所述的设备,其中,所述集成电路的基板的一部分包括形成在其上的几何核心,所述几何核心与所述相互作用电路通信,其中,所述相互作用电路对一对原子中的原子之间的力进行多于一次的估计,导致冗余的力作用在所述原子上,其中,所述几何核心被配置为减去所述冗余的力。
18.一种用于分子模拟的设备,所述设备包括通过通信链路互连的计算节点,所述计算节点被配置为进行原子的相互作用,其中,所述计算节点各自包括通用处理器和从所述通用处理器接收数据的键计算器,其中,响应于接收到所述数据,所述键计算器计算由靠近所述键的原子之间的相互作用引起的键的状态的变化。
19.根据权利要求18所述的设备,其中,所述键计算器被配置为计算所述键的长度的变化。
20.根据权利要求18所述的设备,其中,所述键计算器被配置为计算作为三个原子相互作用的结果的所述键的角度的变化。
21.根据权利要求18所述的设备,其中,所述键计算器被配置为计算作为与四个原子相互作用的结果的所述键的二面角的变化。
22.根据权利要求18所述的设备,其中,所述键计算器使用比所述通用处理器将用于执行所述计算更少的能量来执行所述计算。
23.一种用于分子动力学模拟的设备,所述设备包括集成电路,所述集成电路包括布置成行和列的区块,其中,各区块设置在区块行和区块列中,其中,各个区块存储存储集粒子、接收流集粒子、并且使所述存储集粒子与所述流集粒子相互作用,所述流集粒子沿着所述区块行被流式传输,其中,各区块被配置为将该区块的存储集粒子多播到所述区块列中的其他区块,由此所述存储集粒子同时与多个流的流集粒子相互作用。
24.一种用于在模拟设备的处理节点之间通信数据的方法,所述通信包括发送与正在被模拟的多个主体中的第一主体相对应的数据,所述发送包括重复发送所述第一主体的物理状态信息,所述方法包括:在第一处理节点和第二处理节点处存储所述第一主体的第一物理状态数据;在所述第一处理节点处计算所述第一主体的更新的物理状态数据;在所述第一处理节点和在所述第二处理节点处根据所述第一物理状态数据来计算所述第一主体的预测物理状态数据;在所述第一处理节点处根据所述预测物理状态数据和所述更新的物理状态数据来确定状态数据更新;将所述状态更新数据从所述第一处理节点发送到所述第二处理节点;以及在所述第二处理节点处根据存储在所述第二节点处的所述第一物理状态数据和在所述第二处理节点处从所述第一处理节点接收的所述状态更新数据,来确定更新的物理状态。
25.根据权利要求24所述的方法,其中,所述物理状态数据包括所述第一主体的位置。
26.根据权利要求25所述的方法,其中,所述物理状态数据包括所述第一主体的速度,或者能够用于计算所述第一主体的速度。
27.根据权利要求25所述的方法,其中,所述预测物理状态数据包括所述第一主体的预测位置。
28.根据权利要求26所述的方法,其中,所述预测物理状态数据包括所述第一主体的预测速度。
29.根据权利要求24所述的方法,其中,发送所述状态更新数据包括在比发送所述更新的物理状态数据所需的大小更小的消息中发送所述数据。
30.一种用于计算粒子集合中的粒子之间的相互作用的方法,其中,使用一系列计算来近似各集合的粒子之间的相互作用,所述方法包括:针对各粒子集合,选择要进行以近似该集合的粒子之间的相互作用的多个计算,至少一些集合具有不同于其他集合的计算数量的选择,并且根据所选择的数量的多个计算来评估粒子之间的相互作用。
31.一种用于分布式计算粒子集合中的粒子之间的相互作用的方法,包括:针对第一粒子集合中的粒子,在多个分布式处理器处组装所述第一集合的粒子的数据;在所述分布式处理器的各处理器处,处理粒子的组装数据以形成相同的一个或多于一个随机数;将所述一个或多于一个随机数与基于所述组装数据的计算结果相组合;限制组合的精度从而在各处理器处产生相同的随机化计算结果;并且在对所述粒子的动态模拟中使用所述随机化计算结果。
32.一种用于经由通信基础设施在模拟设备的处理节点之间通信数据的方法,其中,所述通信包括发送与连续的模拟间隔相关联的消息,其中,在第一模拟间隔中,第一接收处理节点从第一多个发送处理节点接收针对该模拟间隔的消息,所述方法包括:在所述第一多个处理节点的各个发送处理节点处,向所述第一接收处理节点发送与第一模拟间隔相关联的消息,并且发送指示为与第一模拟间隔相关联的所有消息都已经被发送的消息;所述方法还包括,在已经从所述第一多个处理节点的所有发送节点向所述第一接收节点传送了与所述第一模拟间隔相关联的所有消息之后,使用所述通信基础设施向所述第一接收节点传送消息。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US63/163,552 | 2021-03-19 | ||
US63/227,671 | 2021-07-30 | ||
US202163279788P | 2021-11-16 | 2021-11-16 | |
US63/279,788 | 2021-11-16 | ||
PCT/US2022/020915 WO2022198026A2 (en) | 2021-03-19 | 2022-03-18 | Multibody simulation |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117441208A true CN117441208A (zh) | 2024-01-23 |
Family
ID=89553985
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280035819.4A Pending CN117441208A (zh) | 2021-03-19 | 2022-03-18 | 多体模拟 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117441208A (zh) |
-
2022
- 2022-03-18 CN CN202280035819.4A patent/CN117441208A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kim et al. | Bts: An accelerator for bootstrappable fully homomorphic encryption | |
Prisacari et al. | Bandwidth-optimal all-to-all exchanges in fat tree networks | |
KR20160033695A (ko) | 네트워크 온 칩에서의 시스템 레벨 시뮬레이션 | |
GB2405298A (en) | Network topology having nodes interconnected by extended diagonal links. | |
Somasundaram et al. | Deadlock free routing algorithm for minimizing congestion in a Hamiltonian connected recursive 3D-NoCs | |
CN107181774A (zh) | 分布式数据中心之间的数据移动 | |
Shim et al. | The specialized high-performance network on anton 3 | |
Wu et al. | A Communication-Efficient Multi-Chip Design for Range-Limited Molecular Dynamics | |
Belayneh et al. | GraphVine: exploiting multicast for scalable graph analytics | |
Rahman et al. | High and stable performance under adverse traffic patterns of tori-connected torus network | |
CN117441208A (zh) | 多体模拟 | |
US20240169124A1 (en) | Multibody simulation | |
CN112580774B (zh) | 一种面向可重构神经网络处理器的神经网络布局方法 | |
Farooq et al. | Inter-FPGA routing environment for performance exploration of multi-FPGA systems | |
Tyagi et al. | Exploring 3d network-on-chip architectures and challenges | |
Yelmewad et al. | Parallel iterative hill climbing algorithm to solve TSP on GPU | |
Wei et al. | An equilibrium partitioning method for multicast traffic in 3D NoC architecture | |
Underwood et al. | A unified algorithm for both randomized deterministic and adaptive routing in torus networks | |
KR20230060530A (ko) | 신경망 처리 | |
Liu et al. | A path optimized multicast routing algorithm for 3D network-on-chip | |
Rahman et al. | A deadlock-free dimension order routing for hierarchical 3d-mesh network | |
Hamdi et al. | RCC-full: An effective network for parallel computations | |
Golovin et al. | Quorum placement in networks: Minimizing network congestion | |
MM et al. | Dynamic communication performance of a hierarchical torus network under non-uniform traffic patterns | |
Adebayo et al. | Feature selection strategies for the controller placement problem in SDNs: A review |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |