Dynamic Thread Scheduling on MP-SoC using Game Theory Authors: Pao-Ann Hsiung Bo-HsuanWang Embedded System Laboratory Dept. of CSIE National Chung Cheng University Outline Introduction System Model Scheduling Algorithm Experimental Results Conclusions 2 Introduction More and more chip makers integrate multiple processing elements (cores) into a single chip, this configuration is called MP-SoC. MP-SoC provides us better processing performance to fit the processing requirements, but it also imposes some challenges. We focus on the thread scheduling problems with the dependence among threads in the MP-SoC, and solve it by the Game Theory. 3 Outline Introduction System Model Scheduling Algorithm Experimental Results Conclusions 4 Behavior of threads ENTER LEAVE READY RUNNING WAITING 5 Priority of threads 6 Priority Time quantum (cycles) Select order 1 10 10th 2 20 9th 3 30 8rd 4 40 7th 5 50 6th 6 60 5th 7 70 4th 8 80 3rd 9 90 2nd 10 100 1st Dependence of threads 0 Wait t1 t2 t3 t4 1 time 2 3 4 5 6 7 8 9 WSP (Wait Synchronization Point) CSP (Complete Synchronization Point) 7 Complete Scheduling Scenario Scenario 1: t1, t2, t3 and t4 has fix priority with 3 cycles time quantum. Core 1 t 1 0 t 3 1 t4 2 3 t4 4 5 6 t4 7 8 9 t1 t1 t1 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 36/24*2=75% Core 2 t2 0 1 t3 2 3 4 5 6 t3 7 8 9 t3 t2 t2 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Scenario 2: t1 has 2, t2 has 1, t3 has 3 and t4 has 5 cycles time quantum. Core 1 Core 2 8 t4 0 1 t 3 0 2 t 1 1 3 t 2 2 t 2 t4 4 5 4 7 t 2 t3 3 6 5 8 9 t3 6 7 t1 9 t1 t1 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 t3 8 t1 t 2 t 2 t 2 t 2 t 2 t 2 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 36/22*2=82% Outline Introduction System Model Scheduling Algorithm Experimental Results Conclusions 9 Game-Theoretic Scheduling Algorithm (GT) The Game-Theoretic scheduling algorithm (GT) is composed by two parts: Game-theoretic Priority Decision Set the appropriate priorities for each threads using Game Theory. Dynamic Priority Adjusting Re-adjust the priorities of the threads when the system status change. 10 What strategies they Game-theoretic Priority Decision can choose? Who play this game? G = { P , Si , ui } How do they choose strategies? P = { p1=thread1 , p2=thread2 , … , pn=threadn } Si = { si1=1 , si2=2 , …, si10=10 } No. of CSPs you complete No. of WSPs you wait 11 No. of time quantum you execute more than others Dynamic priority Adjusting Is a thread enter or leave Y Game-theoretic Priority Decision Thread Scheduling 12 N Outline Introduction System Model Scheduling Algorithm Experimental Results Conclusions 13 Experimental Results In our experiments, we generate 20 threads with Random start time when they enter the system. Random execution time in 5000 to 10000 cycles. Random dependence. 14 Experimental Results (cont.) 15 Experimental Results (cont.) 16 Experimental Results 14% 17 7~8% 5% Outline Introduction System Model Scheduling Algorithm Experimental Results Conclusions 18 Conclusions We propose a thread scheduling algorithm on the MP-SoC for a set of threads with dependence using Game Theory. We can use our algorithm to dynamically adjust the priorities of each thread when the system status is change. The results shows our algorithm provides shorter scheduling turnaround time and higher cores utilization. 19 Thanks for Your Attention! Bo-Hsuan Wang Embedded System Laboratory Dept. of CSIE National Chung Cheng University E-mail: wph98m@cs.ccu.edu.tw Tel: (05)2720411 ext.33132 Cell phone: 0933232940 20 Game-theoretic Priority Decision Wij Number of WSPs that threadi wait for threadj Cij Number of CSPs that threadi complete threadj T Time quanta vector of all threads T = [ t(s1) t(s2) … t(sn) ]T where t(si) = si * 10 cycles Ti Time quanta vector of threadi Ti = [ t(si) t(si) … t(si) ]T where t(si) = si * 10 cycles 21 Game Theory Non-cooperative simultaneous game Each player individually chooses a strategy. Each player simultaneously chooses a strategy. Easy to implement. Nash Equilibrium For each pi, si* is pi’s best response to the strategies specified for other players. ui(s1*, … , si*, … ,sn*) ≧ ui(s1*, ... ,si , ... , sn*) 22
© Copyright 2024 Paperzz