diff --git a/DAS/node.py b/DAS/node.py index 6bd5bfd..546304f 100644 --- a/DAS/node.py +++ b/DAS/node.py @@ -116,6 +116,13 @@ class Node: self.segmentShuffleScheduler = True # send each segment that's worth sending once in shuffled order, then repeat self.segmentShuffleSchedulerPersist = True # Persist scheduler state between timesteps + def addRowNeighbor(self, lineID, node): + self.rowNeighbors[lineID].update({node.ID : Neighbor(node, 0, self.shape.blockSizeR)}) + + def addColumnNeighbor(self, lineID, node): + self.columnNeighbors[lineID].update({node.ID : Neighbor(node, 1, self.shape.blockSizeC)}) + + def logIDs(self): """It logs the assigned rows and columns.""" if self.amIproposer == 1: diff --git a/DAS/simulator.py b/DAS/simulator.py index e207bc4..74ca0a0 100644 --- a/DAS/simulator.py +++ b/DAS/simulator.py @@ -157,8 +157,8 @@ class Simulator: for u, v in G.edges: val1=rowChannels[id][u] val2=rowChannels[id][v] - val1.rowNeighbors[id].update({val2.ID : Neighbor(val2, 0, self.shape.blockSizeR)}) - val2.rowNeighbors[id].update({val1.ID : Neighbor(val1, 0, self.shape.blockSizeR)}) + val1.addRowNeighbor(id, val2) + val2.addRowNeighbor(id, val1) for id in range(self.shape.blockSizeR): @@ -175,8 +175,8 @@ class Simulator: for u, v in G.edges: val1=columnChannels[id][u] val2=columnChannels[id][v] - val1.columnNeighbors[id].update({val2.ID : Neighbor(val2, 1, self.shape.blockSizeC)}) - val2.columnNeighbors[id].update({val1.ID : Neighbor(val1, 1, self.shape.blockSizeC)}) + val1.addColumnNeighbor(id, val2) + val2.addColumnNeighbor(id, val1) for v in self.validators: if (self.proposerPublishOnly and v.amIproposer): @@ -184,12 +184,12 @@ class Simulator: count = min(self.proposerPublishTo, len(rowChannels[id])) publishTo = random.sample(rowChannels[id], count) for vi in publishTo: - v.rowNeighbors[id].update({vi.ID : Neighbor(vi, 0, self.shape.blockSizeR)}) + v.addRowNeighbor(id, vi) for id in v.columnIDs: count = min(self.proposerPublishTo, len(columnChannels[id])) publishTo = random.sample(columnChannels[id], count) for vi in publishTo: - v.columnNeighbors[id].update({vi.ID : Neighbor(vi, 1, self.shape.blockSizeC)}) + v.addColumnNeighbor(id, vi) if self.logger.isEnabledFor(logging.DEBUG): for i in range(0, self.shape.numberNodes):