echtzeitsysteme / iflye Goto Github PK
View Code? Open in Web Editor NEWIncremental Fast Lightweight (y) virtual network Embedding framework
License: GNU General Public License v3.0
Incremental Fast Lightweight (y) virtual network Embedding framework
License: GNU General Public License v3.0
Currently, the pipeline-based VNE algorithm (iflye-pipeline) extracts some of the resources to its parent folder, which should be fixed.
There are some minor implementation issues left, typically marked with a TODO
.
CsvUtil
error handling. https://github.com/maxkratz/iflye/blob/1bc84da8d29f8ef0b6f89b848bca2d90db743fe0/vne.scenarios/src/scenario/util/CsvUtil.java#L220GlobalMetricsManager
temporary evaluation fix. https://github.com/maxkratz/iflye/blob/1bc84da8d29f8ef0b6f89b848bca2d90db743fe0/network.metrics/src/metrics/manager/GlobalMetricsManager.java#L190UnifiedMap
from the Ecplise Collections in the class IncrementalGurobiSolver
for a possible minor performance boost.The title says everything.
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).
There are some occurances of deprecated method usages with Apache commons CSV, e.g. here: https://github.com/Echtzeitsysteme/iflye/blob/main/vne.scenarios/src/scenario/util/CsvUtil.java#L52
TODO: Fix these deprecated method calls
Edit: https://mvnrepository.com/artifact/org.apache.commons/commons-csv
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.
Rename the test project from test.suite
to test.suite.iflye
to avoid confusion when having the test.suite.gips
project in the same workspace.
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.
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.
The test VnePmMdvneAlgorithmMigrationPathBandwidthBugTest sometimes (rarely) fails, probably because of this bug: Echtzeitsysteme/gips-examples#32
Another idea to improve the embedding quality as well as the performance: Rating of matches:
Ideas:
Example criteria:
The cost function (e.g., with input = all attributes of all nodes of a match) could, for example, be learned by ML approaches.
The iDyVE framework also allows the use of other ILP solvers than Gurobi, e.g., IBM CPLEX. Currently, there is no functional implementation for other ILP solvers than Gurobi
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).
Currently, the framework has some functionality that relies on Linux system calls:
The title says everything.
Currently, the coverage is around ~88%.
I've created and described an issue with the comparison of data types with the eMoflon GT engine: eMoflon/emoflon-ibex#408.
After the issue is fixed, adapt all metamodels in this framework.
Alternative: Use type double
for all attributes within the metamodel.
The implementation of ilp/wrapper/IncrementalIlpSolver.java can potentially be removed due to the fact that emoflon has its own ILP solver interface (at least as I heard!).
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
.
emoflon-ibex
must be checked-out to gt-forEach
: https://github.com/emoflon/emoflon-ibex/tree/gt-forEachemoflon-ibex-ui
must be checked-out to forEach_Rule
: https://github.com/eMoflon/emoflon-ibex-ui/tree/forEach_RuleThis issue can be closed if both branches mentioned above are merged in the master
branches of the corresponding emoflon-ibex*
projects.
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.
Compared to the removal functionality of substrate servers, the framework, i.e., the class ModelFacade.java
, should feature a method the remove substrate switches.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.