node: addRowNeighbor and addColumnNeighbor

Signed-off-by: Csaba Kiraly <csaba.kiraly@gmail.com>
This commit is contained in:
Csaba Kiraly 2024-02-20 09:40:57 +01:00
parent 207ff42348
commit bc289555d3
No known key found for this signature in database
GPG Key ID: 0FE274EE8C95166E
2 changed files with 13 additions and 6 deletions

View File

@ -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:

View File

@ -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):