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

Cvičení

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

Počítače v učebnách

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

Vlastní počítače

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:

  • MinGW
  • WSL (Windows Subsystem for Linux) + Linux toolchain

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.

Pokud používáte MacOS (Apple silicon), pak můžete OpenMP nainstalovat takto:

  1. Instalace package manageru brew pro MacOS: $ /bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)”
  2. Instalace llvm: $ brew install llvm
  3. Nalezení cesty ke kompilátoru clang (clang je kompilátor využívaný llvm a defaultně obsahuje OpenMP https://llvm.org/): Potřebujeme najít clang, který si nainstaloval brew. Cesta by tedy měla vypadat nějak takto /opt/homebrew/Cellar/llvm/15.0.7_1/bin/clang.
  4. Cesty k clang zadáme do CLionu.

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.

Licence JetBrains

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/

Rozvrh Cvičení

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 22.-23.02.2023 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 01.-02.03.2023 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 08.-09.03.2023 OpenMP tutorial_03.pdf tutorial_03.zip tutorial_03.zip (řešené) 2. domácí úloha
4 15.-16.03.2023 Konkurentní datové struktury tutorial_04.pdf tutorial_04.zip tutorial_04.zip (řešené) 3. domácí úloha
5 22.-23.03.2023 Dekompoziční techniky tutorial_05.pdf tutorial_05.zip tutorial_05.zip (řešené) 4. domácí úloha
6 29.-30.03.2023 Řadící algoritmy tutorial_06.pdf tutorial_06.zip tutorial_06.zip (řešené) 5. domácí úloha
7 05.-06.04.2023 Vektorizace tutorial_07.pdf tutorial_07.zip tutorial_07.zip (řešené) 1. semestrální práce
8 12.-13.04.2023 Paralelní maticové operace tutorial_08.pdf tutorial_08.zip tutorial_08.zip (řešené)
9 19.-20.04.2023 Úvod do distribuovaných výpočtů tutorial_09.pdf tutorial_09.zip tutorial_09.zip (řešené)
10 26.-27.04.2023 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-12 03.05. a 11.5. 2023 Vektorové logické hodiny. Vzájemné vyloučení v DS tutorial_11.pdf tutorial_11.zip tutorial_11.zip (řešené) 7. domácí úloha
13 17.-18.05.2023 Konsenzus v DS. Algoritmus RAFT. tutorial_12.pdf 2. semestrální práce
14 24.-25.05.2023 Globální stav distribuovaného systému. tutorial_13.pdf tutorial_13.zip tutorial_13.zip (řešené)
courses/b4b36pdv/tutorials/start.txt · Last modified: 2023/05/26 00:48 by macejp1