Na cvičeních opakujeme nejdůležitější věci z přednášek a především zkoušíme paralelní programování v praxi. K programování je možné využít buď počítače v učebnách, nebo svoje vlastní laptopy. V každém případě je potřeba se na to připravit již před prvním cvičením! Je potřeba mít připravený C++ toolchain, a nějaké vývojové prostředí.
Pro přihlášení na počítače v učebnách je nejprve (pokud jste tak již neučinili) nutné si vygenerovat heslo do učebny (viz https://www.felk.cvut.cz/). Následně se přihlásíte tímto heslem a ČVUT loginem bez domény.
C++ toochain je zde připraven. Jako vývojové prostředí je nainstalovaný CLion. Pro spuštění CLionu použijte:
/opt/clion-2021.2.1/bin/clion.sh
Pro programování na cvičeních je také možné využít vlastní počítače. Tam si ale musíte toolchain i vývojové prostředí sami nainstalovat a před cičením otestovat, že vám všechno funguje.
Snažíme se o maximální podporu, ale bohužel nemůžeme zajistit kompatibilitu se všemi toolchainy. Z těch významných nefunguje pro některá cvičení toolchain MSVC (Visual Studio), a to kvůli příliš staré verzi OpenMP. Pokud používáte Windows, nabízí se dvě alternativy k MSVC, které by měly fungovat se všemi příklady:
Pokud si zvolíte první variantu, je třeba vybrat verzi MinGW s podporou Pythonu, jinak vám v CLionu nebudou fungovat některé funkce (např. debugger). Ověřená verze MinGW, na které kód testujeme je MSYS2. Pokud se rozhodnete pro WSL, může vás zajímat Návod na použití WSL v CLionu.
Na Linuxu by jak GCC tak CLang měly fungovat. Co se týče vývojových prostředí, testujeme příklady v Clionu a ve Visual Studiu, ale v principu by měly fungovat v libovolném IDE.
Hlavně si vše otestujte ještě před cvičením, z časových důvodů není možné na cvičeních řešit, proč se vám kód ke cvičením nezkompiluje, proč vám nejde spustit Clion, apod.
Jako studenti máte nárok zdarma používat produkty JetBrains. s těmito prostředími (CLion, Idea) můžete pracovat také na PDV, jsou nainstalované v učebnách, a budete na nich skládat praktickou zkoušku. Licenci je ale třeba aktivovat: https://download.cvut.cz/jetbrains/
Formulář na zpětnou vazbu z jednotlivých cvičení: google form
Datum | Téma cvičení | Prezentace | Materiály ke cvičení | Zadání úloh | |
---|---|---|---|---|---|
1 | 16.-17.02.2022 | Organizace předmětu a seznámení se s paralelizací | tutorial_01.pdf | decrypt_data.zip tutorial_01.zip tutorial_01.zip (řešené) | |
2 | 23.-24.02.2022 | Vlákna a přístup ke sdílené paměti | tutorial_02.pdf | tutorial_02.zip tutorial_02.zip (řešené) | 1. domácí úloha |
3 | 02.-03.03.2022 | OpenMP | tutorial_03.pdf | tutorial_03.zip tutorial_03.zip (řešené) | 2. domácí úloha |
4 | 9.-10.03.2022 | Konkurentní datové struktury | tutorial_04.pdf | tutorial_04.zip tutorial_04.zip (řešené) | 3. domácí úloha |
5 | 16.-17.03.2022 | Dekompoziční techniky | tutorial_05.pdf | tutorial_05.zip tutorial_05.zip (řešené) video | 4. domácí úloha |
6 | 23.-24.03.2022 | Řadící algoritmy | tutorial_06.pdf | tutorial_06.zip tutorial_06.zip (řešené) | 5. domácí úloha |
7 | 30.-31.03.2022 | Vektorizace | tutorial_07.pdf | tutorial_07.zip tutorial_07.zip (řešené) | 1. semestrální práce |
8 | 06.-07.04.2022 | Paralelní maticové operace | tutorial_08.pdf | tutorial_08.zip tutorial_08.zip (řešené) video | |
9 | 13.-14.04.2022 | Úvod do distribuovaných výpočtů | tutorial_09.pdf | tutorial_09.zip tutorial_09.zip (řešené) | |
10 | 20.-21.04.2022 | Detekce selhání v DS. Skalární logické hodiny. | tutorial_10.pdf | tutorial_10.zip tutorial_10.zip (řešené) | 6. domácí úloha |
11 | 27.-28.04.2022 | Vektorové logické hodiny. Vzájemné vyloučení v DS. | tutorial_11.pdf | tutorial_11.zip tutorial_11.zip (řešené) | 7. domácí úloha |
12 | 04.-05.05.2022 | Konsenzus v DS. Algoritmus RAFT. | tutorial_12.pdf | 2. semestrální práce | |
13 | 11.-12.05.2022 | Globální stav distribuovaného systému (čtvrteční kruhy). Rektorský den (středeční kruhy). | tutorial_13.pdf | tutorial_13.zip | |
14 | 18.-19.05.2022 | Globální stav distribuovaného systému (středeční kruhy). Volno (čtvrteční kruhy). |