导读 RUDN 大学的一位数学家和他来自法国和匈牙利的同事开发了一种并行计算算法,可以解决应用问题,例如电动力学或流体动力学。时间增益高达

RUDN 大学的一位数学家和他来自法国和匈牙利的同事开发了一种并行计算算法,可以解决应用问题,例如电动力学或流体动力学。时间增益高达 50%。结果发表在《计算与应用数学杂志》上。

并行计算方法常用于处理物理、工程、生物学等领域的实际问题。它涉及将多个处理器连接到一个网络中以同时解决一个问题——每个处理器都有自己的一小部分。在处理器之间分配工作并使它们相互通信的方式是基于特定问题的细节的选择。一种可能的方法是域分解。研究域根据处理器的数量分为不同的部分——子域。当这个数字非常高时,尤其是在异构高性能计算 (HPC) 环境中,异步进程就构成了一个有价值的组成部分。通常使用 Schwarz 方法,其中子域相互重叠。这提供了准确的结果,但在重叠不直接时效果不佳。这位来自法国和匈牙利的数学家和他的同事提出了一种新算法,可以在许多结构情况下使异步分解更容易——子域不重叠;结果保持准确,计算所需时间更少。

“到目前为止,几乎所有域分解框架内的异步迭代研究都针对并行 Schwarz 类型的方法。处理原始非重叠分解的第一个也是唯一的尝试导致同时迭代子域和它们之间的接口。那意味着计算方案是在整个全局域上定义的,”RUDN 大学工程学院的 Guillaume Gbikpi-Benissan。

数学家们提出了一种基于高斯-赛德尔方法的算法。创新的本质在于计算算法不是在整个域上同时运行,而是在子域及其之间的边界上交替运行。因此,子域内每次迭代期间获得的值可以立即用于边界计算,无需额外成本。

数学家们在泊松方程和线性弹性问题上测试了新算法。例如,第一个用于描述静电场,第二个用于流体动力学,用于描述液体的运动。对于两个方程,新方法都比原始方法快。确实实现了高达 50% 的增益——在 720 个子域中,泊松方程的计算花费了 84 秒,而原始算法花费了 170 秒。此外,同步交替迭代的次数随着子域数量的增加而减少。

“这是一个非常有趣的行为,可以通过这样一个事实来解释:随着子域大小的减小和更多的接口出现,交替的比率增加。因此,这项工作鼓励了对异步计算范式的进一步可能性和有希望的新研究,”总结道吉比-贝尼桑。