拉格朗日/欧拉流的负载平衡

对于并行处理,分解体网格的传统方法是为每个处理器提供大致相同的网格单元数。 对于在每个网格单元中对相同欧拉流方程进行求解的情况,此方法通常可提供良好的性能。

对于包含颗粒的情况,这种传统的分解形式可能会导致并行核心之间的 CPU 负载不平衡。 如果一个或两个分区包含大部分颗粒,则与具有少数颗粒的分区相比,这些分区需要的计算时间会大幅增加。 传统的分解不会考虑到这种差异。 请参见下图中的示例,其中基于欧拉网格的域分解会导致 CPU 负载较差,且并行效率低。



拉格朗日模拟的动态负载平衡

Simcenter STAR-CCM+ 提供了一种域分解的替代方法,这种方法考虑了包含颗粒的情况。

其中包括两个关键组成部分:

  • 分区求解器:

    主负载平衡求解器。 此求解器根据物理求解器提供的信息再平衡域分解。 它还会根据网格拓扑变化(如由交界面相交引起的变化)来再平衡分解。

  • 拉格朗日负载平衡求解器:

    此求解器向分区求解器提供求解每个欧拉网格单元中颗粒物理所需的计算负载的信息。 请参见拉格朗日负载平衡求解器

这两个求解器可一起运行。 拉格朗日求解器会收集再平衡域所需的信息并将其传递到分区求解器。 分区求解器将按正常方式考虑到所有负载平衡标准,协调最终的负载平衡。 此方法可以根据不断变化的颗粒分布来优化域分解。 当颗粒在整个域内迁移时,所有核心中的计算负载均保持平衡。

负载平衡激活时运行

要在负载平衡下运行,使用以下步骤:

  1. 将模拟加载到并行服务器中。 请参见使用并行服务器
  2. 激活拉格朗日负载平衡求解器。 请参见拉格朗日负载平衡求解器
  3. 开始运行。

负载平衡架构必须至少完成一个循环,然后才能收集负载平衡信息并用于再平衡网格。 因此,第一次迭代或时间步将根据网格单元数运行原始域的分解。