use of edu.iu.dsc.tws.api.compute.schedule.elements.WorkerPlan in project twister2 by DSC-SPIDAL.
the class TaskExecutor method createWorkerPlan.
private WorkerPlan createWorkerPlan() {
List<Worker> workers = new ArrayList<>();
for (JobMasterAPI.WorkerInfo workerInfo : workerInfoList) {
Worker w = new Worker(workerInfo.getWorkerID());
workers.add(w);
}
return new WorkerPlan(workers);
}
use of edu.iu.dsc.tws.api.compute.schedule.elements.WorkerPlan in project twister2 by DSC-SPIDAL.
the class TaskExecutor method plan.
/**
* Create an execution plan from the given graph
*
* @param graph task graph
* @return the data set
*/
public ExecutionPlan plan(ComputeGraph graph) {
TaskScheduler taskScheduler = new TaskScheduler();
taskScheduler.initialize(config);
WorkerPlan workerPlan = createWorkerPlan();
TaskSchedulePlan taskSchedulePlan = taskScheduler.schedule(graph, workerPlan);
ExecutionPlanBuilder executionPlanBuilder = new ExecutionPlanBuilder(workerID, workerInfoList, communicator, this.checkpointingClient);
return executionPlanBuilder.build(config, graph, taskSchedulePlan);
}
use of edu.iu.dsc.tws.api.compute.schedule.elements.WorkerPlan in project twister2 by DSC-SPIDAL.
the class TaskUtils method createWorkerPlan.
public static WorkerPlan createWorkerPlan(List<JobMasterAPI.WorkerInfo> workerInfoList) {
List<Worker> workers = new ArrayList<>();
for (JobMasterAPI.WorkerInfo workerInfo : workerInfoList) {
Worker w = new Worker(workerInfo.getWorkerID());
workers.add(w);
}
return new WorkerPlan(workers);
}
use of edu.iu.dsc.tws.api.compute.schedule.elements.WorkerPlan in project twister2 by DSC-SPIDAL.
the class TaskUtils method execute.
public static void execute(Config config, int workerID, ComputeGraph graph, IWorkerController workerController) {
RoundRobinTaskScheduler roundRobinTaskScheduler = new RoundRobinTaskScheduler();
roundRobinTaskScheduler.initialize(config);
List<JobMasterAPI.WorkerInfo> workerList = null;
try {
workerList = workerController.getAllWorkers();
} catch (TimeoutException timeoutException) {
LOG.log(Level.SEVERE, timeoutException.getMessage(), timeoutException);
return;
}
WorkerPlan workerPlan = createWorkerPlan(workerList);
TaskSchedulePlan taskSchedulePlan = roundRobinTaskScheduler.schedule(graph, workerPlan);
TWSChannel network = Network.initializeChannel(config, workerController);
ExecutionPlanBuilder executionPlanBuilder = new ExecutionPlanBuilder(workerID, workerList, new Communicator(config, network), workerController.getCheckpointingClient());
ExecutionPlan plan = executionPlanBuilder.build(config, graph, taskSchedulePlan);
ExecutorFactory executor = new ExecutorFactory(config, workerID, network);
executor.getExecutor(config, plan, graph.getOperationMode()).execute();
}
use of edu.iu.dsc.tws.api.compute.schedule.elements.WorkerPlan in project twister2 by DSC-SPIDAL.
the class TaskUtils method executeBatch.
public static void executeBatch(Config config, int workerID, ComputeGraph graph, IWorkerController workerController) {
RoundRobinTaskScheduler roundRobinTaskScheduler = new RoundRobinTaskScheduler();
roundRobinTaskScheduler.initialize(config);
WorkerPlan workerPlan = null;
List<JobMasterAPI.WorkerInfo> workerList = null;
try {
workerList = workerController.getAllWorkers();
} catch (TimeoutException timeoutException) {
LOG.log(Level.SEVERE, timeoutException.getMessage(), timeoutException);
return;
}
workerPlan = createWorkerPlan(workerList);
TaskSchedulePlan taskSchedulePlan = roundRobinTaskScheduler.schedule(graph, workerPlan);
TWSChannel network = Network.initializeChannel(config, workerController);
ExecutionPlanBuilder executionPlanBuilder = new ExecutionPlanBuilder(workerID, workerList, new Communicator(config, network), workerController.getCheckpointingClient());
ExecutionPlan plan = executionPlanBuilder.build(config, graph, taskSchedulePlan);
ExecutorFactory executor = new ExecutorFactory(config, workerID, network);
executor.getExecutor(config, plan, graph.getOperationMode()).execute();
}
Aggregations