Class CandidatePoolService¶
Defined in File CandidatePoolService.h
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)¶
主并发调度:将候选解的细化任务分发到各线程并行执行。
-
using RefinementFn = std::function<double(CandidateRefinementRequest&)>¶