use of edu.iu.dsc.tws.api.compute.nodes.ICompute in project twister2 by DSC-SPIDAL.
the class BTDirectExample method buildTaskGraph.
@Override
public ComputeGraphBuilder buildTaskGraph() {
List<Integer> taskStages = jobParameters.getTaskStages();
int sourceParallelism = taskStages.get(0);
int sinkParallelism = taskStages.get(1);
MessageType dataType = MessageTypes.INTEGER_ARRAY;
String edge = "edge";
BaseSource g = new SourceTask(edge);
ICompute r = new PartitionSinkTask();
computeGraphBuilder.addSource(SOURCE, g, sourceParallelism);
computeConnection = computeGraphBuilder.addCompute(SINK, r, sinkParallelism);
computeConnection.direct(SOURCE).viaEdge(edge).withDataType(dataType);
return computeGraphBuilder;
}
use of edu.iu.dsc.tws.api.compute.nodes.ICompute in project twister2 by DSC-SPIDAL.
the class BTGatherExample method buildTaskGraph.
@Override
public ComputeGraphBuilder buildTaskGraph() {
List<Integer> taskStages = jobParameters.getTaskStages();
int sourceParallelism = taskStages.get(0);
int sinkParallelism = taskStages.get(1);
MessageType dataType = MessageTypes.INTEGER_ARRAY;
String edge = "edge";
BaseSource g = new SourceTask(edge);
ICompute r = new GatherSinkTask();
computeGraphBuilder.addSource(SOURCE, g, sourceParallelism);
computeConnection = computeGraphBuilder.addCompute(SINK, r, sinkParallelism);
computeConnection.gather(SOURCE).viaEdge(edge).withDataType(dataType);
return computeGraphBuilder;
}
use of edu.iu.dsc.tws.api.compute.nodes.ICompute in project twister2 by DSC-SPIDAL.
the class BTJoinExample method buildTaskGraph.
@Override
public ComputeGraphBuilder buildTaskGraph() {
List<Integer> taskStages = jobParameters.getTaskStages();
int sourceParallelism = taskStages.get(0);
int sinkParallelism = taskStages.get(1);
MessageType keyType = MessageTypes.INTEGER;
MessageType dataType = MessageTypes.INTEGER_ARRAY;
BaseSource source1 = new JoinSource(JoinRelation.LEFT);
BaseSource source2 = new JoinSource(JoinRelation.RIGHT);
ICompute r = new JoinSinkTask();
computeGraphBuilder.addSource(SOURCE, source1, sourceParallelism);
computeGraphBuilder.addSource(SOURCE2, source2, sourceParallelism);
computeConnection = computeGraphBuilder.addCompute(SINK, r, sinkParallelism);
computeConnection.innerJoin(SOURCE, SOURCE2, CommunicationContext.JoinAlgorithm.SORT).viaLeftEdge(LEFT_EDGE).viaRightEdge(RIGHT_EDGE).withKeyType(keyType).withLeftDataType(dataType).withRightDataType(dataType).withTaskPartitioner(new TaskPartitioner() {
private List<Integer> dst;
@Override
public void prepare(Set sources, Set destinations) {
this.dst = new ArrayList<>(destinations);
Collections.sort(this.dst);
}
@Override
public int partition(int source, Object data) {
return dst.get((Integer) data % dst.size());
}
@Override
public void commit(int source, int partition) {
}
}).withComparator(Integer::compareTo);
return computeGraphBuilder;
}
use of edu.iu.dsc.tws.api.compute.nodes.ICompute in project twister2 by DSC-SPIDAL.
the class BTKeyedGatherExample method buildTaskGraph.
@Override
public ComputeGraphBuilder buildTaskGraph() {
List<Integer> taskStages = jobParameters.getTaskStages();
int sourceParallelism = taskStages.get(0);
int sinkParallelism = taskStages.get(1);
MessageType keyType = MessageTypes.INTEGER;
MessageType dataType = MessageTypes.INTEGER_ARRAY;
String edge = "edge";
BaseSource g = new SourceTask(edge, true);
ICompute r = new KeyedGatherGroupedSinkTask();
computeGraphBuilder.addSource(SOURCE, g, sourceParallelism);
computeConnection = computeGraphBuilder.addCompute(SINK, r, sinkParallelism);
computeConnection.keyedGather(SOURCE).viaEdge(edge).withKeyType(keyType).withTaskPartitioner(new HashingPartitioner()).withDataType(dataType);
return computeGraphBuilder;
}
use of edu.iu.dsc.tws.api.compute.nodes.ICompute in project twister2 by DSC-SPIDAL.
the class BTPartitionExample method buildTaskGraph.
@Override
public ComputeGraphBuilder buildTaskGraph() {
List<Integer> taskStages = jobParameters.getTaskStages();
int sourceParallelism = taskStages.get(0);
int sinkParallelism = taskStages.get(1);
MessageType dataType = MessageTypes.INTEGER_ARRAY;
String edge = "edge";
BaseSource g = new SourceTask(edge);
ICompute r = new PartitionSinkTask();
computeGraphBuilder.addSource(SOURCE, g, sourceParallelism);
computeConnection = computeGraphBuilder.addCompute(SINK, r, sinkParallelism);
computeConnection.partition(SOURCE).viaEdge(edge).withDataType(dataType);
return computeGraphBuilder;
}
Aggregations