Class CandidatePoolService

Class Documentation

class CandidatePoolService

候选解池调度服务,管理多解的局部搜索与并发细化。

Public Types

using RefinementFn = std::function<double(CandidateRefinementRequest&)>

Public Static Functions

static void localSearch(const fpga &fpgas, const graph &level_graph, vector<int> &offspring, vector<VectorXi> &occupied_resources, HSFullTiming::HSPartitionFlow &pFlow, float &worst_slack, const RefinementFn &refinement_fn)

对单个候选解执行局部搜索细化。

static void runLocalSearchBatch(const fpga &fpgas, int thread, const graph &level_graph, vector<vector<int>> &candidate_parts, vector<vector<VectorXi>> &candidate_occupied_resources, HSFullTiming::HSPartitionFlow &pFlow, vector<float> &worst_slacks, const RefinementFn &refinement_fn)

对所有候选解批量执行局部搜索。

static void runRefinementBatch(int thread, const graph &level_graph, const fpga &fpgas, vector<vector<int>> &candidate_parts, vector<vector<VectorXi>> &candidate_occupied_resources, int remaining_solutions, HSFullTiming::HSPartitionFlow &pFlow, vector<float> &worst_slacks, const RefinementFn &refinement_fn, bool decreaseMaxHopCntPriority = true)

主并发调度:将候选解的细化任务分发到各线程并行执行。