Analyzing the Impact of Scheduling Strategy on Blocking Probability

  • In this notebook, we simulate the impact of scheduling strategy on blocking probability

  • Base Station (BS) scheduler allocates different set of CCEs to different UEs based on a certain strategy

  • For instance, let us consider two scheduling strategies namely strategy 1 and strategy 2, where

    • strategy 1: scheduler allocates UEs from low-to-high ALs. i.e., UEs with lower AL are scheduled first.

    • strategy 2: scheduler allocates UEs from high-to-low ALs. i.e., UEs with higher AL are scheduled first.

Python Libraries

[1]:
import os
os.environ["CUDA_VISIBLE_DEVICES"] = "-1"
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'

# %matplotlib widget
import matplotlib.pyplot  as plt
import matplotlib.patches as mpatches
import matplotlib as mpl

import numpy      as np

5G-Toolkit Libraries

[2]:
import sys
sys.path.append("../../")
from toolkit5G.Scheduler import PDCCHScheduler

Simulation Parameters

The following parameters are used for this simulation: - coresetID denotes the coreset ID. - slotNumber denotes the slot-number carrying the PDCCH. - searchSpaceType denotes the search space type. UE specific search space (USS) or Common search space (CSS). - nci denotes the variable corresponding to carrier aggregation. Current simulation does not assume carrier aggregation.

[3]:

mu = np.random.randint(4) # numerlogy for sub-carrier spacing coresetID = 1 # coreset ID slotNumber = 0 searchSpaceType = "USS" # search space type. UE specific search space nci = 0 # variable corresponding to carrier aggregation numIterations = 1000

PDCCH Scheduling Parameters

Following parameters are crucial for PDCCH scheduling performance: - Nccep denotes coreset size or number of CCEs available for scheduling UEs. - strategy denotes the scheduling strategy. - numCandidatesUnderEachAL denotes number of PDCCH candidates per aggregation level. - aggLevelProbDistribution denotes the probability distribution with which the scheduler chooses a particular aggregation level (AL) for each UE. Supported ALs under USS are 1,2,4,8,16.

[4]:
Nccep                    = 54
maxNumUEs                = 40
numUEs                   = np.arange(5,maxNumUEs+1,5)
aggLevelProbDistribution = np.array([0.4, 0.3, 0.2, 0.05, 0.05])
numCandidates            = np.array([6,6,4,2,1], dtype=int)
pdcchSchedulerObj        = PDCCHScheduler(mu, slotNumber, coresetID, nci)

Simulation for Scheduling Strategy-I

[5]:
##############
# Strategy 1
##############
strategy                   = "Conservative"
probOfBlockingForStrategy1 = np.zeros((numUEs.shape))

for n in range(numUEs.size):
    print("Simulating (n,numUEs) : "+str(n)+", "+str(numUEs[n]))
    prob      = 0
    for i in range(numIterations):
        ueALdistribution  = np.random.multinomial(numUEs[n], aggLevelProbDistribution)
        rnti              = np.random.choice( np.arange(1,65519+1), size = (numUEs[n],), replace=False)
        count             = pdcchSchedulerObj(Nccep,searchSpaceType,ueALdistribution,numCandidates,rnti,strategy)[0]
        numBlockedUEs     = np.sum(count)
        prob              = prob + numBlockedUEs/numUEs[n]
    probOfBlockingForStrategy1[n] = prob/numIterations
Simulating (n,numUEs) : 0, 5
Simulating (n,numUEs) : 1, 10
Simulating (n,numUEs) : 2, 15
Simulating (n,numUEs) : 3, 20
Simulating (n,numUEs) : 4, 25
Simulating (n,numUEs) : 5, 30
Simulating (n,numUEs) : 6, 35
Simulating (n,numUEs) : 7, 40

Blocking probability vs number of UEs to be scheduled.

  • Its the recreation of Fig. 4: Blocking probability versus number of UEs to be scheduled. from the reference paper referenced below [1].

  • Figure shows that by doubling the number of UEs from 15 to 30, the blocking probability increases from 0.15 to 0.3, corresponding to an increase by a factor of 2.

