doc. Ing. Daniel Langr, Ph.D.

Závěrečné práce

Bakalářské práce

Grafické uživatelské rozhraní pro vizualizaci rozsáhlých řídkých matic

Autor
Ivo Kolář
Rok
2014
Typ
Bakalářská práce
Vedoucí
doc. Ing. Daniel Langr, Ph.D.
Oponenti
doc. Ing. Ivan Šimeček, Ph.D.

Diplomové práce

Přehled úložných formátů pro řídké matice pro paralelní systémy

Autor
Radek Bittara
Rok
2015
Typ
Diplomová práce
Vedoucí
Ing. Daniel Langr, Ph.D.
Oponenti
doc. Ing. Ivan Šimeček, Ph.D.
Anotace
Cilem teto prace je poskytnout uceleny prehled dosud publikovanych formatu pro ulozeni ridke matice v pameti pocitace. Prace obsahuje popis jejich principu a pripadne vyuziti pri nasobeni ridke matice s vektorem na modernich paralelnich systemech.

Výkonnostní analýza programu LSU3shell

Autor
Martin Kočička
Rok
2019
Typ
Diplomová práce
Vedoucí
Ing. Daniel Langr, Ph.D.
Oponenti
Ing. Jiří Kašpar
Anotace
Ab initio přístup ke zkoumání struktury atomových jader je na popředí součas- ného vývoje nukleární fyziky. LSU3shell je implementací ab initio metody zvané symmetry-adapted no-core shell model (SA-NCSM) pro vysoce paralelní výpočetní systémy. Cílem této práce bylo zanalyzovat výkonnové charakteristiky programu LSU3shell se zaměřením převážně na dynamickou alokaci paměti, provést rešerši metod a řešení která by mohla vést ke zlepšení výkonu a využití paměti, a provést následnou implementaci. Tento přístup se ukázal být správný, a bylo možné provést mnoho optimalizací vztahujících se k dynamické alokaci paměti. Výsledkem této práce je průměrné zrychlení LSU3shell o 41 %, což nám ušetří až 1,4 milionu core-hodin z naší alokace na superpočítači BlueWaters.

Paralelní řazení v C++11

Autor
Klára Horáčková
Rok
2019
Typ
Diplomová práce
Vedoucí
Ing. Daniel Langr, Ph.D.
Oponenti
doc. Ing. Ivan Šimeček, Ph.D.
Anotace
V této práci je představen C++11Sort, nová paralelni verze in-place algoritmu quicksort. C++11Sort je implementován pouze na základě C++11 vláken a přislušných synchronizačnich technik, tedy bez použiti nadstandardnich roz- šiřeni jazyka C++ a externich knihoven. V rešeršni části jsou popsány exis- tujici implementace paralelni verze algoritmu quicksort. Tyto existujici im- plementace jsou následně experimentálně porovnány s vytvořeným algorit- mem C++11Sort. C++11Sort dosahuje v experimentech výborných výsledků, napřiklad při řazeni dvou miliard celých čisel je o 28 % rychlejši než nejrych- lejši existujici implementace.

Efficient concurrent memoization system

