Srovnání implementací systému thread pool zpracováním požadavků na webserver
Evaluation of thread pool implementations by resolution of webserver requests
Typ dokumentu
diplomová prácemaster thesis
Autor
Martin Mucha
Vedoucí práce
Langr Daniel
Oponent práce
Šimeček Ivan
Studijní obor
Webové inženýrstvíStudijní program
InformatikaInstituce přidělující hodnost
katedra softwarového inženýrstvíPráva
A university thesis is a work protected by the Copyright Act. Extracts, copies and transcripts of the thesis are allowed for personal use only and at one?s own expense. The use of thesis should be in compliance with the Copyright Act http://www.mkcr.cz/assets/autorske-pravo/01-3982006.pdf and the citation ethics http://knihovny.cvut.cz/vychova/vskp.htmlVysokoškolská závěrečná práce je dílo chráněné autorským zákonem. Je možné pořizovat z něj na své náklady a pro svoji osobní potřebu výpisy, opisy a rozmnoženiny. Jeho využití musí být v souladu s autorským zákonem http://www.mkcr.cz/assets/autorske-pravo/01-3982006.pdf a citační etikou http://knihovny.cvut.cz/vychova/vskp.html
Metadata
Zobrazit celý záznamAbstrakt
Použitie thread pool, ako prostriedok na škálovanie webových serverov je zaužívaný v mnohých serverových implementáciach. Jednotlivé implementácie thread pool sa môžu výrazne líšiť v plánovacích algoritmoch a reprezentacií úloh. V tejto práci, sme navrli a implementovali náš vlastný thread pool s využívam C++20 corou-tines a work-stealing plánovacím algoritmom. Pre efektivné plánovanie úloh sme použili lock-free dátové štruktúry. Naša implementácia dosiahla výrazne nižšie oneskorenie pri planovaní v porov-naní s OpenMP implementáciami. Taktiež dosiahla porovnateľné výsledky v testoch s oneTBB knižnicou a v jednom z nich ju prekonala. Nakoniec, sme otestovali rôzne verzie nášho thread pool v serverovom prostredí aby sme zmerali výkon naprieč rôznymi typmi požiadavkov na webový server. Utilizing a pool of worker threads to scale web servers is a widely adopted approach employed by many server implementations. Individual thread pool implementations can significantly vary in scheduling algorithms and task encapsulation. In this thesis, we design and implement our own thread pool utilizing C++20 coroutines and work-stealing scheduling. To ensure an efficient scheduling, we utilize lock-free structures. Our implementation not only achieves significantly lower scheduling overhead compared to OpenMP implementations but also performs comparably to, and in one test outperforms, the oneTBB thread pool implementation. Finally, we conduct testing of various versions of our thread pool in a server environment to assess performance across different server requests types.
Kolekce
- Diplomové práce - 18102 [1005]