WikiPrint - from Polar Technologies

Code

Code resides in assign+ branch of the repository, in assign+ folder. There are three files:

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+.

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:

Performance

Expinfotests

There were total of 109,326 tests. Historically, in real operation some of these allocations succeeded and some failed.

Category Count Percentage Reason
Both assign and assign+ succeeded 98,639 90% n/a
assign succeeded, assign+ failed 98 0.1% In 93 of these cases assign doesn't detect a disconnected switch topology nor oversubscribed interswitch bandwidth, but it should. In 2 cases we overestimate what we need in one vclass. I can fix this issue but it will have to wait. In 3 cases the ptopfile has an error - two interfaces on a physical node are called the same. assign doesn't pick up on this but assign+ does, which should be correct behavior. So effectively in only 2 out of 109,326 assign is better than assign+.
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% This happens because assign cannot properly deal with fixed interfaces. I checked quite a few of these solutions manually and they are possible solutions.