Optimization in the Loop Implementing and Testing Scheduling Algorithms with SimuLTE Antonio Virdis University of Pisa • Prof. Giovanni Stea • Giovanni Nardini
Outline • Why Optimization • Going into the Loop • Methods • Example 2
An everyday problem Algorithm System HELP! 3
Comparing Results I’m better than you Algorithm 1 system Algorithm 2 4
Comparing with the best 140 120 Some Important KPI 100 80 60 40 20 0 5
Comparing with the best 140 120 Some Important KPI 100 80 60 40 20 0 6
Comparing Results I’m better than the optimum system å a ´ x i max i s . t . x i + p i £ M ... 7
A simple problem HELP! scheduler resources buffers 8
Taking a Photo HELP! scheduler resources buffers Mathematical Formulation 9
Quiz 1 10
Quiz 1 Full Buffer resources output speed s1 > s2 s1 s2 t0 t1 Time 11
Finite Buffer: CBR resources s1 s2 t0 t1 Time 12
How does the system evolve HELP! scheduler resources buffers Decision 13
From outside to inside HELP! resources scheduler buffers Decision HELP! resources buffers Decision 14
Going Into The Loop 15
Overview 1. Read system info 2. Build problem instance 3. Solving 4. Parse and enforce solution 2 2 3 3 1 HELP! scheduler buffers Decision 4 16
2 methods LP File 2 Simulator CPLEX XML File 3 Simulator CPLEX 17
2 Building A problem File LP file for( i=0 ; i<N ; ++i ) stream << “x” << i << “ + “ ; N å x i max i s . t . x i + p i £ M " i ... for( i=0 ; i<N ; ++i ) …………… 18
3 Reading Results XML file – XML Management • Built-in in OMNeT • Easy to implement manually 19
2° method: API • Idea: can we use CPLEX as an API? – Callable Library : matrix-based C-written API – Concert Tecnology : a set of modeling objects (also) in C++ 20
Including CPLEX • TELL OMNET : – where the .h files are located – where the dynamic libraries are located – wich dynamic library to include – enable the I_STD preprocessor macro • Can be done via the Project Properties of OMNeT++ 21
Matrix representation x0 0 x1 1 x2 2 x3 3 p0 p1 p2 p3 … 4 5 6 7 … … … Objective 0 0 0 0 function ALL variables Constraints 22
Matrix representation 23
Custom C++ Interface • Generally variables are in the form: – X i One pedi x – y i , j Two pedi ces 0 £ i < M M ´ K y i , j 0 £ j < K 24
2° Method: variables Name , #1st , #2nd x i M 0 Access with y i , j M K local indexes z n L 0 M x K L M 25
2° Method: constraints • Add constraints one by one usign local indexes • Build the problem at the end one-shot 26
Reading The Output XML index 0 1 2 3 4 ……. solution 27
Quiz 2: { } x i Î 0,1 Binary values ? x[i] == 1 28
Quiz 2: x0 -> 0 x0 -> 0.00000000 x1 -> 0 x1 -> 0.00000000 x2 -> 1 x2 -> 1.00000000 x3 -> 0 x3 -> 0.00000000 x4 -> 1 x4 -> 1.00000000 Do not trust Increase x5 -> 0 x5 -> 0.00000000 double values Precision x6 -> 0 x6 -> 0.00000000 x7 -> 1 x7 -> 1.00000000 x8 -> 1 x8 -> 1.00000001 x9 -> 1 x9 -> 1.00000000 x10 -> 1 x10 -> 1.00000000 x11 -> 0 x11 -> 0.00000000 29
Pros and Cons • Easy to build LP file • Generally slower XML FILE • Generally faster • Requires API knowledge 30
Optimization in SimuLTE resources buffers 31
LTE CQI 90 bytes UE1 RBs 1ms eNB UE2 Buffers CQI UE2 UE1 55 bytes 32
Resource allocation in LTE RBs CQI1 CQI2 Allocate RB s to UE s 33
Multi Band Scheduling RBs CQI1 [0] CQI2 [0] CQI1 [1] CQI2 [1] CQI1 [2] CQI2 [2] … … 34
SimuLTE: Scheduling structure eNB System Layers Resource Status Scheduling Allocator Modules 35
SimuLTE: Scheduler Hierarchy eNB Data Allocator Scheduler Manager 1 4 Scheduling Policy 2 MAX C/I PF 3 36
Simulation Scenario …….. CBR Traffic • Varying packet size • Linear Mobility • InLoop vs OutLoop 37
InLoop vs OutLoop 600 Algorithm In Loop Out Loop 500 MAC Throughput [byte/TTI] 400 300 200 100 0 250 500 750 1000 Packet Size 38
InLoop vs OutLoop 600 Algorithm In Loop Out Loop 500 MAC Throughput [byte/TTI] 400 300 200 100 0 250 500 750 1000 Packet Size 39
Any question while running for dinner ? Antonio Virdis a.virdis@iet.unipi.it simulte.com
Recommend
More recommend