Scheduling

Since the spectrum is shared among multiple users, resources must be allocated in 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 users when their channel conditions are favorable.
The proportional fairness (PF) scheduler achieves both objectives by
maximizing the sum of logarithms of the long-term throughputs
For a usage example of user scheduling in Sionna, refer to the Proportional Fairness Scheduler notebook.
- class sionna.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 a single-user (SU) multiple-input multiple-output (MIMO) system, i.e., at most one user is scheduled per time-frequency resource.
Fixing the time slot
, is the achievable rate for user on the time-frequency resource during the current slot. Let denote the throughput achieved by user up to and including slot . Resource is assigned to the user with the highest PF metric, as defined in [Jalali00]:All streams within a scheduled resource element are assigned to the selected user.
Let
be the rate achieved by user in slot . The throughput by each user is updated via geometric discounting:where
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 be allocated 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 in which scheduling is performed simultaneously. If None, the batch size is 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 be within (0,1).
precision (None (default) | “single” | “double”) – Precision used for internal calculations and outputs. If set to None,
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 the current 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
- property beta
Get/set the discount factor for computing the time-averaged achieved rate. Must be within (0,1).
- Type:
float
- property pf_metric
Proportional fairness (PF) metric in the last slot
- Type:
[batch_size, num_ofdm_sym, num_freq_res, num_ut], tf.float (read-only)
- property rate_achieved_past
-discounted time-averaged achieved rate for each user- Type:
[batch_size, num_ut], tf.float (read-only)
References:
[Jalali00]A. Jalali, R. Padovani, R. Pankaj, “Data throughput of CDMA-HDR a high efficiency-high data rate personal communication wireless system.” VTC2000-Spring. 2000 IEEE 51st Vehicular Technology Conference Proceedings. Vol. 3. IEEE, 2000.