Class PlanSelectionFuseCostBasedV2

java.lang.Object
org.apache.sysds.hops.codegen.opt.PlanSelection
org.apache.sysds.hops.codegen.opt.PlanSelectionFuseCostBasedV2

public class PlanSelectionFuseCostBasedV2 extends PlanSelection
This cost-based plan selection algorithm chooses fused operators based on the DAG structure and resulting overall costs. This includes holistic decisions on
  • Materialization points per consumer
  • Sparsity exploitation and operator ordering
  • Decisions on overlapping template types
  • Decisions on multi-aggregates with shared reads
  • Constraints (e.g., memory budgets and block sizes)
  • Field Details

    • COST_MIN_EPS

      public static final double COST_MIN_EPS
      See Also:
    • COST_MIN_EPS_NUM_POINTS

      public static final int COST_MIN_EPS_NUM_POINTS
      See Also:
    • COST_PRUNING

      public static boolean COST_PRUNING
    • STRUCTURAL_PRUNING

      public static boolean STRUCTURAL_PRUNING
    • PLAN_CACHING

      public static boolean PLAN_CACHING
  • Constructor Details

    • PlanSelectionFuseCostBasedV2

      public PlanSelectionFuseCostBasedV2()
  • Method Details

    • selectPlans

      public void selectPlans(CPlanMemoTable memo, ArrayList<Hop> roots)
      Description copied from class: PlanSelection
      Given a HOP DAG G, and a set of partial fusions plans P, find the set of optimal, non-conflicting fusion plans P' that applied to G minimizes costs C with P' = \argmin_{p \subseteq P} C(G, p) s.t. Z \vDash p, where Z is a set of constraints such as memory budgets and block size restrictions per fused operator.
      Specified by:
      selectPlans in class PlanSelection
      Parameters:
      memo - partial fusion plans P
      roots - entry points of HOP DAG G