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 [2018/05/25 12:20]
courses:b4b36pdv:tutorials:start [2024/04/19 10:28]
mrkosja1 [Rozvrh cvičení]
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.
 +
 +**Oficiálně podporované compilery jsou GCC 11 a Clang 12 a novější** (je nutná podpora C++20, OpenMP 4 a ''​std::​experimental::​simd''​). MSVC a MinGW **nejsou** podporované,​ na Windows doporučujeme použít WSL2 (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]]). Jako vývojové prostředí doporučujeme CLion, na kterém vše testujeme, ale v principu by měl fungovat jakýkoliv editor, pokud podporuje CMake projekty.
 +
 +==== Linux / WSL ====
 +
 +Pokud používáte Linux, at už nativně nebo ve WSL, ověřte si prosím před cvičením, že máte aktuální verzi distribuce i všech balíčků. Specificky na Ubuntu je potřeba alespoň Ubuntu 22.04 – pokud máte Ubuntu 20.04 (viz ''​lsb_release -a''​),​ je nutné před cvičením updatovat (buď v GUI, nebo zavoláním příkazu ''​sudo do-release-upgrade''​ a následně dvojice příkazů ''​sudo apt update && sudo apt dist-upgrade''​). Na WSL také updatujte samotné WSL pomocí příkazu ''​wsl --update''​ (je třeba volat z Windows, nikoliv z WSL).
 +==== MacOS ====
 +
 +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]]
 +
 +[[ https://​intranet.fel.cvut.cz/​cz/​education/​rozvrhy-ng.B232/​public/​html/​predmety/​47/​02/​p4702806.html | Rozvrh předmětu.]]
 +
 +^ ^ 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é)}} \\ /* [[https://​pdv.pages.fel.cvut.cz/​pdv-private/​labs/​05-openmp2.zip|05-openmp2.zip]] /* /* \\ [[https://​pdv.pages.fel.cvut.cz/​pdv-private/​labs/​05-openmp2-solution.zip|05-openmp2-solution.zip]] /* | [[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_06_solution2024.zip|tutorial_06_solution2024.zip (řešené)}}/​* {{courses:​b4b36pdv:​tutorials:​tutorial_06solved.zip|tutorial_06.zip (řešené)}} /* | [[courses:​b4b36pdv:​tutorials:​hw_05|5. domácí úloha]] ​ \\  [[https://​forms.gle/​YFFKYMnQhLQeEorD7|quiz]] ​  |
 +| **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é)}} \\ [[https://​pdv.pages.fel.cvut.cz/​pdv-private/​labs/​07-simd.zip|07-simd.zip]] \\ [[https://​pdv.pages.fel.cvut.cz/​pdv-private/​labs/​07-simd-solution.zip|07-simd-solution.zip]] | [[https://​forms.gle/​YGT42SBWmYW4s87HA|quiz]] ​ |
 +| **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é)}} /* \\ [[https://​pdv.pages.fel.cvut.cz/​pdv-private/​labs/​08-sparse-matrix.zip|08-sparse-matrix.zip]] /* \\ [[https://​pdv.pages.fel.cvut.cz/​pdv-private/​labs/​08-sparse-matrix-solution.zip|08-sparse-matrix-solution.zip]] /* | [[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. 05. 2024 (Čt - čtvrteční rozvrh), 09.05.2024 ([[ https://​intranet.fel.cvut.cz/​cz/​education/​harmonogram.html |Čt - středeční rozvrh]]) | 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