Skip to content

Commit c6936cc

Browse files
committed
readme, sys arch, test arch! 🎉 ✨ 🎨
1 parent 7dea970 commit c6936cc

File tree

6 files changed

+32
-20
lines changed

6 files changed

+32
-20
lines changed

README.md

Lines changed: 17 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,21 @@
11
# CS553 Distributed Computing Project => Distributed Algorithms Simulation
22

3-
This project is a simulation of various distributed computing algorithms implemented in Scala using the Akka framework.
3+
This project is a simulation of various distributed computing algorithms implemented in Scala using the Akka framework. We use lightbend telemetry to monitor the performance of the simulation. The project includes the following features:
4+
- Automated simulation of distributed algorithms based on a simulation plan
5+
- Support for message-passing and shared memory algorithms
6+
- Integration with Lightbend Telemetry for monitoring the performance of the simulation
7+
- Visualization of the simulation results using Lightbend Telemetry on Prometheus and Grafana
8+
- Integration tests for the simulation
9+
- Unit tests for the shared memory algorithms
410

511
## Simulation Architecture
612

7-
8-
9-
10-
## Testing Architecture
11-
13+
![Simulation Architecture](docs/assets/553sysarch.png)
1214

1315
## Prerequisites
1416

1517
Before you begin, ensure you have met the following requirements:
16-
- You have installed version 17 of [Java](https://www.oracle.com/java/technologies/javase-jdk17-downloads.html), [Scala](https://www.scala-lang.org/download/), and [sbt](https://www.scala-sbt.org/download.html).
18+
- You have installed version 17 of [Java](https://www.oracle.com/java/technologies/javase-jdk17-downloads.html), supported version of [Scala](https://www.scala-lang.org/download/), and [sbt](https://www.scala-sbt.org/download.html).
1719

1820

1921
## Setting Up and Running the Project
@@ -32,6 +34,10 @@ This project includes both unit tests and integration tests. To run them, use th
3234
sbt clean compile test
3335
```
3436

37+
### Testing Approach
38+
39+
![Testing Architecture](docs/assets/553testarch.png)
40+
3541
### Mutex Tests
3642

3743
- Test cases for all algorithms (Integration Testing Based on Log Analysis). Directory [`src/test/scala/com/distcomp/mutex`](src/test/scala/com/distcomp/mutex).
@@ -74,21 +80,12 @@ sbt clean compile test
7480
- Test and Test and Set Lock Algorithm
7581
- Uses a custom actor for maintianing shared memory (Test and Test and Set Shared Mem Actor)
7682

77-
#### [Simulation Plan](./mutexsimplan.json)
78-
79-
1. Ricart Agarwal
80-
2. Ricart Agarwal Carvalho Extension
81-
3. Raymonds Algorithm
82-
4. Agrawal El Abbadi
83-
5. Peterson's Algorithm (Tournament for N Processes) 26 Processes
84-
6. Peterson's Algorithm (Tournament for N Processes) 8 Processes
85-
7. Peterson's Algorithm (Two Process)
86-
8. Bakery Algorithm
87-
9. Test and Set Lock Algorithm
88-
10. Test and Test and Set Lock Algorithm
83+
> [Simulation Plan](./mutexsimplan.json)
8984
9085

9186
### Telemetry
9287

93-
![Mutex Telemetry](./assets/mutexsimplanrun.png)
88+
The below image shows the telemetry data for the simulation run with the `mutexsimplan.json` simulation plan.
89+
90+
![Mutex Telemetry](docs/assets/mutexsimplanrun.png)
9491

docs/MutexAlgorithms.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ This document provides a detailed explanation of the mutex algorithms implemente
77
The mutex module in this project implements various mutual exclusion algorithms. These algorithms are used to prevent concurrent processes from accessing shared resources simultaneously, thus avoiding potential conflicts or inconsistencies.
88
All the algorithms implemented from the mutual exclusion chapter of the textbook ["Distributed Algorithms, Second Edition An Intuitive Approach, W Fokik"](https://mitpress.mit.edu/9780262037662/distributed-algorithms/) which provides an intuitive approach to learning them by summarising and elaborating on individual paper.
99

10+
11+
1012
## Algorithms Implemented
1113

1214
The following algorithms are implemented in this project:
@@ -20,6 +22,19 @@ The following algorithms are implemented in this project:
2022
8. Test and Set Lock Algorithm
2123
9. Test and Test and Set Lock Algorithm
2224

25+
### [Simulation Plan](../mutexsimplan.json)
26+
27+
1. Ricart Agarwal
28+
2. Ricart Agarwal Carvalho Extension
29+
3. Raymonds Algorithm
30+
4. Agrawal El Abbadi
31+
5. Peterson's Algorithm (Tournament for N Processes) 26 Processes
32+
6. Peterson's Algorithm (Tournament for N Processes) 8 Processes
33+
7. Peterson's Algorithm (Two Process)
34+
8. Bakery Algorithm
35+
9. Test and Set Lock Algorithm
36+
10. Test and Test and Set Lock Algorithm
37+
2338
## Algorithm Details
2439

2540
### [Ricart Agarwal](../src/main/scala/com/distcomp/mutex/RicartaAgarwal.scala)

docs/assets/553sysarch.png

187 KB
Loading

docs/assets/553testarch.png

97.3 KB
Loading
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)