Group reduction
FabricEval implements various group reduction algorithms in localTE/group_reduction.py
.
This includes prior work WCMP TableFitting (EuroSys 14),
iterative greedy reduction (IGR), direct mixed-integer reduction (DMIR), Google’s
variant of WCMP TableFitting, and monolithic Gurobi-based reduction etc.
Users can specify the group reduction algorithm to use by setting flag GR_ALGO
.
It is also possible to introduce a new algorithm by registering it in GroupReduction.solve()
.
One thing to keep in mind is to maintain a consistent structure of input and output
groups. Namely, each group in the output is 1:1 mapped to the group at the same
index in the input.
Also note that DMIR is implemented using Gurobi-based optimization. FLAG.GUROBI_TIMEOUT
sets the timeout duration to be 120 seconds. Sometimes, a potential solution is
not found because the optimization is cut off early. Increasing the timeout might
help in such a case. Besides, users should keep an eye out for memory usage, some
formulation for large scale networks could involve a lot of decision variables
and constraints, thus consuming a lot of memory.
- Previous
- Next