Giter Site home page Giter Site logo

echtzeitsysteme / iflye Goto Github PK

View Code? Open in Web Editor NEW
4.0 4.0 2.0 31.38 MB

Incremental Fast Lightweight (y) virtual network Embedding framework

License: GNU General Public License v3.0

Java 97.31% Shell 2.10% TeX 0.51% Batchfile 0.08%
embedding emf emoflon graph-transformation ilp model network pattern-matching simulation virtual vne

iflye's People

Contributors

arg0n1s avatar maxkratz avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

iflye's Issues

Fix minor implementation issues

There are some minor implementation issues left, typically marked with a TODO.

Update Gurobi solver

Currently, the framework uses version 8.1.1, build v8.1.1rc0, of the Gurobi solver to make the performance comparable to iDyVE's implementation. However, after I submitted my master thesis, Gurobi can be upgraded to the latest version (9.1.2 at the time of this issue).

Adapt visualization to master thesis

Currently, the visualization of iflye uses circles as servers and boxes as switches. This is exactly the other way around than in my master thesis.

Refactor inherited test cases (e.g., VnePmMigration)

Currently, there are various test classes that inherit a super test class and just overwrite the method to create a new algorithm instance to test. As this is a bad coding style, one may refactor the test cases to parametrized tests to remove the high number of classes for each test case.

Example file: https://github.com/maxkratz/iflye/blob/1bc84da8d29f8ef0b6f89b848bca2d90db743fe0/test.suite/src/test/algorithms/pm/migration/VnePmMdvneAlgorithmMigrationTotalCommunicationCostATest.java#L21

PM-Migration VNE algorithm concept extension

As for now, the implementation of the MdVNE algorithm PM with migration enabled tries to re-embed virtual networks until a previously set value of n.

Idea: Try to find a good heuristic to set n to a useful value for a good speed to quality ratio.

Feature request: Rating of matches

Another idea to improve the embedding quality as well as the performance: Rating of matches:

  • for embedding candidates
  • for removal candidates (in case of migration)

Ideas:

  • cost function for matches to calculate their cost/quality

Example criteria:

  • remove matches from particularly full or particularly empty substrate servers

The cost function (e.g., with input = all attributes of all nodes of a match) could, for example, be learned by ML approaches.

Metric idea: Embedding quality per time

Maybe we can implement a metric that gives a result for "embedding quality per time". This could give a trade-off between long runtimes but good results (pure ILP algorithms) and short runtimes but bad results (pure heuristic algorithm).

Fix Windows incompatibility and/or document it

Currently, the framework has some functionality that relies on Linux system calls:

  • Memory PID metric (Java implementation uses Linux system calls)
  • Bash scripts
  • EmoflonGtAppUtils (may feature Linux-style paths, e.g., '/a/b/c')

Documentation issue: Current need to use feature branches in emoflon-ibex and emoflin-ibex-ui

After merging maxkratz@3b65798 into the branch main, the whole project is only executable while using some feature branches on emoflon-ibex and emoflon-ibex-ui.

This issue can be closed if both branches mentioned above are merged in the master branches of the corresponding emoflon-ibex* projects.

Remove duplicate vnets.json files

Currently, there are duplicated virtual network JSON files in vne.scenarios/resources/*/vnets.json. Do not forget to also update the evaluation scripts if you remove these files.

Implement removal of substrate switches

Compared to the removal functionality of substrate servers, the framework, i.e., the class ModelFacade.java, should feature a method the remove substrate switches.

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.