Version 9 (modified by sunshine, 11 years ago) (diff)

--

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.

Additionally, the folder contains a version of assign I have used in testing, that will run on boss. It also contains two sets of test cases:

  • expinfotests - all attempted allocations from start of DeterLab until Spring 2013
  • expfailedtests - all failed allocations roughly from Jan 2012 until Spring 2013

Performance

Expinfotests

There were total of 109,326 tests

Category Count Percentage Reason
Both assign and assign+ succeeded 98,589 90% n/a
assign succeeded, assign+ failed 150 0.1%
Both assign and assign+ failed 6,341 5.8%
assign failed, assign+ succeeded, assign succeeded with fixed nodes from assign+ 666 0.6%
assign failed, assign+ succeeded, assign failed with fixed nodes from assign+ 3,580 3.2%

Attachments (3)

Download all attachments as: .zip