Search
Celkově můžete získat maximálně 100 bodů z předmětu a získat známku A-F (<50b = F, 50-59 = E, …, 90-100 = A). Předmět se skládá ze dvou tématických bloků a body můžete získat za vypracování semestrálních úloh a za zkoušku:
Vzhledem k tomu, že dle informací studijního není možné zkoušku ze 2 častí spravovat pomocí KOSu, tak zápis na praktickou část zkoušky z PDV (paralelní implementace jednoduchých úloh) bude proveden externě pomocí Google Forms.
Link: https://forms.gle/Frzq8inXWiYmfQsWA
Pro vyplnění formuláře je nutno se přihlásit. Formulář můžete vyplnit jen jednou, svojí odpověď však můžete změnit a tedy se přehlásit na jiný termín. Přihlašování/odhlašování na daný termín končí 48 hodin před začátkem daného termínu, kdy z aktuálně přihlášených uděláme platný seznam na danou zkoušku, pozdější změna nebude akceptována (při vyplnění formuláře je uchováván čas).
Aktuální zaplněnost termínů lze vidět po odeslání formuláře kliknutím na „předchozí odpovědi“, nicméně formulář automaticky nezneplatňuje termíny po jejich naplnění, takže si toto musíte ohlídat sami. Dle dostupných místností je kapacita termínu aktuálně 25 studentů (místnosti 307, 310, 311, 328) a tedy prvních 25 studentů (dle času odeslání) bude přihlášeno.
Pokud si nejste jisti, jestli jste zapsáni (např. jste se přehlašovali a kapacita se zvýšila nad limit), napište e-mail na bosansky@fel.cvut.cz.
Termíny:
Update 5.6.2020 – vzhledem k uvolnění minimální vzdálenosti je kapacita termínů 12.6. a 17.6. 22 studentů. Update 8.6.2020 – byl vypsán nový termín 19.6. dopoledne Update 8.6.2020 – vzhledem k uvolnění další místnosti je kapacita termínů 12.6., 17.6. a 19.6. 33 studentů. Update 14.6.2020 – Vzhledem k menšímu počtu dní mezi zbývajícími termíny na praktickou zkoušku je pro všechny termíny v červnu deadline na přihlášení/odhlášení upraven na 24h před začátkem zkoušky Update 14.6.2020 – Vypsané nové termíny 23.6.2020
Praktická zkouška bude trvat (maximálně) 3 hodiny.
Vzhledem k tomu, že zadání zkoušky bude naprogramování 2 menších jednodušších úkolů, které vycházejí z úkolů probíraných na přednášce a cvičení, nemůžete během zkoušky používat žádné vlastní připravené kódy ani materiály. K dispozici bude standardní linux desktop s vývojovým prostředím CLion. K dispozici bude přístup na tyto webové stránky s referencemi na C++ (en.cppreference.com) a vektorové instrukce (software.intel.com/sites/landingpage/IntrinsicsGuide/) a taky dokumentaci k OpenMP (z openmp.org).
K dispozici budete mít lokálně binární kód se vzorovým řešením pro porovnání škálovatelnosti, odevzdávání a automatická evaluace bude prostřednictvím systému (ne BRUTE) se stejnou HW konfigurací.
Před vlastní zkouškou si prosím nastavte heslo pro přihlášení do počítačů v laboratořích https://www.felk.cvut.cz/.
* Upozornění * Váš kód musí být korektní z hlediska vícevláknového přístupu ke sdíleným proměnným. Pokud nezabezpečíte synchronizaci, budeme Vaše řešení ručně penalizovat. Úloha 1: Vaším úkolem je v daném poli std::vector<std::string> vector projít slova a zjistit, jaká je Levenshteinho vzdálenost každých dvou slov v tomto poli obsažených. Zároveň musíte najít i nejnižší index dvojice slov takový, že vzdálenost mezi těmito slovy je největší. Zparalelizujte metodu distances (pouze tuto metodu, zadnou jinou) v souboru levenshtein.cpp, která vrátí sumu vzdáleností slov ve vector každého s každým. Index s maximální vzdáleností uložte do proměnné maxIdx. Úloha 2: Vaším úkolem je paralelizovat aplikaci lokálního filtru ve čtvercové matici čísel na základě čtyř-okolí prvku. Filtr se aplikuje v iteracích, přičemž v každé iteraci se pro každý prvek table(i,j) aplikuje výpočet: table(i,j) = sqrt( (table(i,j)^2 + table(i-1,j)^2 + table(i+1,j)^2 + table(i,j-1)^2 + table(i,j+1)^2)/3 ) sekvenčně od prvku 0,0 po řádcích (pokud prvky v okolí přesahují index matice, použije se hodnota 0). Zparalelizujte metodu filtering v souboru filter.cpp, která tento výpočet provádí.
Balíček je možné stáhnout zde.
Na teoretický termín se můžete zapisovat klasicky pomocí KOSu, písemka bude trvat 90 minut, bude se skládat převážně z distribuované části, ale bude tam menší část i z paralelní části.