univ:utbm:re56_scheduler_proportional_fair
Proportional fair
This scheduler algorithm is a mix between the 2 previous algorithms : round-robin & max-CQI. It combines the equity principle of round-robin and the throughput optimization principle of max-CQI.
Proportional fair allocates resources to the UE which maximize the metric following :
metric = “instant reachable throughput” / “throughput average”
Pseudo code algorithm:
ProportionalFair (List<User> users, List<RBG> rbgs) {
List<User> data2send;
foreach User u in users {
if (u->queue.notEmpty()) {
u->instantThroughput = u.updateThroughput();
u->PFmetric = u->instantThroughput / u->averageThroughput;
if (data2send.isEmpty()) {
data2send.add(u);
else {
foreach User u2 in data2send {
if (u->PFmetric < u2->PFmetric) {
data2send.addBeforeU2(u);
}
}
}
}
}
boolean full = false;
foreach User u in data2send {
while (u->queue.notEmpty()) {
if (rbgs.notFull()) {
rbgs.add(u->queue.getFirst());
}
else {
full = true;
break;
}
}
if (full) {
break;
}
}
}
univ/utbm/re56_scheduler_proportional_fair.txt · Last modified: 2021/01/04 20:41 by 127.0.0.1
