[pve-devel] [PATCH proxmox-resource-scheduling 1/3] initial commit

DERUMIER, Alexandre Alexandre.DERUMIER at groupe-cyllene.com
Tue Nov 15 16:39:58 CET 2022


Thanks Fiona for your hard work on this !

I'm going to review/test them this week.

I'm  not an expert in Rust, but I think I'll be able to read the code


Just a question, how do you choose the weight of different criteria ?

I think in the second patch, I see:

+    static ref PVE_HA_TOPSIS_CRITERIA: TopsisCriteria<N_CRITERIA> =
TopsisCriteria::new([
+        TopsisCriterion::new("average CPU".to_string(), -1.0),
+        TopsisCriterion::new("highest CPU".to_string(), -2.0),
+        TopsisCriterion::new("average memory".to_string(), -5.0),
+        TopsisCriterion::new("highest memory".to_string(), -10.0),
+    ])


Is is arbitrary values ?

if you look at my previous patch series,
https://lists.proxmox.com/pipermail/pve-devel/2022-April/052779.html

I have also implement the AHP algo. (from AHP-TOPSIS), which is really
usefull to find weights for criteria, when you begin to have a lot of
criterias, giving priority in a matrix between each criterias.

here a youtube video about the math:
https://www.youtube.com/watch?v=J4T70o8gjlk&t=456s


(I had implemented AHP to dynamic find the weights on service start, we
the weight could be compute once, and set statically)


Le jeudi 10 novembre 2022 à 15:37 +0100, Fiona Ebner a écrit :
> Implement the TOPSIS[0] algorithm to score multi-valued alternatives
> according to a given set of weighted criteria.
> 
> The number of alternatives cannot be known at compile time, but the
> number of criteria should be (a given module using the topsis module
> should have one (or more) fixed sets of criteria). Therefore, the
> TopsisMatrix is implemented as a Vec of N_CRITERIA-sized arrays.
> 
> Compared to the description in [0] the weighing of the matrix
> according to the weights of the criteria only happens during distance
> calculation to the idealized alternatives. It turned out more natural
> like that, because the matrix doesn't need to be mutable.
> 
>  



More information about the pve-devel mailing list