Class DefaultScheduleGroupPass
- java.lang.Object
-
- org.apache.nemo.common.pass.Pass
-
- org.apache.nemo.compiler.optimizer.pass.compiletime.CompileTimePass
-
- org.apache.nemo.compiler.optimizer.pass.compiletime.annotating.AnnotatingPass
-
- org.apache.nemo.compiler.optimizer.pass.compiletime.annotating.DefaultScheduleGroupPass
-
public final class DefaultScheduleGroupPass extends AnnotatingPass
A pass for assigning each stages in schedule groups.TODO #347: IRDAG#partitionAcyclically This code can be greatly simplified...
Rules
- Vertices connected with push edges must be assigned same ScheduleGroup.
- For pull edges,
- if the destination of the edge depends on multiple ScheduleGroups, split ScheduleGroup by the edge.
- if the edge is broadcast type and
allowBroadcastWithinScheduleGroup
isfalse
, split ScheduleGroup by the edge. - if the edge is shuffle type and
allowShuffleWithinScheduleGroup
isfalse
, split ScheduleGroup by the edge. - if the destination of the edge has multiple inEdges, split ScheduleGroup by the edge.
- Otherwise, the source and the destination of the edge should be assigned same ScheduleGroup.
-
-
Constructor Summary
Constructors Constructor Description DefaultScheduleGroupPass()
Default constructor.DefaultScheduleGroupPass(boolean allowBroadcastWithinScheduleGroup, boolean allowShuffleWithinScheduleGroup, boolean allowMultipleInEdgesWithinScheduleGroup)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description IRDAG
apply(IRDAG dag)
-
Methods inherited from class org.apache.nemo.compiler.optimizer.pass.compiletime.annotating.AnnotatingPass
getExecutionPropertiesToAnnotate, getPrerequisiteExecutionProperties
-
Methods inherited from class org.apache.nemo.common.pass.Pass
addCondition, getCondition
-
-
-
-
Constructor Detail
-
DefaultScheduleGroupPass
public DefaultScheduleGroupPass()
Default constructor.
-
DefaultScheduleGroupPass
public DefaultScheduleGroupPass(boolean allowBroadcastWithinScheduleGroup, boolean allowShuffleWithinScheduleGroup, boolean allowMultipleInEdgesWithinScheduleGroup)
Constructor.- Parameters:
allowBroadcastWithinScheduleGroup
- whether to allow Broadcast edges within a ScheduleGroup or notallowShuffleWithinScheduleGroup
- whether to allow Shuffle edges within a ScheduleGroup or notallowMultipleInEdgesWithinScheduleGroup
- whether to allow vertices with multiple dependencies or not
-
-