Nové výhodné předplatné namísto kreditů je tu! Více informací. Upravili jsme také naše provozní podmínky.
NOVINKA: Staň se datovým analytikem a získej jistotu práce, lepší plat a nové kariérní možnosti. Více informací:

Lekce 23 - OpenMP - Paralelizace bez manuálního vytváření vláken v C++

V minulé lekci, Vektorizace v C++ - Restrict ukazatel a zarovnání paměti, jsme pokračovali v tématu vektorizace. Představili jsme si ukazatel restrict a jak optimalizovat zarovnáním paměti.

Zatímco při vektorizaci jsme se od vláken posunuli o úroveň níže a řešili jsme, které instrukce procesor provádí, tentokrát se přesuneme o úroveň výše. Open Multi-Processing (OpenMP) nám totiž dovoluje program jednoduše paralelizovat, ale přitom za nás vyřeší vytváření vláken, jejich synchronizaci a správu. Obdobně jako u vektorizace bude tato lekce pouze letmým nastíněním problému. Podrobnější vysvětlení by totiž vydalo na samostatný kurz. Účelem této lekce je získat představu o OpenMP a hlavně ukázat, že něco takového vůbec existuje.

OpenMP

OpenMP je zkratka Open Multi-Processing. Jedná se o standard a tak je OpenMP pouze popis rozhraní sloužící k paralelizaci programu - v tomto případě definuje direktivy pro překladač (část kódu začínající mřížkou), které následně vygenerují paralelizovaný kód.


 

...konec náhledu článku...
Pokračuj dál

Znalosti v hodnotě stovek tisíc získáš za pár korun

Došel jsi až sem a to je super! Věříme, že ti první lekce ukázaly něco nového a užitečného.
Chceš v kurzu pokračovat? Přejdi do prémiové sekce.

Obsah článku spadá pod licenci Premium, koupí článku souhlasíš s Provozními podmínkami.

Co od nás v dalších lekcích dostaneš?
  • Přístup k jednotlivým lekcím dle způsobu pořízení.
  • Kvalitní znalosti v oblasti IT.
  • Dovednosti, které ti pomohou získat vysněnou a dobře placenou práci.

Popis článku

Požadovaný článek má následující obsah:

V C++ tutoriálu se od vláken přesuneme výše a podíváme se na standard OpenMP, který za nás spravuje vlákna a program paralelizuje.
Článek pro vás napsal Patrik Valkovič
Avatar
Věnuji se programování v C++ a C#. Kromě toho také programuji v PHP (Nette) a JavaScriptu (NodeJS).
Aktivity