Autor
Viacheslav Kroilov
Rok
2020
Typ
Diplomová práce
Vedoucí
Ing. Daniel Langr, Ph.D.
Oponenti
Ing. Jiří Kašpar
Anotace
Automaticky memoizační systém - také softwarová cache - ukládá omezený počet prvků v paměti, které byly nedávno zpřístupněny a zrychluje tak následný přístup k nim. Least-Recently-Used (LRU) je populární strategie nahrazování prvků pro hardwarovou a softwarovou cache. Nicméně, její paralelní implementace má nízkou škálovatelnost v důsledku přeskupování seznamu, které je prováděno jak při vyhledávání tak při vkládání. V této práci je představena nová paralelní softwarová cache DeferredLRU, která vychází z LRU strategie. Hlavním cílem návrhu byla škálovatelnost a efektivní využití na mnoha-jádrových sýstémech. Toho bylo dosaženo použitím jiného řešení ke sledování pořadí přístupu k prvkům. Toto řešení podstatně snižuje počet opětovných vložení prvků do seznamu, což je hlavním faktorem zpomalení u běžné LRU cache. Výkonnost a hit-rate DeferredLRU jsou citlivé na nastavení konfiguračních parametrů. Díky vyladělnému nastavení parametrů pro specifické vstupy byl dosažen vyšší hit-rate než u běžné LRU cache ve všech testovaných případech. Relativní rozdíl byl až 7,8%. Výkon DererredLRU byl porovnán s existujícími alternativami, včetně souvisejícíh implementací cache z projektů Intel TBB a Facebook HHVM. Testované implementace cache byly hodnoceny až do 32 vláken (na 16 HW CPU jádrech). Při 32 vláknech, DeferredLRU bylo rychlejší ve všech 16 testech. Pokud byly přístupy distribuovány mezi více malých cache z důvodu lepšího paralelizmu (tzv. binning), DeferredLRU bylo rychlejší v 11 z 16 případů a ve zbylých 5 byl výkon blízko nejlepšímu pozorovanému výsledku. DeferredLRU s binning přístupem bylo až 28,8 krát rychlejší na 32 vláknech ve srovnání s jedno-vláknovým výkonem.

Profilování haldy s nízkou latencí

Autor
Jan Tománek
Rok
2021
Typ
Diplomová práce
Vedoucí
doc. Ing. Daniel Langr, Ph.D.
Oponenti
doc. Ing. Ivan Šimeček, Ph.D.
Anotace
Četné dynamické alokace z haldy mohou mít zásadní dopad na celkovou dobu běhu programu. Problém se stává ještě více kritickým ve vícevláknových aplikacích, kde přílišná interakce s haldou může přerůst v hlavní zdroj neefektivity programu a negativně se podepsat na jeho škálovatelnosti. Existující profilery haldy přidávají k běhu programu tak velkou režii, že se profilování paměťově náročných vícevláknových aplikací stává téměř nemožné. Tato práce popisuje obvyklé rozložení paměti Linuxového procesu, nastiňuje interní části paměťového manažeru GNU C, analyzuje existující nástroje pro profilování haldy a provádí čtenáře procesem konstrukce vlastního profileru haldy. Práce dále navrhuje koncept profilování haldy s nízkou latencí, na jehož základě byl vytvořen nový profiler s názvem Heaprof. Ten byl následně porovnán s existujícími profilery. Experimentální vyhodnocení odhalilo, že Heaprof jako jediný ze zkoumaných nástrojů dokázal provádět profilování bez dalšího dopadu na škálovatelnost programu. V osmivláknových benchmarcích došlo až k osminásobnému urychlení celého profilování.

Srovnání implementací systému thread pool zpracováním požadavků na webserver

Autor
Martin Mucha
Rok
2024
Typ
Diplomová práce
Vedoucí
doc. Ing. Daniel Langr, Ph.D.
Oponenti
doc. Ing. Ivan Šimeček, Ph.D.
Anotace
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.

Hledání vlastních čísel a vlastních vektorů pro rozsáhlé řídké symetrické matice

Autor
Matěj Razák
Rok
2024
Typ
Diplomová práce
Vedoucí
doc. Ing. Daniel Langr, Ph.D.
Oponenti
doc. Ing. Ivan Šimeček, Ph.D.
Anotace
Tato práce se věnuje vybraným metodám pro hledání vlastních čísel a vlastních vektorů symetrických řídkým matic nad hybridním paralelním programovacím modelem MPI+OpenMP v jazyce C++. Práce má za cíl vylepšit existující implementaci jedno-vektorového i blokového Lanczosova algoritmu. Vyvinuté alternativní implementace jsou jedno-vektorové i blokové verze Lanczosova algoritmu a LOBPCG metody. Následuje testování a vzájemné porovnání jednotlivých implementací. Měřítkem porovnání je časová efektivita a počet iterací algoritmu. Porovnání s existující implementací prokázala lepší efektivitu mého řešení.