Nastavení počítače

Nastavení počítače (paralelní část) #

K práci na cvičeních i na domácích úkolech 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 následující nástroje:

  • Linux, MacOS nebo WSL2
  • C++ compiler s podporou C++20 a std::experimental::simd
    • chcete alespoň GCC 11, Clang 12, nebo novější verzi
    • MSVC a MinGW nejsou podporované
  • CMake (build system, podobně jako např. Maven pro Javu)
  • Vývojové prostředí – silně doporučujeme JetBrains CLion
    • pokud dokážete správně nastavit např. VS Code pro praci s CMake projekty a C++, tak je to také možné, ale studenti s VS Code často mívají problémy, které za vás CLion bez práce vyřeší)

Níže na stránce je návod, jak nástroje nastavit a otestovat. Důrazně prosíme, abyste si vše otestovali ještě před cvičením. Na cvičeních je spousta látky, a cvicíčí i vaši kolegové ocení, když společný čas strávíme paralelními výpočty a ne debugováním vašeho 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. Na počítačích je již připravený C++ compiler, CMake build system, JetBrains CLion a VS Code.

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 všechny nástroje sami nainstalovat a před cvičením otestovat, že vám všechno funguje. K tomu se vám bude hodit následující návod:

Příprava operačního systému #

Nejprve je potřeba ověřit, že máte dostatečně aktuální systém. Na Windows a MacOS to nebývá problém (zaprvé se aktualizují automaticky, a zadruhé i na starší verze systému je možné nainstalovat novější verze nástrojů), ale na Linuxu může být problém, pokud máte starší verzi distribuci, která již nemá aktuální verze balíčků. Specificky bývá problém s Ubuntu 20. Pokud používáte jinou distribuci, věříme, že víte, jak na ní instalovat aktualizace. :)

Ubuntu 20 #

Pokud používáte Ubuntu (at už nativně nebo ve WSL na Windows), otevřte terminál a spusťte příkaz lsb_release -a. Pokud je ve výstupu Ubuntu 20.04, tak musíte nejprve aktualizovat celý systém na novější verzi. Nesnažte se problém “vyřešit” tím, že si manuálně odněkud stáhnete .deb balíčky novější verze compileru a zkusíte je natvrdo nainstalovat, pravděpodobně si tím nenávratně zničíte systém (ChatGPT takové rady občas dává…).

Upgrade systému je možné provést příkazy

  1. sudo apt update && sudo apt full-upgrade (aktualizace aktuální verze systému)
  2. sudo do-release-upgrade (upgrade na další verzi systému)
    • tento příkaz bude trvat docela dlouho, několikrát je potřeba potvrdit, že má upgrade pokračovat
  3. sudo apt update && sudo apt full-upgrade (aktualizace nové verze systému)

Následně ověřte, že se upgrade povedl tím, že znovu pustíte lsb_release -a, který by vám měl vypsat novější verzi Ubuntu (pravděpodobně Ubuntu 22.04 nebo Ubuntu 24.10, důležité je, aby první číslo bylo alespoň 22).

MacOS #

V dalším kroku budete instalovat C++ compiler a další nástroje. K tomu je velmi vhodné použít správce balíčků Homebrew, který za vás udělá většinu práce. Nejdříve ho ale budete potřebovat nainstalovat, viz oficiální web, stačí spustit v shellu snippet z domovské stránky.

Instalace C++ compileru, OpenMP a CMake #

Nyní je třeba si obstarat C++ compiler, který podporuje C++20 a std::experimental::simd. V praxi to znamená, že chcete alespoň GCC 11 nebo Clang 12, preferovaně novější. Na Windows je nutno použít WSL, Visual Studio (MSVC) ani MinGW nepodporují vše, co na PDV budeme používat.

Zároveň také budete potřebovat knihovnu OpenMP a nástroj pro buildování projektů CMake.

