As the patch 3 description, this patch series finally makes the allocation algorithm work in parallel. While the single-threaded mode doesn't impact hail (a single instance allocation/placement), when doing capacity computations with hspace a lot of speedup can be accomplished.
The scalability is quite good up until 4-5 threads and up to ~150 nodes, after that the gains are lower (e.g. 100 nodes with 8 threads, the speedup is only 4.9x). Patch 1 is cleanup but required for the rest of the series, patch 5 is also cleanup, and patch 6 is a small new feature. Iustin Pop (6): Change type of Cluster.AllocSolution Abstract comparison of AllocElements Parallelise instance allocation/capacity computation Change how node pairs are generated/used Small simplification in tryAlloc Add an allocation limit to hspace htools/Ganeti/HTools/CLI.hs | 5 +- htools/Ganeti/HTools/Cluster.hs | 118 +++++++++++++++++--------------- htools/Ganeti/HTools/IAlloc.hs | 7 +- htools/Ganeti/HTools/Program/Hspace.hs | 8 ++- htools/Ganeti/HTools/QC.hs | 14 ++-- man/hspace.rst | 5 ++ 6 files changed, 86 insertions(+), 71 deletions(-) -- 1.7.3.1
