o2.setNumberOfSubtasksPerInstance(2);
o1.setVertexToShareInstancesWith(o2);
// connect vertices
i1.connectTo(t1, ChannelType.IN_MEMORY, DistributionPattern.POINTWISE);
i2.connectTo(t2, ChannelType.IN_MEMORY, DistributionPattern.POINTWISE);
t1.connectTo(t3, ChannelType.NETWORK);
t2.connectTo(t3, ChannelType.NETWORK);
t3.connectTo(t4, ChannelType.IN_MEMORY, DistributionPattern.POINTWISE);
t4.connectTo(o1, ChannelType.NETWORK);
t4.connectTo(o2, ChannelType.NETWORK);