Class PlanSelectionFuseNoRedundancy


  • public class PlanSelectionFuseNoRedundancy
    extends PlanSelection
    This plan selection heuristic aims for fusion without any redundant computation, which, however, potentially leads to more materialized intermediates than the fuse all heuristic.

    NOTE: This heuristic is essentially the same as FuseAll, except that any plans that refer to a hop with multiple consumers are removed in a pre-processing step.

    • Constructor Detail

      • PlanSelectionFuseNoRedundancy

        public PlanSelectionFuseNoRedundancy()
    • Method Detail

      • 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