From 89dfaa00ffa44f73f20afab7e4123994ea885fb4 Mon Sep 17 00:00:00 2001
From: Rishi Sharma <rishi.sharma@epfl.ch>
Date: Thu, 28 Jul 2022 13:07:31 +0200
Subject: [PATCH] Fix disconnect

---
 eval/plot.py                                    | 9 +++++----
 src/decentralizepy/node/DPSGDWithPeerSampler.py | 2 +-
 src/decentralizepy/node/Node.py                 | 2 +-
 src/decentralizepy/node/PeerSampler.py          | 2 ++
 src/decentralizepy/node/PeerSamplerDynamic.py   | 2 ++
 5 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/eval/plot.py b/eval/plot.py
index 8a9bcc1..35f16fc 100644
--- a/eval/plot.py
+++ b/eval/plot.py
@@ -29,10 +29,11 @@ def get_stats(l):
 def plot(means, stdevs, mins, maxs, title, label, loc):
     plt.title(title)
     plt.xlabel("communication rounds")
-    x_axis = list(means.keys())
-    y_axis = list(means.values())
-    err = list(stdevs.values())
-    plt.errorbar(x_axis, y_axis, yerr=err, label=label)
+    x_axis = np.array(list(means.keys()))
+    y_axis = np.array(list(means.values()))
+    err = np.array(list(stdevs.values()))
+    plt.plot(x_axis, y_axis, label=label)
+    plt.fill_between(x_axis, y_axis - err, y_axis + err, alpha=0.4)
     plt.legend(loc=loc)
 
 
diff --git a/src/decentralizepy/node/DPSGDWithPeerSampler.py b/src/decentralizepy/node/DPSGDWithPeerSampler.py
index 2508675..d4e926c 100644
--- a/src/decentralizepy/node/DPSGDWithPeerSampler.py
+++ b/src/decentralizepy/node/DPSGDWithPeerSampler.py
@@ -154,7 +154,7 @@ class DPSGDWithPeerSampler(DPSGDNode):
         """
         if not self.sent_disconnections:
             logging.info("Disconnecting neighbors")
-            for uid in self.my_neighbors:
+            for uid in self.barrier:
                 self.communication.send(uid, {"BYE": self.uid, "CHANNEL": "DISCONNECT"})
             self.communication.send(
                 self.peer_sampler_uid, {"BYE": self.uid, "CHANNEL": "SERVER_REQUEST"}
diff --git a/src/decentralizepy/node/Node.py b/src/decentralizepy/node/Node.py
index 305064e..145b362 100644
--- a/src/decentralizepy/node/Node.py
+++ b/src/decentralizepy/node/Node.py
@@ -108,7 +108,7 @@ class Node:
         """
         if not self.sent_disconnections:
             logging.info("Disconnecting neighbors")
-            for uid in self.my_neighbors:
+            for uid in self.barrier:
                 self.communication.send(uid, {"BYE": self.uid, "CHANNEL": "DISCONNECT"})
             self.sent_disconnections = True
             while len(self.barrier):
diff --git a/src/decentralizepy/node/PeerSampler.py b/src/decentralizepy/node/PeerSampler.py
index 6c76156..1311a26 100644
--- a/src/decentralizepy/node/PeerSampler.py
+++ b/src/decentralizepy/node/PeerSampler.py
@@ -258,3 +258,5 @@ class PeerSampler(Node):
         )
 
         self.run()
+
+        logging.info("Peer Sampler exiting")
diff --git a/src/decentralizepy/node/PeerSamplerDynamic.py b/src/decentralizepy/node/PeerSamplerDynamic.py
index 9c9dc83..ffee60a 100644
--- a/src/decentralizepy/node/PeerSamplerDynamic.py
+++ b/src/decentralizepy/node/PeerSamplerDynamic.py
@@ -96,3 +96,5 @@ class PeerSamplerDynamic(PeerSampler):
         )
 
         self.run()
+
+        logging.info("Peer Sampler exiting")
-- 
GitLab