Proportionally fair

From Infogalactic: the planetary knowledge core
Jump to: navigation, search

<templatestyles src="Module:Hatnote/styles.css"></templatestyles>

Proportional fair is a compromise-based scheduling algorithm. It is based upon maintaining a balance between two competing interests: Trying to maximize total [wired/wireless network] throughput while at the same time allowing all users at least a minimal level of service. This is done by assigning each data flow a data rate or a scheduling priority (depending on the implementation) that is inversely proportional to its anticipated resource consumption.[1]

Weighted fair queuing

Proportionally fair scheduling can be achieved by means of weighted fair queuing (WFQ), by setting the scheduling weights for data flow i to w_i = 1 / c_i, where the cost c_i is the amount of consumed resources per data bit. For instance:

  • In CDMA spread spectrum cellular networks, the cost may be the required energy per bit in the transmit power control (the increased interference level).
  • In wireless communication with link adaptation, the cost may be the required time to transmit a certain number of bits using the modulation and error coding scheme that this required. An example of this is EVDO networks, where reported SNR is used as the primary costing factor.
  • In wireless networks with fast Dynamic Channel Allocation, the cost may be the number of nearby base station sites that can not use the same frequency channel simultaneously, in view to avoid co-channel interference.

User prioritization

Another way to schedule data transfer that leads to similar results is through the use of prioritization coefficients.[2] Here we schedule the channel for the station that has the maximum of the priority function:

P=\frac{T^\alpha}{R^\beta}

  • T denotes the data rate potentially achievable for the station in the present time slot.
  • R is the historical average data rate of this station.
  • \alpha and \beta tune the "fairness" of the scheduler.

By adjusting \alpha and \beta in the formula above, we are able to adjust the balance between serving the best mobiles (the ones in the best channel conditions) more often and serving the costly mobiles often enough that they have an acceptable level of performance.

In the extreme case (\alpha=0 and \beta=1) the scheduler acts in a round-robin fashion and serves all mobiles equally often, with no regard for resource consumption. If \alpha=1 and \beta=0 then the scheduler will always serve the mobile with the best channel conditions. This will maximize the throughput of the channel while stations with low T are not served at all. Using \alpha\approx1 and \beta\approx1 will yield the proportional fair scheduling algorithm used in 3G networks.[2]

This technique can be further parametrized by using a "memory constant" that determines the period of time over which the station data rate used in calculating the priority function is averaged. A larger constant generally improves throughput at the expense of reduced short-term fairness.

See also

References

  1. Lua error in package.lua at line 80: module 'strict' not found.
  2. 2.0 2.1 Lua error in package.lua at line 80: module 'strict' not found.

Additional reading

  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.