3

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

然而,有可能获得块作为输出吗?

4

1 回答 1

1

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

如果是这样,我们可以遵循SciComp 的这个答案。从 METIS 创建块输出的相当好的解决方案:

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

我说这是一个“相当不错”的解决方案,因为您必须在运行 METIS 之前自己规定每个维度中的节点数。所以也许你可以通过某种方式自己优化这个超参数,但也许你只需要做出有根据的猜测并使用 METIS 提供的输出运行。

于 2017-04-11T03:06:33.500 回答