Køprioritering med simuleret intuition: SRPT, SJF og to-klasse-regler

En interaktiv guide til størrelsesbaseret scheduling. Hver model har en simulator der kører en diskret-event-simulering direkte i din browser, så du selv kan se empiriske data konvergere mod de teoretiske resultater fra de tre kildeartikler.

Sådan bruger du guiden. Alt det blå er knapper og skydere. Tryk Kør simulering i hvert panel. Simulatoren genererer ankomster, servicetider og (hvor relevant) tålmodighedstider, kører den valgte scheduling-disciplin, og sammenligner det empiriske resultat med den teoretiske formel. Ingen server, ingen Python: ren JavaScript i sandkassen.

Den røde tråd

De tre artikler bygger oven på hinanden. Det er en rejse fra den rene, perfekt analyserbare verden mod den rodede, realistiske:

  1. Schrage & Miller (1966) M/G/1 Én server, perfekt kendte servicetider, uendelig tålmodige jobs. Her er Shortest Remaining Processing Time (SRPT) beviseligt optimal for middel-flowtid, og der findes lukkede formler.
  2. Grosof, Scully & Harchol-Balter (2018) M/G/k Flere servere. SRPT er ikke længere garanteret optimal i værste fald, men forfatterne viser at den er asymptotisk optimal når lasten nærmer sig kapacitet (ρ → 1).
  3. Dong & Ibrahim M/GI/s+GI Mange servere, kunder der giver op (abandonment), og støjfulde estimater af servicetiden. Her skifter målet fra flowtid til throughput, og hovedpointen er, at en simpel to-klasse-prioritering kan matche fuld SJF.
M/G/1 · SRPT perfekt info lukket formel M/G/k · SRPT-k k servere ρ→1 optimal M/GI/s+GI · SJF giver op støj + throughput
De tre modeller, fra venstre mod højre: stigende realisme, faldende analytisk renhed. Simulatorerne nedenfor lader dig udforske hver af dem.

Den fælles grundmekanik

Alle tre modeller deler den samme byggeklods: Poisson-ankomster med rate λ, servicetider trukket fra en fordeling, og en scheduling-regel der afgør hvem der får serveren. Forskellen ligger i antal servere, om jobs kan give op, og om vi kender servicetiderne præcist. Vores simulatorer er alle diskret-event-motorer: de hopper fra hændelse til hændelse (ankomst, service-slut, abandonment) og opdaterer systemtilstanden.

Hvorfor stole på simulationen? En diskret-event-simulering laver ingen tilnærmelser i selve dynamikken: den udfører køreglen hændelse for hændelse, præcis som et virkeligt system ville. De eneste fejlkilder er endelig stikprøvelængde (statistisk støj, mindskes med flere jobs) og pseudo-tilfældige tal. Når den empiriske kurve lægger sig oven på den teoretiske formel, er det stærk evidens for at både beviset og din implementering er korrekte.

Model 1 · M/G/1 og SRPT Schrage & Miller 1966

Schrage & Miller beviste at SRPT minimerer middel-flowtid i M/G/1, og udledte en lukket formel for den. De sammenlignede også FCFS, ikke-præemptiv SPT, og to-klasse-regler. Den interessante intuition fra deres Tabel I: de grove to-klasse-regler henter langt det meste af gevinsten ved blot at skelne "kort" fra "lang". Det er præcis den pointe Dong & Ibrahim genfinder 60 år senere i den langt mere komplekse mange-server-verden.

Simulatoren herunder kører M/G/1 og lader dig vælge disciplin. Den teoretiske SRPT-flowtid beregnes ved numerisk integration af Schrage & Millers formel og tegnes som en stiplet linje. For eksponentielle servicetider med middel 1 reduceres FCFS-flowtiden til 1/(1−ρ), hvilket vi også viser.

M/G/1 simulator

Sammenlign flowtid under FCFS, SPT (ikke-præemptiv, korteste job først) og SRPT. Eksponentielle servicetider, middel = 1.

Klar.
SRPT (sim) SPT (sim) FCFS (sim) SRPT teori (Schrage-Miller)

Model 2 · M/G/k og SRPT-k Grosof et al. 2018

Med flere servere er SRPT ikke længere optimal i værste fald: Leonardi & Raz konstruerede modeksempler hvor SRPT-k kan være vilkårligt dårligere end optimum. Grosof et al. redder situationen i den stokastiske, høj-last-grænse: de viser at middel-svartiden under SRPT på k servere (hver med fart 1/k) nærmer sig middel-svartiden under SRPT på én hurtig server, når ρ → 1. Da single-server SRPT er optimal, er SRPT-k dermed asymptotisk optimal blandt alle k-server-regler.

Den centrale størrelse: forholdet E[TSRPT-k] / E[TSRPT-1] → 1 når ρ → 1. Simulatoren kører begge systemer på den samme ankomststrøm og plotter dette forhold mod lasten, så du ser konvergensen mod 1 (præcis som forfatternes Figur 3.1).

M/G/k vs. M/G/1 simulator