Až budete mít vše nainstalované (viz níže), zkuste si ze stránek stáhnout a rozbalit archiv zdrojových kodu pro 1. cvičení, vstoupit v shellu do složky obsahující soubor CMakeLists.txt a spustit následující příkazy, kterými projekt zbuildujete:

# rekneme nastroji CMake, aby pripravil build slozku ./cmake-build
cmake . -B ./cmake-build -DCMAKE_BUILD_TYPE=Release
# a pak do ni projekt zbuildoval
cmake --build ./cmake-build

# nasledne muzeme spustit jednu z vytvorenych binarek
./cmake-build//01_0hello

Pokud oba příkazy úspěšně doběhly, tak máte s největší pravděpodobností správně nastavený C++ toolchain.

Ubuntu #

# instalace potrebnych balicku
sudo apt install g++ cmake libomp-dev gdb
# kontrola verze compileru
g++ --version
# na prvnim radku vystupu by melo byt alespon `g++ (...) 11.0.0` nebo vyssi
# pokud neni, mate prilis stary system, viz predchozi krok

MacOS #

Pokud mate na Macu nainstalovany XCode, tak mate pravdepodobne nainstalovanou Apple verzi compileru Clang (clang --version vrati neco jako Apple clang version ...) – problem je, ze tato verze Clangu nepodporuje vse, co budeme na PDV pouzivat, a celkove se chova zvlastne.

Chcete si proto preferovane pomoci Homebrew nainstalovat puvodni Clang pres prikaz brew install llvm. Po instalaci budete muset nalezt cestu k compileru – standardne Homebrew binarky instaluje do cesty /opt/homebrew/Cellar/llvm/<version>/bin/clang++. Zkuste v teto slozce spustit ./clang --version, verze by mela byt alespon 12. Cesta k binarce se bude hodit v nasledujicich krocich.

Stejne tak budete chtit nainstalovat CMake, knihovnu OpenMP a debugger GDB pomoci prikazu brew install cmake libomp gdb.

Instalace JetBrains CLion #

Dalším krokem je nainstalovat IDE/editor, který budete používat. Velmi doporučujeme JetBrains Clion, který je podobný IntelliJ IDEA, které už nejspíš znáte z PJV (obojí vyvíjí stejná firma). Narozdíl od např. VS Code je CLion jednoduché zprovoznit tak, aby plnohodnotně chápal C++ projekty, které budeme používat, a správne je uměl nastavit, kompilovat, detekovat chyby atd.

Po instalaci a spuštění po vás bude CLion nejspíše chtít aktivovat licenci. Jako studenti ČVUT máte nárok CLion zdarma používat, viz návod pro získání license.

Na Windows má CLion svojí instalaci C/C++ compileru MinGW, což je port GCC pro Windows. Tento compiler bohužel nepodporuje verzi knihovny OpenMP, kterou potřebujeme, nepoužívejte MinGW. Místo toho v úvodním nastavení přidejte jako toolchain WSL a nastavte ho jako výchozí.

Na MacOS je při nastavování použitého toolchainu (compileru) zadat absolutní cestu k clang a clang++ z minulého kroku, aby CLion nepoužil AppleClang compiler z XCode.

VS Code #

Je také možné používat VS Code, viz nastavení pro CMake, ale studenti s ním dlouhodobě mívají problémy, kdy editor dostanou do “polonastaveného” stavu, kdy jakž takž funguje základní editování, ale kompilovat musí z terminálu, nefunguje správně autocomplete atd. Pokud si nejste jistí, jak správně VS Code nastavit pro CMake projekty v C++, důrazně doporučujeme zvolit radeji CLion, pravděpodobně to pro vás bude méně práce pro lepší výsledek.

Jiné editory/IDE #

Jinak není problém používat vim, Emacs, nebo jakýkoliv jiný editor, co vám vyhovuje, dokud v něm dokážete pohodlně pracovat s CMake projekty v C++, v takovém případě ale předpokládáme, že sami nejlíp víte, jak si editor nastavit. :)