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
-
Ú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.
-
Synchronizační nástroje standardní knihovny Pythonu Podrobný přehled o modulech
threading
,multiprocessing
, aasyncio
, které Python nabízí pro paralelní a asynchronní programování. -
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.
-
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. -
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:
- Kapitola 2: Synchronizační nástroje (
threading
,multiprocessing
aasyncio
) - Kapitola 3: Nastínění problémů řešitelných pomoc Dask
- Kapitola 4: Ukázka funkcí RabbitMQ
- Kapitola 5: Práce se sokety a HTTP
Ú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.