Begge systemer ser samme jobs. Vi måler forholdet mellem k-server-svartid og single-server-svartid. Teori: forholdet → 1 når ρ → 1.

Klar.
E[TSRPT-k] / E[TSRPT-1] (sim) Optimalt forhold = 1

Model 3 · M/GI/s+GI med abandonment og støjfuld SJF Dong & Ibrahim

Nu bliver det realistisk. Mange servere, kunder med endelig tålmodighed der giver op hvis de venter for længe, og kun et støjfuldt estimat af hver kundes servicetid. Når systemet er overbelastet (ρ > 1) er throughput den interessante størrelse: nogle kunder vil uundgåeligt give op, og en god scheduling-regel maksimerer hvor mange der faktisk bliver betjent.

Dong & Ibrahims hovedresultater, som simulatoren genskaber:

Vi bruger lognormale servicetider med middel 1, ligesom i artiklen. Parameteren α (0 til 1) styrer hvor god prediktionen er: α ≈ 0 er næsten ren støj, α ≈ 1 er næsten perfekt. Simulatoren rapporterer throughput (andel betjent) under FCFS, støjfuld SJF og den to-klasse-regel.

M/GI/s+GI simulator

Overbelastet mange-server-kø med abandonment. Sammenlign throughput under FCFS, støjfuld SJF og to-klasse-prioritering. Lognormale servicetider, eksponentiel tålmodighed.

Klar.
Støjfuld SJF (sim) To-klasse (sim) FCFS (sim) SJF uden støj (sim)

Hvad simulatorerne lærer dig

Nøglebegreber

Scheduling-discipliner

Systemstørrelser

Analyseteknikker

Hvorfor multiserver er svært

Mange-server-køer er ikke order-conserving og under SRPT-k ikke work-conserving, så de klassiske single-server-argumenter (som tagged-job-metoden) overføres ikke direkte. Det er grunden til at multiserver-SRPT var et åbent problem i årtier. Se Grosof et al. (2018), afsnit 1, og Dong & Ibrahim, afsnit 1.2.

Videre læring

Bøger

Artikler at læse i rækkefølge

  1. Start med Schrage & Miller (1966): den er gammel, klar og fuld af intuition. Tabel I/II giver præcis den "to klasser er nok"-fornemmelse.
  2. Læs derefter Grosof et al. (2018) (den korte konference-version her, eller den fulde IFIP-version) for virtual-work-tricket.
  3. Slut med Dong & Ibrahim for den moderne mange-server-historie med støj og abandonment.
  4. Som baggrund: Scully, Harchol-Balter & Scheller-Wolf (2018) "SOAP: One Clean Analysis of All Age-Based Scheduling Policies" giver en samlet ramme for hele familien af alders-baserede regler.

Øvelser med simulatorerne ovenfor

Online

Kilder

  1. Schrage, L. E. & Miller, L. W. (1966). The Queue M/G/1 with the Shortest Remaining Processing Time Discipline. Operations Research 14(4), 670–684. jstor.org/stable/168730
  2. Schrage, L. (1968). Letter to the Editor — A Proof of the Optimality of the Shortest Remaining Processing Time Discipline. Operations Research 16(3), 687–690.
  3. Grosof, I., Scully, Z. & Harchol-Balter, M. (2018). SRPT for Multiserver Systems. Performance Evaluation Review 46(2), 9–11 (full version: IFIP Performance 2018). Performance Evaluation 127, 154–175.
  4. Dong, J. & Ibrahim, R. Shortest-Job-First Scheduling in Many-Server Queues with Impatient Customers and Noisy Service-Time Estimates. (Working paper; bygger på Dong & Ibrahim 2021, Management Science 67(12), 7708–7718.)
  5. Atar, R., Kaspi, H. & Shimkin, N. (2014). Fluid Limits for Many-Server Systems with Reneging under a Priority Policy. Mathematics of Operations Research 39(3), 672–696.
  6. Leonardi, S. & Raz, D. (2007). Approximating Total Flow Time on Parallel Machines. Journal of Computer and System Sciences 73(6), 875–891.
  7. Scully, Z., Harchol-Balter, M. & Scheller-Wolf, A. (2018). SOAP: One Clean Analysis of All Age-Based Scheduling Policies. Proc. ACM Meas. Anal. Comput. Syst. 2(1), 1–30.
  8. Down, D. G. (2019). Open Problem — Size-Based Scheduling with Estimation Errors. Stochastic Systems 9(3), 295–296.
  9. Scully, Z., Grosof, I. & Mitzenmacher, M. (2021). Uniform Bounds for Scheduling with Job Size Estimates. arXiv:2110.00633.
  10. Harchol-Balter, M. (2013). Performance Modeling and Design of Computer Systems: Queueing Theory in Action. Cambridge University Press.
  11. Shaked, M. & Shanthikumar, J. G. (2007). Stochastic Orders. Springer.
  12. Little, J. D. C. (1961). A Proof for the Queuing Formula L = λW. Operations Research 9, 383–387.