Package org.apache.sysds.hops.fedplanner

## Class FederatedMemoTable.FedPlan

- java.lang.Object
- - org.apache.sysds.hops.fedplanner.FederatedMemoTable.FedPlan

Enclosing class:
  FederatedMemoTable

    public static class FederatedMemoTable.FedPlan
    extends Object

Represents a single federated execution plan with its associated costs and dependencies. This class contains: 1. selfCost: Cost of current hop (compute + input/output memory access) 2. totalCost: Cumulative cost including this plan and all child plans 3. netTransferCost: Network transfer cost for this plan to parent plan. FedPlan is linked to FedPlanVariants, which in turn uses HopCommon to manage common properties and costs.

### Constructor Summary

Constructors
`FedPlan​(List<org.apache.commons.lang3.tuple.Pair<Long,​FEDInstruction.FederatedOutput>> childFedPlans, FederatedMemoTable.FedPlanVariants fedPlanVariants)`

### Method Summary

All Methods Instance Methods Concrete Methods
`List<org.apache.commons.lang3.tuple.Pair<Long,​FEDInstruction.FederatedOutput>>` `getChildFedPlans()`
`double` `getCondNetTransferCost​(FEDInstruction.FederatedOutput parentFedOutType)` Calculates the conditional network transfer cost based on output type compatibility.
`FEDInstruction.FederatedOutput` `getFedOutType()`
`long` `getHopID()`
`Hop` `getHopRef()`
`double` `getNetTransferCost()`
`double` `getSelfCost()`
`double` `getTotalCost()`
`void` `setNetTransferCost​(double netTransferCost)`
`void` `setSelfCost​(double selfCost)`
`void` `setTotalCost​(double totalCost)`

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

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

### Constructor Detail

#### FedPlan

    public FedPlan​(List<org.apache.commons.lang3.tuple.Pair<Long,​FEDInstruction.FederatedOutput>> childFedPlans,
                   FederatedMemoTable.FedPlanVariants fedPlanVariants)

### Method Detail

#### setTotalCost

    public void setTotalCost​(double totalCost)

#### setSelfCost

    public void setSelfCost​(double selfCost)

#### setNetTransferCost

    public void setNetTransferCost​(double netTransferCost)

#### getHopRef

    public Hop getHopRef()

#### getHopID

    public long getHopID()

#### getFedOutType

    public FEDInstruction.FederatedOutput getFedOutType()

#### getTotalCost

    public double getTotalCost()

#### getSelfCost

    public double getSelfCost()

#### getNetTransferCost

    public double getNetTransferCost()

#### getChildFedPlans

    public List<org.apache.commons.lang3.tuple.Pair<Long,​FEDInstruction.FederatedOutput>> getChildFedPlans()

#### getCondNetTransferCost

    public double getCondNetTransferCost​(FEDInstruction.FederatedOutput parentFedOutType)

Calculates the conditional network transfer cost based on output type compatibility. Returns 0 if output types match, otherwise returns the network transfer cost.

Parameters:
  `parentFedOutType` - The federated output type of the parent plan.
Returns:
  The conditional network transfer cost.