Add worker/threads flag #1

Merged
TheTaques merged 2 commits from patch-1 into main 2021-06-18 21:18:40 +00:00

View File

@ -1179,7 +1179,7 @@ class OccasionalBuyer(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 = cpu_count(), stdscr = None):
model = cp_model.CpModel() model = cp_model.CpModel()
actions = {} actions = {}
@ -2136,7 +2136,7 @@ def Solve(bone_market_fluctuations, zoological_mania, occasional_buyer = None, d
printer = SkeletonPrinter() printer = SkeletonPrinter()
solver = cp_model.CpSolver() solver = cp_model.CpSolver()
solver.parameters.num_search_workers = cpu_count() solver.parameters.num_search_workers = workers
solver.parameters.max_time_in_seconds = time_limit solver.parameters.max_time_in_seconds = time_limit
# There's no window in verbose mode # There's no window in verbose mode
@ -2254,10 +2254,17 @@ def main():
help="maximum number of seconds that solver runs for", help="maximum number of seconds that solver runs for",
dest='time_limit' dest='time_limit'
) )
parser.add_argument(
"-w", "--workers",
default=cpu_count(),
type=int,
help="number of search worker threads to run in parallel (default: one worker per available CPU thread)",
dest='workers'
)
args = parser.parse_args() 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: if not args.verbose:
def WrappedSolve(stdscr, arguments): def WrappedSolve(stdscr, arguments):