We found bug in HomogeneousOptimizer in issue #1232.
This bug occurs because we used Math.round function to compute optimalNumBlocks for each evaluator and set the last evaluator's optimalNumBlocks with the remaining.
However, Math.round function does not always return the floor of the value but the closest integer value, which can be ceiling of the value. This condition allows a result that totalBlocksInServers - numAssignedBlocks to be less than 0, which is infeasible.
I fixed this bug in this PR and it is quite simple logic.
This closes #1232
We found bug in
HomogeneousOptimizer
in issue #1232. This bug occurs because we usedMath.round
function to computeoptimalNumBlocks
for each evaluator and set the last evaluator'soptimalNumBlocks
with the remaining. However,Math.round
function does not always return the floor of the value but the closest integer value, which can be ceiling of the value. This condition allows a result thattotalBlocksInServers - numAssignedBlocks
to be less than 0, which is infeasible.I fixed this bug in this PR and it is quite simple logic.