Skip to content

Latest commit

 

History

History
45 lines (36 loc) · 2.09 KB

File metadata and controls

45 lines (36 loc) · 2.09 KB

Gossip Algorithm and Push Sum Simulation using Akka in F#

Introduction

This project explores the Gossip and Push Sum algorithms in distributed systems using the Akka framework in F#. It delves into various network topologies to analyze the efficiency of these algorithms in different structures, including Full Network, 2D Grid, Imperfect 2D Grid, Line, 3D Grid, and Imperfect 3D Grid.

Project Structure

  • Program.fs: The main entry point of the application, containing utility functions and the main function.
  • Gossip.fs: Contains the core logic for the Gossip and Push Sum algorithms and network topologies.
  • Gossip.fsproj: The F# project file.

Running the Program

  1. Ensure Akka is installed. If not, run:
    dotnet add package Akka.FSharp --version 1.5.13
  2. Build the project:
    dotnet build
  3. Run the program with:
    dotnet run <numNodes> <topology> <algorithm>

Largest Network Handled

  • Gossip Algorithm: Up to 15,000 nodes for each topology.
  • Push Sum Algorithm: Up to 5,000 nodes for most topologies.

Results

Screenshots

  1. Gossip Algorithm with 3D topology (100 nodes): Gossip Algorithm with 3D Topology

  2. Push Sum Algorithm with Full topology (100 nodes): Push Sum Algorithm with Full Topology

Graphs

  • Gossip Algorithm (5000 nodes): Time Elapsed vs Number of Nodes - Gossip Algorithm

  • Push Sum Algorithm (100 nodes): Time Elapsed vs Number of Nodes - Push Sum Algorithm

Conclusion

The project demonstrates the effectiveness of the Gossip and Push Sum algorithms across different network topologies. It provides a thorough analysis of these algorithms' scalability and performance, contributing to the understanding of distributed system dynamics and their practical applicability.