Code
Code resides in assign+ branch of the repository, in assign+ folder. There are three files:
- assign+
- PURPOSE: reads resource requirements and available resources and finds an allocation with minimum interswitch bw use
- INPUT: two command line arguments ptopfile and topfile. These files are usually produced in the process of resource assignment by assign_wrapper, now called mapper. There are a few other command line options, that should be self-explanatory when you run the code. If you want very verbose output run it with -d.
- OUTPUT: textual output denoting nodes and links and their assignments that can be passed further to resource allocation
- getptopdetail.pl
- PURPOSE: parse a ptopfile into something human-readable. Assign+ also uses this output.
- INPUT: ptopfile
- OUTPUT: human-readable summary of ptopfile
- gettopdetail.pl
- PURPOSE: parse a topfile into something human-readable. Assign+ also uses this output.
- INPUT: topfile
- OUTPUT: human-readable summary of topfile
Testing
Testing code resides in assign+ branch of the repository, in assign+/test folder. There are several files that jointly perform tests that compare performance of assign and assign+.
- removefixed.pl
- PURPOSE: Remove fixed nodes from a topfile
- INPUT: topfile
- OUTPUT: topfile in correct format minus lines that talk about fixed nodes
- makefixed.pl
- PURPOSE: Make a topfile with fixed nodes taken from the output of assign or assign+
- INPUT: output-file-of-assign-or-assign+ topfile
- OUTPUT: topfile in correct format plus lines that enforce fixed nodes and fixed interfaces for links
- parseinfo.pl
- PURPOSE: measure performance of assign or assign+
- INPUT: a file containing output of assign or assign+
- OUTPUT: success or failure of allocation, time the allocation took, number of nodes and interswitch links allocated
- runtests.pl
- PURPOSE: run a number of tests with assign and assign+
- INPUT: a file containing lines with ptopfile and topfile
- OUTPUT: file testresults that contains performance of these two allocation algorithms for each line of input
- processresults.pl
- PURPOSE: process the results file generated in the previous step
- INPUT: name of the results file
- OUTPUT: statistics about successes and failures of assign and assign+. The code also produces files that contain inputs that lead to following potentially anomalous cases:
- checktests - assign+ failed and assign didn't
- failedtests - both assign+ and assign failed
- weirdtests - assign+ succeeded and assign didn't
- impossibletests - assign+ succeeded and assign didn't with fixed nodes from output of assign+. This most often happens because assign+ cannot deal properly with fixed interfaces on links.