Distributed Systems

In the course Distributed Computation (CD), we worked on several projects, some of them classic Distributed Systems problems, in order to familiarize ourselves with developing this kind of system and learn to implement one.

All the projects were developed in Python.

Chat Program

Our first assignment was to implement a simple client/server socket communication channel.

Although this is not a complex Distributed System in itself, this project allowed us to familiarize with Python socket communication and prepared us to develop bigger systems.

The code is available here

Load Balancer

This assignment now involved implementing several load balancing algorithms.

Further explanation and code can be found here

CHORD

This involved implementing the CHORD algorithm in Python.

Explanation and code is here

Drive-Through

One of the bigger projects we implemented simulated a Drive-Through restaurant, where work was dynamically assigned to individual worker threads.

Further explanation and code is available here

Drive-Through P2P

Finally, we implemented the same simulated Drive-Through problem, now using a peer-to-peer algorithm.

More explanation (including a report) and code is available here

This last project was made with Tomás Costa