Metis - 块输出

Metis - Block output

我正在使用 Metis,一个图分区 API。我有一个来自节点的完整网格,并想对该网格进行分区。在此分区之后,cfd-solver 将 运行 在多个 gpu 上并行。问题是:我需要一个来自 metis 的块输出(每个维度中的节点数量相同)。我知道,metis 只是在后台使用了一个 Graph。

仍然有可能得到块作为输出吗?

这对您来说可能为时已晚,但对其他人来说也许还不算太晚。如果您想要阻塞输出,我还假设您正在使用结构化网格。

如果是这样,我们可以跟进this answer from SciComp。从 METIS 创建块输出的相当好的解决方案:

  1. 创建一个封装你的块结构的新图 原来的问题。也就是说,如果我们最初有一个 50^3 的立方体 与立方体元素相连的顶点,我们可以"recreate"这个结构 通过与立方体元素相连的较小的 10^3 立方体顶点。除了 这次,顶点对应于原始问题的块。
  2. 运行 METIS 在您的新图表上。
  3. 将结果重新解释为 METIS 的块输出,供您使用 原来的问题。

我说这是一个 "reasonably good" 解决方案,因为您必须在 运行ning METIS 之前自己规定每个维度中的节点数。因此,也许您可​​以通过某种方式自己优化这个超参数,但也许您只需要做出有根据的猜测,然后 运行 使用 METIS 提供的输出。