Function partitionHierarchyGraph

Function Documentation

int partitionHierarchyGraph(graph &finest, const hierarchy &hierarchy_root, const PartitionParams &para, int thread, vector<vector<int>> &node_paths, HSFullTiming::HSPartitionFlow &pFlow, vector<HierarchyPartitionCutRecord> *cut_records = nullptr, graph *dedup_root_graph = nullptr)

递归执行层次化图分割入口函数。

按照 hierarchy_root 定义的层次结构(Rack → Cluster → Board → FPGA), 自顶向下逐层调用 partition() 进行超图分割,每层分割后将子图传递给下一层。 最终每个 graph node 被分配到一个叶子 FPGA,路径记录在 node_paths 中。

Parameters:
  • finest[in] 最细层超图。

  • hierarchy_root[in] 层次结构根节点,各级 fpgas.resources 定义分割目标数。

  • para[in] 分区流程配置。

  • thread[in] 线程预算。

  • node_paths[out] 每个 graph node 的层次路径,如 [rack, cluster, board, fpga]。

  • pFlow[in] 时序分析上下文。

  • cut_records[out] 可选,记录每层分割的 cut 指标和 cut_weights 矩阵。

  • dedup_root_graph[out] 可选,返回根层去重后的超图,节点编号保持不变。

Returns:

成功返回 1,失败返回 -1。