Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Previous revision
Next revision Both sides next revision
courses:b4b36pdv:tutorials:start [2019/02/19 14:50]
courses:b4b36pdv:tutorials:start [2024/03/20 14:23]
macejp1
Line 1: Line 1:
 +====== 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, doporučujeme použít WSL (Windows Subsystem for Linux), pak vás může zajímat [[https://​www.jetbrains.com/​help/​clion/​how-to-use-wsl-development-environment-in-clion.html | 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, ale v principu by měly fungovat v libovolném IDE.
 +
 +
 +Pokud používáte MacOS (Apple silicon), pak můžete OpenMP nainstalovat takto:
 +  - Instalace package manageru ''​brew''​ pro MacOS: ''​$ /bin/bash -c "​$(curl -fsSL https://​raw.githubusercontent.com/​Homebrew/​install/​HEAD/​install.sh)"''​
 +  - Instalace ''​llvm'':​ ''​$ brew install llvm''​
 +  - 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''​.
 +  - 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í: [[https://​forms.gle/​q6dTqGkjFfMdKMTr5|google form]]
 +
 +^ ^ Datum ^ Téma cvičení ^ Prezentace ^ Materiály ke cvičení ^ Zadání úloh ^
 +| **1**     | 21.-22.02.2024 | Organizace předmětu a seznámení se s paralelizací ​          | [[https://​github.com/​aicenter/​PDV-tutorials/​releases/​download/​v0.0.1/​01.pdf|01.pdf]] | [[https://​pdv.pages.fel.cvut.cz/​pdv-private/​labs/​01-intro.zip|01-intro.zip]] \\ [[https://​pdv.pages.fel.cvut.cz/​pdv-private/​labs/​01-intro-solution.zip|01-intro-solution.zip]] \\ {{courses:​b4b36pdv:​tutorials:​decrypt_data.zip}} | |
 +| **2**     | 28.-29.02.2024 | Vlákna a přístup ke sdílené paměti ​                         | [[https://​github.com/​aicenter/​PDV-tutorials/​releases/​download/​v0.0.1/​02.pdf|02.pdf]] | {{courses:​b4b36pdv:​tutorials:​tutorial_02.zip}} \\ {{courses:​b4b36pdv:​tutorials:​tutorial_02solved.zip|tutorial_02.zip (řešené)}} \\ [[https://​pdv.pages.fel.cvut.cz/​pdv-private/​labs/​02-cpp-threads.zip|02-cpp-threads.zip]] \\ [[https://​pdv.pages.fel.cvut.cz/​pdv-private/​labs/​02-cpp-threads-solution.zip|02-cpp-threads-solution.zip]] | [[courses:​b4b36pdv:​tutorials:​hw_01|1. domácí úloha]] ​    |
 +| **3**     | 06.-07.03.2024 | OpenMP ​                                                     | [[https://​github.com/​aicenter/​PDV-tutorials/​releases/​download/​v0.0.1/​03.pdf|03.pdf]] | {{courses:​b4b36pdv:​tutorials:​tutorial_03.zip}} \\ {{courses:​b4b36pdv:​tutorials:​tutorial_03solved.zip|tutorial_03.zip (řešené)}} \\ [[https://​pdv.pages.fel.cvut.cz/​pdv-private/​labs/​03-openmp.zip|03-openmp.zip]] ​          \\ [[https://​pdv.pages.fel.cvut.cz/​pdv-private/​labs/​03-openmp-solution.zip|03-openmp-solution.zip]] ​          | [[courses:​b4b36pdv:​tutorials:​hw_02|2. domácí úloha]] \\ [[https://​forms.gle/​faCt4aigFxp1RGDr9|quiz]] |
 +| **4**     | 13.-14.03.2024 | Konkurentní datové struktury ​                               | [[https://​github.com/​aicenter/​PDV-tutorials/​releases/​download/​v0.0.1/​04.pdf|04.pdf]] | {{courses:​b4b36pdv:​tutorials:​tutorial_04.zip}} ​ \\ {{courses:​b4b36pdv:​tutorials:​tutorial_04solved.zip|tutorial_04.zip (řešené)}} ​ | [[courses:​b4b36pdv:​tutorials:​hw_03|3. domácí úloha]] ​ \\ [[https://​forms.gle/​iWVGs7AkhXx1e8ceA|quiz]] ​  |
 +| **5**     | 20.-21.03.2024 | Dekompoziční techniky ​                                      | [[https://​github.com/​aicenter/​PDV-tutorials/​releases/​download/​v0.0.1/​05.pdf|05.pdf]] |  {{courses:​b4b36pdv:​tutorials:​tutorial_05.zip}} ​ /* {{courses:​b4b36pdv:​tutorials:​tutorial_05solved.zip|tutorial_05.zip (řešené)}} /* | [[courses:​b4b36pdv:​tutorials:​hw_04|4. domácí úloha]] ​ \\  [[https://​forms.gle/​z88aBU28zekVNXfv6|quiz]] ​    |
 +| **6**     | 27.-28.03.2024 | Řadící algoritmy ​                                           | [[https://​github.com/​aicenter/​PDV-tutorials/​releases/​download/​v0.0.1/​06.pdf|06.pdf]] | /* {{courses:​b4b36pdv:​tutorials:​tutorial_06.zip}} /* /* {{courses:​b4b36pdv:​tutorials:​tutorial_06solved.zip|tutorial_06.zip (řešené)}} /* | [[courses:​b4b36pdv:​tutorials:​hw_05|5. domácí úloha]] ​    |
 +| **7**     | 03.-04.04.2024 | Vektorizace ​                                                | [[https://​github.com/​aicenter/​PDV-tutorials/​releases/​download/​v0.0.1/​07.pdf|07.pdf]] | /* {{courses:​b4b36pdv:​tutorials:​tutorial_07.zip}} /* /* {{courses:​b4b36pdv:​tutorials:​tutorial_07solved.zip|tutorial_07.zip (řešené)}} /* |                                                          |
 +| **8**     | 10.-11.04.2024 | Prohledávání stavového prostoru. Paralelní maticové operace | [[https://​github.com/​aicenter/​PDV-tutorials/​releases/​download/​v0.0.1/​08.pdf|08.pdf]] | /* {{courses:​b4b36pdv:​tutorials:​tutorial_08.zip}} /* /* {{courses:​b4b36pdv:​tutorials:​tutorial_08solved.zip|tutorial_08.zip (řešené)}} /* | [[courses:​b4b36pdv:​tutorials:​sem1|1. semestrální práce]] |
 +| **9**     | 17.-18.04.2024 | Úvod do distribuovaných výpočtů ​                            | [[https://​github.com/​aicenter/​PDV-tutorials/​releases/​download/​v0.0.1/​09.pdf|09.pdf]] | /* {{courses:​b4b36pdv:​tutorials:​tutorial_09.zip}} /* /* {{courses:​b4b36pdv:​tutorials:​tutorial_09solved.zip|tutorial_09.zip (řešené)}} /* |                                                          |
 +| **10** ​   | 24.-25.04.2024 | Detekce selhání v DS. Skalární logické hodiny ​              | [[https://​github.com/​aicenter/​PDV-tutorials/​releases/​download/​v0.0.1/​10.pdf|10.pdf]] | /* {{courses:​b4b36pdv:​tutorials:​tutorial_10.zip}} /* /* {{courses:​b4b36pdv:​tutorials:​tutorial_10solved.zip|tutorial_10.zip (řešené)}} /* | [[courses:​b4b36pdv:​tutorials:​hw_06|6. domácí úloha]] ​    |
 +| **11-12** | 02.-09.05.2024 | Vektorové logické hodiny. Vzájemné vyloučení v DS           | [[https://​github.com/​aicenter/​PDV-tutorials/​releases/​download/​v0.0.1/​11.pdf|11.pdf]] | /* {{courses:​b4b36pdv:​tutorials:​tutorial_11.zip}} /* /* {{courses:​b4b36pdv:​tutorials:​tutorial_11solved.zip|tutorial_11.zip (řešené)}} /* | [[courses:​b4b36pdv:​tutorials:​hw_07|7. domácí úloha]] ​    |
 +| **13** ​   | 15.-16.05.2024 | Konsenzus v DS. Algoritmus RAFT                             | [[https://​github.com/​aicenter/​PDV-tutorials/​releases/​download/​v0.0.1/​12.pdf|12.pdf]] | | [[courses:​b4b36pdv:​tutorials:​sem2|2. semestrální práce]] |
 +| **14** ​   | 22.-23.05.2024 | Globální stav distribuovaného systému ​                      | [[https://​github.com/​aicenter/​PDV-tutorials/​releases/​download/​v0.0.1/​13.pdf|13.pdf]] | /* {{courses:​b4b36pdv:​tutorials:​tutorial_13.zip}} /* /* {{courses:​b4b36pdv:​tutorials:​tutorial_13solved.zip|tutorial_13.zip (řešené)}} /* |                                                          |
courses/b4b36pdv/tutorials/start.txt · Last modified: 2024/05/02 07:48 by macejp1