You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@texera.apache.org by xi...@apache.org on 2025/08/14 01:12:22 UTC
(texera) 01/02: add cost momo.
This is an automated email from the ASF dual-hosted git repository.
xiaozhenliu pushed a commit to branch xiaozhen-region-cost-memo
in repository https://gitbox.apache.org/repos/asf/texera.git
commit 1d563cb723d14abab8ec693048e6b02e143938e7
Author: Xiao-zhen-Liu <xi...@uci.edu>
AuthorDate: Sun Aug 10 16:49:19 2025 -0700
add cost momo.
---
.../engine/architecture/scheduling/CostBasedScheduleGenerator.scala | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/core/amber/src/main/scala/edu/uci/ics/amber/engine/architecture/scheduling/CostBasedScheduleGenerator.scala b/core/amber/src/main/scala/edu/uci/ics/amber/engine/architecture/scheduling/CostBasedScheduleGenerator.scala
index 1fa013049b..e5d0eb216f 100644
--- a/core/amber/src/main/scala/edu/uci/ics/amber/engine/architecture/scheduling/CostBasedScheduleGenerator.scala
+++ b/core/amber/src/main/scala/edu/uci/ics/amber/engine/architecture/scheduling/CostBasedScheduleGenerator.scala
@@ -42,6 +42,7 @@ import org.jgrapht.graph.{DirectedAcyclicGraph, DirectedPseudograph}
import java.net.URI
import java.util.concurrent.TimeoutException
+import scala.collection.immutable.HashMap
import scala.collection.mutable
import scala.concurrent.ExecutionContext.Implicits.global
import scala.concurrent.duration.DurationInt
@@ -75,6 +76,8 @@ class CostBasedScheduleGenerator(
actorId = actorId
)
+ private val regionCostMemo: mutable.Map[Region, (Region, Double)] = new mutable.HashMap()
+
def generate(): (Schedule, PhysicalPlan) = {
val startTime = System.nanoTime()
val regionDAG = createRegionDAG()
@@ -606,7 +609,8 @@ class CostBasedScheduleGenerator(
.map(level =>
level
.map(region => {
- val (newRegion, regionCost) = costEstimator.allocateResourcesAndEstimateCost(region, 1)
+ val (newRegion, regionCost) = regionCostMemo
+ .getOrElseUpdate(region, costEstimator.allocateResourcesAndEstimateCost(region, 1))
// Update the region in the regionDAG to be the new region with resources allocated.
replaceVertex(regionDAG, region, newRegion)
regionCost