dgl.partition_graph_with_halo

dgl.partition_graph_with_halo(g, node_part, extra_cached_hops, reshuffle=False)[source]

划分图。

根据为每个分区给定的节点分配,该函数将输入图拆分成子图。子图可能包含 HALO 节点,这些节点不属于子图的分区,但在固定跳数内与该分区中的节点连接。

如果开启了 reshuffle,该函数会在分区前重新排列输入图的节点 ID 和边 ID。重新排列后,同一分区中的所有节点和边在输入图中都落在连续的 ID 范围内。划分后的子图具有节点数据 ‘orig_id’,该数据存储原始输入图中的节点 ID。

参数:
  • g (DGLGraph) – 要划分的图

  • node_part (1D tensor) – 指定节点分配到哪个分区。此张量的长度必须与图的节点数相同。每个元素表示节点的划分 ID。

  • extra_cached_hops (int) – HALO 节点可以访问的跳数。

  • reshuffle (bool) – 重新排列节点,使同一分区中的节点位于相同的 ID 范围内。

返回值:

  • a dict of DGLGraphs – 键是分区 ID,值是该分区的 DGLGraph。

  • Tensor – 如果 ‘reshuffle=True’,则为存储重新排列的节点 ID 与原始节点 ID 之间映射关系的 1D 张量。否则,返回 None。

  • Tensor – 如果 ‘reshuffle=True’,则为存储重新排列的边 ID 与原始边 ID 之间映射关系的 1D 张量。否则,返回 None。