1

我在分布式内存环境中工作。我的任务是通过将大型 3D 对象分成较小的块来模拟使用由弹簧捆绑的粒子,然后每一块都由另一台计算机模拟。我正在使用第 3 方物理引擎来实现模拟。我面临的问题是如何在物体被分割的四肢传递粒子信息。需要此信息来计算相互作用的粒子力。图像中的线条显示了切割的位置。因为 o 粒子的数量很大,所以通信开销也会很大。有没有一种传输此类信息的好方法,或者有没有一种方法可以传输另一个值来帮助我确定我需要的信息?任何帮助深表感谢。谢谢 例子

PS:粒子信息是指计算要施加在本地机器中模拟的粒子上的合力的新位置

4

1 回答 1

1

“大”意味着很多东西。在这里,传递数据的点数可能是“大”的,因为它远不止一个,但是如果您说晶格中有一百万个粒子,并且通过将其切割成正方形将其划分为 4 个处理器(例如),每个边界只传递 500 个粒子;与一相比大,与一百万相比非常小。

一个非常常用于此类分布式内存计算的库(这与分布式计算有所不同,分布式计算表明节点分散在互联网上;这种涉及紧密耦合元素的计算通常最好通过一系列实验室或集群中的附近计算机)是 MPI。这种通信模式很常见,被称为“光环交换”或“保护单元交换”或“鬼区交换”或某种组合;通过搜索这些术语,您应该能够找到很多此类事物的示例。(此站点上有一些关于该主题的问题,但它们通常集中在非常具体的实施问题上)。

于 2012-05-10T11:56:08.717 回答