Vítejte na úvodní stránce handoutu, který vám poskytne základy a praktické ukázky pro pochopení paralelního programování a distribuovaných systémů s využitím jazyka Python. Tento materiál je rozdělen do několika tématických částí, které vás postupně provedou od teoretického úvodu až po pokročilejší použití externích nástrojů a technologií.


Obsah

  1. Úvod do paralelizace v Pythonu Přibližuje vývoj paralelizace v Pythonu od zavedení GIL, jeho omezení na vícejádrových procesorech, až po moderní přístupy jako multiprocessing, concurrent.futures a asyncio. Nabízí také pohled na budoucnost Pythonu bez GIL díky PEP 703.

  2. Synchronizační nástroje standardní knihovny Pythonu Podrobný přehled o modulech threading, multiprocessing, a asyncio, které Python nabízí pro paralelní a asynchronní programování.

  3. Problémy Pythonu a externí nástroje Přehled omezení jazyka Python, jako je GIL, a o možnostech jejich překonání pomocí technologií jako je multiprocessing, JIT kompilace, či statická kompilace. Také se seznámíte s nástroji pro paralelizaci a distribuované výpočty, například Dask nebo Ray.

  4. Práce s RabbitMQ
    Základy RabbitMQ, jeho hlavními pojmy, typy výměníků a praktickými ukázkami kódu pro posílání a příjem zpráv včetně možností škálování a zajištění spolehlivosti.

  5. Komunikace pomocí soketů a HTTP
    Přehled práce s nízkoúrovňovým modulem socket pro síťovou komunikaci a vysokoúrovňovým modulem http pro práci s protokolem HTTP, včetně praktických příkladů na odesílání, přijímání dat a implementaci vlastních serverů. Obsahuje také informace o výhodách, nevýhodách a souvisejících modulech pro rozšířenou funkcionalitu.


Ukázkové kódy

Všechny ukázky uvedené v handoutu si můžete prohlédnout a spustit. Kódy jsou uspořádány ve složce codes, která je rozdělena podle kapitol:

Úryvky kódu jsou doplněny o komentáře, které vysvětlují jednotlivé kroky a funkce. Čtenáři se doporučuje kód spustit a vyzkoušet si jeho funkčnost na vlastním počítači.


Doprovodná prezentace

Kromě textového handoutu je k dispozici také prezentace, která shrnuje klíčové body jednotlivých kapitol. Prezentace je k ve formátu PDF a je možné ji stáhnout zde: PDS 2024 - Python Prezentace


Další kroky

Začněte prvním tématem: Úvod do paralelního programování a distribuovaných systémů. Pokud máte nějaké dotazy nebo problémy, neváhejte se obrátit na contributory tohoto repozitáře.