Giter VIP home page Giter VIP logo

flowsim-1's Introduction

flowsim

A.k.a. FlowSimulator A.k.a. FlowsImproved

An generic event-driven flow-level network simulator for fast prototype implementation. The goal is to evaluate rate control transport schemes for data center networks.

Topologies:

  • FatTree
  • SpineLeaf

Traffic arrival models:

  • Poisson
  • On/Off

Load balancing:

  • ECMP
  • Hedera
  • Conga

How to run the code?

  1. "cd FlowSim/TestHuawei"
  2. "python Runner.py [-r routing_scheme]"
    The routing_scheme currently can be "ECMP" or "LB" or "Qlearning". E.g., "python Runner.py -r Qlearning".

Where to implement Qlearning algorithm?

Please open FlowSim/Routing/Qlearning_SpineLeaf.py, and check function "def select_action(self, state)".

a brief introduction to the code:

  • Routing
    • ECMP_SpineLeaf.py: Code of the ECMP routing scheme on SpineLeaf topology.
    • LB_SpineLeaf.py: Code of one load balancing (LB) scheme on SpineLeaf topology.
    • Qlearning_SpineLeaf.py: Code of the Qlearning routing scheme on SpineLeaf topology.
  • Topology
    • SpineLeaf.py: the code of spine-leaf topology.
  • Src
    • Link.py, Node.py: Code of links and nodes (servers and switches) of data center topologies, respectively.
    • Flow.py, Coflow.py: Code of flow and coflow, respectively.
    • FlowScheduler.py: The code to do flow scheduling of all input flows with varying start times and flow sizes.
    • Topology.py: The code of a class called "Topology" which defines a general data topology. All the specific topologies in Topology directory should be a subclass of "Topology" class.
    • Routing.py: The code of a class called "Routing" which defines a general routing scheme. All the specific routing schemes in Routing directory should be a subclass of "Routing" class.
    • Simulator.py: The code of simulator.
  • TestHuawei
    • Input: Input data.
    • Output: Output data.
      • LogInfo: trace of state updates.
    • TestFlowScheduler.py: the code todo input and output.
    • TestSimulator.py: the code to run simulator.py.
    • Runner.py: the script to run simulations with different options.

flowsim-1's People

Contributors

li-ch avatar shuihaihu avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.