This project implements a distributed algorithm for communication between nodes in a network using **Sockets**. The code is designed to be containerized using Docker and deployed on different hosts, such as AWS VMs.
This project implements a **Sockets** based distributed algorithm for communication between nodes. The code is designed to be containerized using Docker and deployed on a Docker SWAM cluster deployed on a set of AWS instances.
The algorithm will later be used as a backbone for distributed federated learning. This version only deals with message communication between neighbors: there is no training/learning. The messages will later represent the weight exchanges of local neural networks (NN) deployed on the nodes.
## Prerequisites
## Prerequisites
- Python 3.x
- Python 3.x
...
@@ -11,7 +13,7 @@ This project implements a distributed algorithm for communication between nodes
...
@@ -11,7 +13,7 @@ This project implements a distributed algorithm for communication between nodes
## Initial Setup
## Initial Setup
1.**Create Virtual Machines**:
1.**Create Virtual Machines**:
- Create *n* EC2 instances on Amazon.
- Create *n* EC2 **Ubuntu**instances on Amazon.
- Save the private IP addresses in the file `instance_privateIPs.txt`
- Save the private IP addresses in the file `instance_privateIPs.txt`