负载均衡

负载均衡的过程通常与网格创建过程无关; 负载均衡的输入是一组已指定权重的网格。

单层负载均衡算法独立地顺序应用于每个 AMR 级别, 并将结果分布映射到各个等级上,同时考虑已经分配给它们的权重 (将最重的一组网格分配给负载最轻的等级)。

AMReX 支持的选项包括:

  • KnapSack:背包算法中网格的默认权重是网格单元的数量, 但 AMReX 支持传递一个权重数组(每个网格一个)或替代地 传递一个每个单元的 MultiFab 权重,用于计算每个网格的权重

  • SFC:使用填充空间的 Z-morton 曲线枚举网格,然后在各个等级之间 分配结果顺序,以平衡负载

  • 轮询法:对网格进行排序并以轮询方式将它们分配给等级 – 特别是 FAB i 由 CPU i % N 拥有,其中 N 是 MPI 等级的总数。

如果启用了双网格,这些方法适用于流体和粒子网格。MFIX-Exa 还支持 粒子网格的贪婪负载均衡算法。它平衡每个等级的粒子数量,并 将粒子网格与流体网格对齐,以最小化两个网格之间的数据传输。