Warning
This page is located in archive. Go to the latest version of this course pages. Go the latest version of this page.

B4B36PDV – Paralelní a distribuované výpočty

Obecné informace

Důležité odkazy

Zdroje

  • An Introduction to Parallel Programming (by Peter Pacheco), 2011
  • Programming on Parallel Machines (by Norm Matloff), 2012, k dispozici on-line
  • Distributed Systems (by Maarten van Steen, Andrew S. Tanenbaum), 3.01 Edition, 2017, k dispozici on-line
  • Distributed Systems: Concepts and Design (by George Coulouris Jean Dollimore Tim Kindberg Gordon Blair), 5th Edition), 2011

Hodnocení předmětu

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:

  • Paralelní výpočty (max 22 bodů):
    • 5 malých programovacích úloh (max 10 bodů)
    • Semestrální práce (max 12 bodů)
  • Distribuované výpočty (max 18 bodů):
    • 2 malé úlohy (max 4 body)
    • Semestrální práce (max 14 bodů)
  • Ze semestru je potřeba získat alespoň 50% bodů, tj. 20 bodů ze 40.
  • Programovací zkouška (max 20 bodů, pro složení předmětu nutno získat alespoň 10b)
  • Teoretická zkouška (max 40 bodů, pro složení předmětu nutno získat alespoň 20b)

Zkoušky

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:

  • 29.5. - 9:00 - 12:00 (4 miestnosti)
  • 2.6. - 9:00 - 12:00 (4 miestnosti)
  • 5.6 - 9:00 - 12:00, 13:00 - 16:00 (4 miestnosti)
  •  12.6. - 9:00 - 12:00, 13:00 - 16:00 (2 miestnosti) (3 místnosti)
  • 17.6. - 9:00 - 12:00, 13:00 - 16:00 (2 miestnosti) (3 místnosti)
  • 19.6. - 9:00 - 12:00 (3 místnosti)
  • 23.6. - 9:00 - 12:00, 13:00 - 16:00 (3 místnosti)
  • 30.7. - 9:00 - 12:00 (1 místnost)
  • 27.8. - 9:00 - 12:00, 13:00 - 16:00 (1 místnost, 8 lidí na termín)
  • 11.9. - 9:00 - 12:00, 13:00 - 16:00 (1 místnost, 8 lidí na termín)


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.

COVID-19 specifika

  •  1 den před zkouškou dostane každý přihlášený student dostane informaci ve které místnosti konkrétně bude zkouška probíhat.
  • Pokyny pro vypracování zkoušky dostanete vytištěné přímo v místnosti (nebude společný úvod). Přijďte proto prosím přímo do dané místnosti.
  • Z důvodu nutné dezinfekce / návazných termínů bude nutné dodržet maximální trvání zkoušky na 3 hodiny a tedy čas ukončení zkoušky je pevný a konečný.



Pravidla zkoušky :

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/.

Příklad zkoušky z minulého roku

* 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.

Teoretický termín

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.

courses/b4b36pdv/start.txt · Last modified: 2020/08/17 13:24 by bosanbra