Package es.urjc.etsii.grafo.executors
Class ConcurrentExecutor<S extends Solution<S,I>,I extends Instance>
java.lang.Object
es.urjc.etsii.grafo.executors.Executor<S,I>
es.urjc.etsii.grafo.executors.ConcurrentExecutor<S,I>
- Type Parameters:
S
- Solution classI
- Instance class
@ConditionalOnExpression("${solver.parallelExecutor}")
public class ConcurrentExecutor<S extends Solution<S,I>,I extends Instance>
extends Executor<S,I>
Concurrent executor, execute multiple runs in parallel for a given instance-algorithm pair
-
Field Summary
Fields inherited from class es.urjc.etsii.grafo.executors.Executor
EXTRA_SECS_BEFORE_WARNING, instanceManager, io, referenceResultManager, solverConfig, timeLimitCalculator, UNDEF_TIME
-
Constructor Summary
ConstructorsConstructorDescriptionConcurrentExecutor
(SolverConfig solverConfig, Optional<SolutionValidator<S, I>> validator, Optional<TimeLimitCalculator<S, I>> timeLimitCalculator, IOManager<S, I> io, InstanceManager<I> instanceManager, List<ExceptionHandler<S, I>> exceptionHandlers, ReferenceResultManager referenceResultManager) Create a new ConcurrentExecutor. -
Method Summary
Modifier and TypeMethodDescriptionvoid
executeExperiment
(Experiment<S, I> experiment, List<String> instanceNames, long startTimestamp) void
shutdown()
Finalize and destroy all resources, we have finished and are shutting down now.void
startup()
Allocate resources and prepare for executionMethods inherited from class es.urjc.etsii.grafo.executors.Executor
doWork, endTimeControl, exportAlgorithmInstanceSolution, exportInstanceSolution, getGlobalSolvingProgressBar, getOrderedWorkUnits, getPBarBuilder, improves, instanceName, processWorkUnitResult
-
Constructor Details
-
ConcurrentExecutor
public ConcurrentExecutor(SolverConfig solverConfig, Optional<SolutionValidator<S, I>> validator, Optional<TimeLimitCalculator<S, I>> timeLimitCalculator, IOManager<S, I> io, InstanceManager<I> instanceManager, List<ExceptionHandler<S, I>> exceptionHandlers, ReferenceResultManager referenceResultManager) Create a new ConcurrentExecutor. Do not create executors manually, inject them.- Parameters:
solverConfig
- Solver configuration instancevalidator
- Solution validatorio
- IOManager
-
-
Method Details
-
executeExperiment
public void executeExperiment(Experiment<S, I> experiment, List<String> instanceNames, long startTimestamp) -
startup
public void startup()Description copied from class:Executor
Allocate resources and prepare for execution -
shutdown
public void shutdown()Finalize and destroy all resources, we have finished and are shutting down now.
-