[haizea-commit] r549 - trunk/src/haizea/resourcemanager
haizea-commit at mailman.cs.uchicago.edu
haizea-commit at mailman.cs.uchicago.edu
Wed Nov 26 15:11:24 CST 2008
Author: borja
Date: 2008-11-26 15:11:23 -0600 (Wed, 26 Nov 2008)
New Revision: 549
Modified:
trunk/src/haizea/resourcemanager/slottable.py
Log:
Minor changes in slottable implementation which should reduce running time of simulations.
Modified: trunk/src/haizea/resourcemanager/slottable.py
===================================================================
--- trunk/src/haizea/resourcemanager/slottable.py 2008-11-26 21:10:36 UTC (rev 548)
+++ trunk/src/haizea/resourcemanager/slottable.py 2008-11-26 21:11:23 UTC (rev 549)
@@ -228,7 +228,7 @@
return [i.value for i in self.reservationsByEnd if isinstance(i.value, ds.VMResourceReservation) and i.value.prematureend == t]
- def getReservationsWithChangePointsAfter(self, after):
+ def get_reservations_starting_or_ending_after(self, after):
item = KeyValueWrapper(after, None)
startpos = bisect.bisect_right(self.reservationsByStart, item)
bystart = set([x.value for x in self.reservationsByStart[:startpos]])
@@ -287,7 +287,7 @@
def findChangePointsAfter(self, after, until=None, nodes=None):
changepoints = set()
- res = self.getReservationsWithChangePointsAfter(after)
+ res = self.get_reservations_starting_or_ending_after(after)
for rr in res:
if nodes == None or (nodes != None and len(set(rr.resources_in_pnode.keys()) & set(nodes)) > 0):
if rr.start > after:
@@ -407,7 +407,13 @@
# Determine the availability at the subsequent change points
nodes = set(availatstart.keys())
- changepoints = self.slottable.findChangePointsAfter(self.time, nodes=self.avail.keys())
+ res = self.slottable.get_reservations_starting_after(self.time)
+ changepoints = set()
+ for rr in res:
+ if nodes == None or (nodes != None and len(set(rr.resources_in_pnode.keys()) & set(nodes)) > 0):
+ changepoints.add(rr.start)
+ changepoints = list(changepoints)
+ changepoints.sort()
for p in changepoints:
availatpoint = self.slottable.getAvailability(p, self.resreq, nodes, canpreempt)
newnodes = set(availatpoint.keys())
More information about the Haizea-commit
mailing list