Package org.apache.sysds.hops.codegen.opt

# 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)

## Nested Class Summary

## Nested classes/interfaces inherited from class org.apache.sysds.hops.codegen.opt.PlanSelection

`PlanSelection.VisitMarkCost`

## Field Summary

Fields
Modifier and Type
Field
Description
`static final double`
`COST_MIN_EPS`
`static final int`
`COST_MIN_EPS_NUM_POINTS`
`static boolean`
`COST_PRUNING`
`static boolean`
`PLAN_CACHING`
`static boolean`
`STRUCTURAL_PRUNING`

## Constructor Summary

Constructors
Constructor
Description
`PlanSelectionFuseCostBasedV2()`

## Method Summary

Modifier and Type
Method
Description
`void`
`selectPlans(CPlanMemoTable memo, ArrayList<Hop> roots)`
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.

### Methods inherited from class java.lang.Object

`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### COST_MIN_EPS

public static final double COST_MIN_EPS

See Also:
  - Constant Field Values

### COST_MIN_EPS_NUM_POINTS

public static final int COST_MIN_EPS_NUM_POINTS

See Also:
  - Constant Field Values

### 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