2016-12-26 58 views
3

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

尽管如此,还是有可能获得块作为输出?

回答

1

这对你来说可能已经太迟了,但也许对其他人来说也不算太晚。如果你想要一个阻塞的输出,我也假定你正在使用一个结构化的网格。

如果是这样,我们可以沿着this answer from SciComp。从METIS创建块输出的合理的良好解决方案:

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

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

+0

这正是我实际工作的方式。也许这是Metis建立在图表上的最好且唯一的解决方案。谢谢你的努力! – Soeren