Class StrategyRunner

Class Documentation

class StrategyRunner

策略执行器:不关心具体策略类型,负责在框架层驱动策略收敛。

Public Static Functions

static double runStrategyLoop(IRefineStrategy &strategy, const RefinementConfig &config, const RefinementSession &session, const graph &finest, vector<int> &parts, vector<VectorXi> &occupied_resources, vector<NetPartition> &partition, vector<vector<int>> &cut_weights, int thread_order, int cur_level, int multilevel_id, const fpga &fpgas)

执行单次策略的多趟 Pass 循环,直到无正增益或达到迭代上限。

Parameters:
  • strategy[in] 策略对象实例(FM、PM、DSFM 等)。

  • config[in] 细化配置(迭代次数、收敛阈值等)。

  • session[in] 本次细化迭代的运行时会话。

  • finest[in] 当前超图。

  • parts[inout] 节点分区归属,随策略推进更新。

  • occupied_resources[inout] 各分区资源占用。

  • partition[inout] 超边分区快照。

  • cut_weights[inout] 割边权重矩阵。

  • thread_order[in] 线程/调度顺序编号。

  • cur_level[in] 当前 V-Cycle 层级。

  • multilevel_id[in] 多层划分实例序号。

  • fpgas[in] FPGA 平台约束。

Returns:

累计总收益值。

static double refinementNew(const RefinementConfig &config, const RefinementSession &session, const graph &finest, vector<int> &parts, const fpga &fpgas, vector<VectorXi> &occupied_resources, int thread_order, int remaining_solutions, HSFullTiming::HSPartitionFlow &pFlow, float &worst_slack, bool decreaseMaxHopCntPriority = true)

总控细化接口:创建策略实例并多次调用 runStrategyLoop。