use of edu.iu.dsc.tws.api.comms.Communicator in project twister2 by DSC-SPIDAL.
the class CDFWRuntime method execute.
/**
* execute
*/
public boolean execute() {
Any msg;
while (true) {
msg = executeMessageQueue.peek();
if (msg == null) {
if (scaleUpRequest.get()) {
communicator.close();
List<JobMasterAPI.WorkerInfo> workerInfoList = initSynch(controller);
// create the channel
LOG.info("Existing workers calling barrier");
channel = Network.initializeChannel(config, controller);
String persistent = null;
// create the communicator
communicator = new Communicator(config, channel, persistent);
taskExecutor = new TaskExecutor(config, workerId, workerInfoList, communicator, null);
}
scaleUpRequest.set(false);
// scaleDownRequest.set(false);
continue;
}
msg = executeMessageQueue.poll();
if (msg.is(CDFWJobAPI.ExecuteMessage.class)) {
if (handleExecuteMessage(msg)) {
return false;
}
} else if (msg.is(CDFWJobAPI.CDFWJobCompletedMessage.class)) {
LOG.log(Level.INFO, workerId + "Received CDFW job completed message. Leaving execution " + "loop");
break;
}
}
LOG.log(Level.INFO, workerId + " Execution Completed");
return true;
}
use of edu.iu.dsc.tws.api.comms.Communicator 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.comms.Communicator 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();
}
use of edu.iu.dsc.tws.api.comms.Communicator in project twister2 by DSC-SPIDAL.
the class WordCountWorker method setupNetwork.
private void setupNetwork(IWorkerController controller) {
TWSChannel twsChannel = Network.initializeChannel(config, controller);
this.channel = new Communicator(config, twsChannel);
}
use of edu.iu.dsc.tws.api.comms.Communicator in project twister2 by DSC-SPIDAL.
the class CDFWRuntime method reinitialize.
private boolean reinitialize() {
communicator.close();
List<JobMasterAPI.WorkerInfo> workerInfoList = null;
try {
workerInfoList = controller.getAllWorkers();
} catch (TimeoutException timeoutException) {
LOG.log(Level.SEVERE, timeoutException.getMessage(), timeoutException);
}
// create the channel
channel = Network.initializeChannel(config, controller);
String persistent = null;
// create the communicator
communicator = new Communicator(config, channel, persistent);
taskExecutor = new TaskExecutor(config, workerId, workerInfoList, communicator, null);
return true;
}
Aggregations