[6]:
fig, ax = plt.subplots()
ax.plot(numUEs, probOfBlockingForStrategy1, marker  = "*",linestyle = "solid", ms = 12, c = 'b')

ax.set_xlabel('Total Number of UEs')
ax.set_ylabel('Blocking Probability')
ax.set_title('Blocking probability versus number of UEs to be scheduled.', fontsize=12)
ax.set_xticks(numUEs)
ax.set_xlim([numUEs[0]-0.5, numUEs[-1]+0.5])
ax.grid()
plt.show()
../../../_images/api_Projects_Project2_Impact_of_Scheduling_Strategy_on_Blocking_Probability_12_0.png

Simulation for Scheduling Strategy-II

[7]:
##############
# Strategy 2
##############
strategy = "Aggressive"
probOfBlockingForStrategy2 = np.zeros((numUEs.shape))

for n in range(numUEs.size):
    print("Simulating (n,numUEs) : "+str(n)+", "+str(numUEs[n]))
    prob      = 0
    for i in range(numIterations):
        ueALdistribution  = np.random.multinomial(numUEs[n], aggLevelProbDistribution)
        rnti              = np.random.choice( np.arange(1,65519+1), size = (numUEs[n],), replace=False)
        count             = pdcchSchedulerObj(Nccep,searchSpaceType,ueALdistribution,numCandidates,rnti,strategy)[0]
        numBlockedUEs     = np.sum(count)
        prob              = prob + numBlockedUEs/numUEs[n]
    probOfBlockingForStrategy2[n] = prob/numIterations
Simulating (n,numUEs) : 0, 5
Simulating (n,numUEs) : 1, 10
Simulating (n,numUEs) : 2, 15
Simulating (n,numUEs) : 3, 20
Simulating (n,numUEs) : 4, 25
Simulating (n,numUEs) : 5, 30
Simulating (n,numUEs) : 6, 35
Simulating (n,numUEs) : 7, 40

Plotting Blocking Probability vs Number of UEs for Scheduling Strategy

  • Its the recreation of Fig. 10: Blocking probability for different scheduling strategiesfrom the paper referenced below [1].

  • Figure shows that strategy 1 outperforms strategy 2 in terms of blocking probability.

  • The reason is that strategy 2 prioritizes UEs with high ALs that uses more number of CCEs, thus resulting in a higher blocking probability compared to strategy 1.

  • For instance, in strategy 2, a UE using AL 16 may block 16 UEs using AL 1.

  • Also from the figure, we see that for a small number of UEs (e.g., 15) the two scheduling strategies have the same performance. However, when number of UEs increases to 40, blocking probability under strategy 2 is aproximately 3.5 times larger than the case with strategy 1, in the CORESET size of 54 CCEs.

  • Note that the performance of different scheduling strategies is also dependent on the CORESET size.

[8]:
fig, ax = plt.subplots()
ax.plot(numUEs, probOfBlockingForStrategy1, marker  = "*",linestyle = "solid", ms = 12, c = 'b', label = "Scheduling strategy-1")
ax.plot(numUEs, probOfBlockingForStrategy2, marker  = "o",linestyle = "solid", ms = 6,  c = 'r', label = "Scheduling strategy-2")

ax.legend()
ax.set_xlabel('Total Number of UEs')
ax.set_ylabel('Blocking Probability')
ax.set_title('Blocking Probability for different Scheduling Strategies', fontsize=12)
ax.set_xticks(numUEs)
ax.set_xlim([numUEs[0]-0.5, numUEs[-1]+0.5])
ax.grid()
plt.show()
../../../_images/api_Projects_Project2_Impact_of_Scheduling_Strategy_on_Blocking_Probability_16_0.png

References

[1] Blocking Probability Analysis for 5G New Radio (NR) Physical Downlink Control Channel. Mohammad Mozaffari, Y.-P. Eric Wang, and Kittipong Kittichokechai

[ ]: