From 2da7ea85afb3825df964ba208be0839967e91528 Mon Sep 17 00:00:00 2001 From: TheTaques Date: Fri, 18 Jun 2021 16:27:10 +0200 Subject: [PATCH] Add worker/threads flag --- Bone Market Solver.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/Bone Market Solver.py b/Bone Market Solver.py index a3a8a4c..9484c4d 100644 --- a/Bone Market Solver.py +++ b/Bone Market Solver.py @@ -1158,7 +1158,7 @@ class OccasionalBuyer(enum.Enum): ] -def Solve(bone_market_fluctuations, zoological_mania, occasional_buyer = None, desired_buyers = [], maximum_cost = cp_model.INT32_MAX, maximum_exhaustion = cp_model.INT32_MAX, time_limit = float('inf'), stdscr = None): +def Solve(bone_market_fluctuations, zoological_mania, occasional_buyer = None, desired_buyers = [], maximum_cost = cp_model.INT32_MAX, maximum_exhaustion = cp_model.INT32_MAX, time_limit = float('inf'), workers = os.cpu_count(),stdscr = None): model = cp_model.CpModel() actions = {} @@ -2113,7 +2113,7 @@ def Solve(bone_market_fluctuations, zoological_mania, occasional_buyer = None, d printer = SkeletonPrinter() solver = cp_model.CpSolver() - solver.parameters.num_search_workers = os.cpu_count() + solver.parameters.num_search_workers = workers solver.parameters.max_time_in_seconds = time_limit # There's no window in verbose mode @@ -2231,10 +2231,17 @@ def main(): help='maximum number of seconds that solver runs for', dest='time_limit' ) + parser.add_argument( + '-w', '--workers', + default=os.cpu_count(), + type=int, + help='number of search worker threads to run in parallel', + dest='workers' + ) args = parser.parse_args() - arguments = (args.bone_market_fluctuations, args.zoological_mania, args.occasional_buyer, args.desired_buyers, args.maximum_cost, args.maximum_exhaustion, args.time_limit) + arguments = (args.bone_market_fluctuations, args.zoological_mania, args.occasional_buyer, args.desired_buyers, args.maximum_cost, args.maximum_exhaustion, args.time_limit, args.workers) if not args.verbose: def WrappedSolve(stdscr, arguments): -- 2.45.2