Scheduling

../../_images/scheduling_api.png

Since the spectrum is shared among multiple users, resources must be allocatedin a fair and efficient manner.On the one hand, it is desirable to allocate resources uniformly across users.On the other hand, in the presence of fading, it is crucial to schedule userswhen their channel conditions are favorable.

The proportional fairness (PF) scheduler achieves both objectives bymaximizing the sum of logarithms of the long-term throughputs\(T(u)\)across the users\(u=1,2,\dots\):

\[\max \sum_u \log T(u).\]

For a usage example of user scheduling in Sionna, refer to theProportional Fairness Scheduler notebook.

classsionna.sys.PFSchedulerSUMIMO(num_ut,num_freq_res,num_ofdm_sym,batch_size=None,num_streams_per_ut=1,beta=0.98,precision=None)[source]

Schedules users according to a proportional fairness (PF) metric in asingle-user (SU) multiple-input multiple-output (MIMO) system, i.e., at mostone user is scheduled per time-frequency resource.

Fixing the time slot\(t\),\(\tilde{R}_t(u,i)\) istheachievable rate for user\(u\) on the time-frequencyresource\(i\) during the current slot.Let\(T_{t-1}(u)\) denote the throughputachieved by user\(u\) up to and including slot\(t-1\).Resource\(i\) is assigned to the user with the highest PF metric,as defined in[Jalali00]:

\[\operatorname{argmax}_{u} \frac{\tilde{R}_{t}(u,i)}{T_{t-1}(u)}.\]

All streams within a scheduled resource element are assigned to the selected user.

Let\(R_t(u)\) be the rate achieved by user\(u\) in slot\(t\).The throughput\(T\) by each user\(u\) is updated viageometric discounting:

\[T_t(u) = \beta \, T_{t-1}(u) + (1-\beta) \, R_t(u)\]

where\(\beta\in(0,1)\) is the discount factor.

Parameters:
  • num_ut (int) – Number of user terminals

  • num_freq_res (int) – Number of available frequency resources.A frequency resource is the smallest frequency unit that can beallocated to a user, typically a physical resource block (PRB).

  • num_ofdm_sym (int) – Number of OFDM symbols in a slot

  • batch_size (list |int |None (default)) – Batch size or shape. It can account for multiple sectors inwhich scheduling is performed simultaneously. IfNone, the batch sizeis set to [].

  • num_streams_per_ut (int (default: 1)) – Number of streams per user

  • beta (float (default: 0.98)) – Discount factor for computing the time-averaged achieved rate. Must bewithin (0,1).

  • precision (None (default) | “single” | “double”) – Precision used for internal calculations and outputs.If set toNone,precision is used.

Input:
  • rate_last_slot ([batch_size, num_ut]) – Rate achieved by each user in the last slot

  • rate_achievable_curr_slot ([batch_size, num_ofdm_sym, num_freq_res, num_ut],tf.float) – Achievable rate for each user across the OFDM grid in thecurrent slot

Output:

is_scheduled ([batch_size, num_ofdm_sym, num_freq_res, num_ut, num_streams_per_ut],tf.bool) – Whether a user is scheduled for transmission for each available resource

propertybeta

Get/set the discount factor for computing the time-averagedachieved rate. Must be within (0,1).

Type:

float

propertypf_metric

Proportionalfairness (PF) metric in the last slot

Type:

[batch_size, num_ofdm_sym, num_freq_res, num_ut],tf.float (read-only)

propertyrate_achieved_past

\(\beta\)-discounted time-averagedachieved rate for each user

Type:

[batch_size, num_ut],tf.float (read-only)

References:

[Jalali00]

A. Jalali, R. Padovani, R. Pankaj, “Datathroughput of CDMA-HDR a high efficiency-high data rate personalcommunication wireless system.” VTC2000-Spring. 2000 IEEE 51st VehicularTechnology Conference Proceedings. Vol. 3. IEEE, 2000.