Hi Uwe, I don't have a lot of experience here, but this is what I think.
The only thing missing is that the times and QOS numbers need to be normalised. The time factor is the job age divided by PriorityMaxAge, so it's between 0 and 1 (jobs older than PriorityMaxAge don't increase in priority). QOS priorities are also normalised (highest QOS = 1, lowest QOS = 0). If we put in terms of your 'equal priority age', which I think is an excellent way of thinking about it, then in your situation: (EqualPriorityAge / PriorityMaxAge) * PriorityWeightAge = PriorityWeightQOS (as you only have two QOSes, the right hand side is simplified). So if your equal priority age was half your priority max age (e.g. 3 days vs 6 days), your PriorityWeightAge would need to be twice your PriorityWeightQOS. In your form: AgeWeight 1 ---------- = ------------------------- QOSWeight t(low) / PriorityMaxAge Cheers, Ben -----Original Message----- From: Uwe Sauter [mailto:[email protected]] Sent: 13 February 2015 14:43 To: slurm-dev Subject: [slurm-dev] Time unit for multifactor priority Hi all, say I want to have 2 QoS with different priorities (normal and low). And also say that I want a job with low QoS to have the same priority as a normal job that is submit exactly 3 days later. Or to rephrase: a low job should get an equal priority after 3 days (259200 sec) than a normal job directly after submit. How would I achieve that, given that no fairshare, partition or jobsize should alter priority? My solution would be: AgeWeight * t(normal) + QosWeight * Qos(normal) must equal AgeWeight * t(low) + QosWeight * Qos(low) With the assumption that t is measured in seconds this would result in: Qos(normal = 10; Qos(low) = 1; t(normal) = 0; t(low) = 259200 (=3days) AgeWeight Qos(normal) - Qos(low) 9 --------- = ------------------------ = ------ QosWeight t(low) - t(normal) 259200 Does this sound right? If not, what unit is the wait time measured in? Regards, Uwe
