AS201281 Wiki

Your check engine light is on!

User Tools

Site Tools


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