Cvičení předmětu MI-PAR P. Tvrdík, I. Šimeček, M. Šoch

Rozměr: px
Začít zobrazení ze stránky:

Download "Cvičení předmětu MI-PAR P. Tvrdík, I. Šimeček, M. Šoch"

Transkript

1 Cvičení předmětu MI-PAR P Tvrdík, I Šimeček, M Šoch paveltvrdik,xsimecek,soch@fitcvutcz Katedra počítačových systémů FIT České vysoké učení technické v Praze 2011 MI-PAR, ZS2011/12, Cv1-6 Příprava studijního programu Informatika je podporována projektem financovaným z Evropského sociálního fondu a rozpočtu hlavního města Prahy Praha & EU: Investujeme do vaší budoucnosti

2 = S t a r C l u s t e r = of :18 Programovaní pod MPI Programovací jazyk C a C++, C++, Komunikační knihovna MPI Úvod Základní komunikační funkce MPI Ukázkové příklady Kde najít další informace o MPI Jak kompilovat paralelní aplikaci na svazku STAR Jak spustit paralelní aplikaci na svazku STAR Jak ladit paralelní aplikaci na svazku STAR Další info na Wiki výpočetního svazku STAR Knihovna logger pro jednoduší logování aplikací Tipy a triky byvalych studentu MPI na WIN (s Netbeans) MPI na Linuxu

3 1 of :19 OpenMP podle Blaise Barney, Lawrence Livermore National Laboratory Struktura: Základní informace 1 Co je to OpenMP? 2 Jak OpenMP funguje? 3 Jak udìlat program vícevláknový? 4 Váš úkol 5 Co zde chybí? 6 Odkazy dále OpenMP direktivy 1 Obecná pravidla pro zápis 2 Ukázka principu zápisu OpenMP direktivy 3 Direktiva "parallel" 4 Direktiva "for" 5 Direktiva "single" 6 Direktiva "master" 7 Direktiva "critical" 8 Direktiva "atomic" OpenMP vlastnosti 1 Co to je? 2 Vlastnost "shared" 3 Vlastnost "private" 4 Vlastnost "firstprivate" 5 Vlastnost "lastprivate" 6 Vlastnost "default" 7 Vlastnost "reduction" OpenMP operace 1 Operace "barrier" 2 Operace "flush" 3 Operace s vlákny 4 Operace s èasem 5 Operace se OpenMP zámky Ukázkové OpenMP kódy 1 Hello World (ukázka direktivy parallel) 2 Vektorový souèet (ukázka direktivy parallel a for) 3 Vektorový souèet (ukázka direktivy parallel for) 4 Kritická sekce(ukázka direktivy critical) Základní informace Co je to OpenMP? sjednocené API pro programování vícevláknových aplikací Jak OpenMP funguje?

4 2 of :19 Ve vybraných èástech kódu (dále oznaèovaných jako paralelní bloky = parallel regions) je pomocí fork-join mechanismu vytvoøen daný poèet vláken a tak je tento paralelní blok øešen vícevláknovì Mimo tyto paralelní bloky existuje pouze jedno vlákno hlavního procesu Pozn Nedoporuèuje se míchat tento zpùsob vytváøení a zániku threadù s tím jak byl probírán v pøedmìtu OSY (POSIX thready = pthread_create, pthread_join, pthread_exit) Jak udìlat program vícevláknový? Staèí dodržet tyto 4 kroky Stanovit si, které èásti kódu (nejèastìji cykly) chci aby bìžely vícevláknovì, toto udìlám pomocí OpenMP direktiv = vytvoøíme paralelní bloky Díky tomu, že vytvoøení a zánik vláken má jistou režii, je snaha paralelizovat co èasovì nejvìtší èásti kódu Stanovit pro jednotlivé promìnné jejich OpenMP vlastnosti Je snaha co nejvíce se vyhybat sdíleným promìnným V rámci paralelních blokù se vyhnout "thead-unsafe" operacím Zkompilovat program pomocí "gcc-fopenmp-o3", první volba je pro zpracování OpenMP, druhá zapíná optimalizace kompilátoru Jaký je váš úkol? Pro každý výpoèetní uzel vytvoøit sdílenou frontu nebo zásobník, kterou budou využívat jednotlivá vlákna (jejich poèet volte rovných 4) v daném výpoèetním uzlu Pro vzájemné vylouèení vláken pøi pøístupu využijte OpenMP zámky, kritické sekce nebo atomické operace Co zde chybí? Tento text slouží jako úvod do OpenMP proto zde chybí popis pokroèilejší mechanismù jako direktiva sections, dynamicky mìnitelný poèet vláken nebo vnoøené paralelní bloky (nested parallel regions) Odkazy dále OpenMP website: openmporg API specifications, FAQ, presentations, discussions, media releases, calendar, membership application and more Wikipedia: enwikipediaorg/wiki/openmp OpenMP direktivy Obecná pravidla pro zápis Pøed každým paralelním blokem je na jedné programované øádce uvede jediná OpenMP direktiva a dále volitelný poèet jejich parametrù Pozn Jedna programová øádka mùže obsahovat i více øádek v kódu, pokud je pøedchozí øádka ukonèena pomocí znaku zpìtné lomítko("\") Ukázka principu zápisu OpenMP direktivy

5 3 of :19 C / C++ - General Code Structure #include <omph> main () { int var1, var2, var3; zde pracuje jen hlavni vlakno procesu (serial code) nasleduje paralelni blok (Beginning of parallel section Fork a team of threads Specify variable scoping) #pragma omp parallel private(var1, var2) shared(var3) { Uvnitr paralelniho bloku pracuje vice vlaken (Parallel section executed by all threads) Promenne var1, var2 jsou privatni = kazde vlakno v tomto bloku ma vlastni Promenna var3 je sdilena vsemi vlakny } Na konci bloku se nove vznikla vlakna zrusi (All threads join master thread and disband) } opet pracuje jen hlavni vlakno procesu (serial code) Direktiva "parallel" Možné parametry jsou: if (podmínka) num_threads (výraz) vlastnosti promìnných (seznam promìnných) Pokud je podmínka splnìna (když není uvedena, je splnìna), je vytvoøen daný poèet vláken, jinak se bude paralelní blok provádìt sekvenènì V tomto paralelním bloku budou mít promìnné tyto OpenMP vlastnosti Pøesné chování Omezení Je vytvoøen daný poèet vláken, vlákna jsou oèíslována, pùvodní (hlavní vlákno procesu) vlákno má èíslo 0 Kód paralelního bloku je zduplikován na všechny vlákna a zaène se provádìt Na konci paralelního bloku je implicitní bariéra, novì vzniklá vlákna jsou ukonèena, dále pokraèuje zase jen pùvodní (hlavní vlákno procesu) vlákno Pokud je z nìjakého dùvodu jedno z vláken ukonèeno bìhem paralelního bloku, jsou ukonèeny všchny vlákna a tím i program Paralelního blok nesmí pøekroèit rámec jedné procedury a musí být v jednom programovém souboru Je zakázáno vyskoèit ven nebo vskoèit zvenèí dovnitø paralelního bloku

6 4 of :19 Je dovolena maximálnì jedna if (podmínka) pøed každým paralelním blokem Je dovolena maximálnì jede num_threads (výraz) pøed každým paralelním blokem Poèet vláken u direktivy "parallel" Poèet vzniklých vláken je øízen tìmito výrazy (v tomto poøadí, dùležitý je první platný výraz) pokud je uvedena, vyhodnotí se if Pokud není splnìna, bude provádìt jako sekvenèní kód pokud je uvedena, provede se dle nastavení num_threads pokud bylo uvedeno, provede se dle nastavení pøi posledním volání fci omp_set_num_threads() pokud je uvedena, provede se dle nastavení promìnné prostøedí OMP_NUM_THREADS v závisloti na implementaci nebo dynamicky Pozn: Direktivu "parallel" a "for" je mozno spojit do "parallel for" viz zde Direktiva "for" Konstrukce pro paralelizaci for-cyklu uvniø paralelního bloku, možné parametry jsou: schedule(typ,velikost) static Každému vláknu je staticky pøidìleno velikost iterací (jdoucích po sobì) cyklu Pokud není velikost uvedena, jsou iterace rovnomìrnì rozdìleny mezi vlákna dynamic Každému vláknu je dynamicky pøidìleno velikost iterací (jdoucích po sobì) cyklu Když vlákno dokonèí,je mu pøidìlena další èást stejné velikosti Pokud není velikost uvedena, pøedpokládá se 1 guided Každému vláknu je dynamicky pøidìleno x iterací ( x je poèet neprovedených iterací dìleno poètem vláken, x je vìtší nez velikost kromì posledního kousku) cyklu Když vlákno dokonèí,je mu pøidìlena další èást stejné velikosti Pokud není velikost uvedena, pøedpokládá se 1 runtime Rozhodnutí o plánování je odloženo až do okamžiku provedení dle promìnné prostøedí OMP_SCHEDULE auto Plánování je necháno na kompilátoru a OS nowait = vlákna na konci paralelního bloku neprovádí bariéru ordered = poøádí iterací je stejné jako pøi sekvenèním provádìní collapse = slouží pro upøesnìní u vnoøených cyklù Pokud je podmínka splnìna (když není uvedena, je splnìna), je vytvoøen daný poèet vláken, jinak se bude paralelní blok provádìt sekvenènì V tomto paralelním bloku budou mít promìnné tyto vlastnosti (TODO viz) Pøesné chování Omezení: Je vytvoøen daný poèet vláken, vlákna jsou oèíslována, pùvodní (hlavní vlákno procesu) vlákno má èíslo 0 Kód paralelního bloku je zduplikován na všechny vlákna a zaène se provádìt Na konci paralelního bloku je implicitní bariéra, novì vzniklá vlákna jsou ukonèena, dále pokraèuje zase jen pùvodní (hlavní vlákno procesu) vlákno Pokud je z nìjakého dùvodu jedno z vláken ukonèeno bìhem paralelního bloku, jsou ukonèeny všchny vlákna a tím i program Paralelního blok musí obsahuje for-cyklus, který je øízen celoèíselnou promìnnou Øídící promìnné

7 5 of :19 tohoto cyklu musí být stejné pro všechny vlákna Chování programu musí být nezávislé na tom, které vlákno provádí konkrétní iteraci cyklu Je zakázáno vyskoèit ven nebo vskoèit zvenèí dovnitø paralelního bloku velikost parametru velikost musí být nemìnná bìhem provádìní cyklu Je dovolena maximálnì jeden výskyt ordered, collapse nebo schedule, (podmínka) pøed každým paralelním blokem Pozn: Direktivu "parallel" a "for" je mozno spojit do "parallel for" viz zde Direktiva "single" Specifikuje èást paralelního bloku, kterou provádí pouze jedno vlákno Možné parametry jsou: Omezení nowait = vlákna na konci paralelního bloku neprovádí bariéru Je zakázáno vyskoèit ven nebo vskoèit zvenèí dovnitø paralelního bloku Direktiva "master" Specifikuje èást paralelního bloku, kterou provádí pouze master vlákno (to s èíslem vlákna rovným 0), ostatní vlákna zpracovávají kód následující po této èásti bloku Omezení Je zakázáno vyskoèit ven nebo vskoèit zvenèí dovnitø paralelního bloku Direktiva "critical" Specifikuje èást paralelního bloku, kterou mùže souèasnì provádìt pouze jedno vlákno (kritická sekce) Možné parametry jsou: Omezení jméno = èásti se stejným názvem jsou brány jako jedna kritická sekce Všechny èásti bez jména jsou také brány jako jedna kritická sekce Ukázka zde Je zakázáno vyskoèit ven nebo vskoèit zvenèí dovnitø paralelního bloku Direktiva "atomic" Specifikuje pamì ové operace, které mají být atomické Ukázka zde vlastnosti promìnných Co to je? Urèují vlastnosti promìnných vzhledem k pamì ovým operacím Pozor!!! Pokud budou vlastnosti použity na

8 6 of :19 pointer, aplikují se pouze na tento pointer nikoliv na data na která ukazuje vlastnost shared Urèuje, že daná promìnná bude sdílena všemi vlákny vlastnost private Urèuje, že daná promìnná bude lokální ve vláknì, tozn že každé vlákno bude mít nezávislou instanci této promìnné Promìnná je vytvoøena jako neinicializovaná vlastnost firstprivate Urèuje, že daná promìnná bude lokální ve vláknì, tozn každé vlákno bude mít nezávislou instanci této promìnné Promìnná je vytvoøena s pùvodní hodnotou, kterou mìlqa pøed vstupem do paralelního bloku vlastnost lastprivate Urèuje, že daná promìnná bude lokální ve vláknì, tozn že každé vlákno bude mít nezávislou instanci této promìnné Hodnota promìnná z poslední iterace bude pøekopírována do promìnné hlavního vlákna procesu (bude platná po skonèení paralelního bloku) vlastnost default Urèuje, jakou vlastnost budou mít defaultnì všechny promìnné použité v paralelním bloku (pokud nebude uvedeno jinak) Možné parametry jsou: shared none vlastnost reduction Urèuje, že daná promìnná bude lokální ve vláknì, tozn že každé vlákno bude mít nezávislou instanci této promìnné Po skonèení bloku se na všechny instance použije redukèní operace a výsledek bude zapsán do promìnné hlavního vlákna procesu (bude platný po skonèení paralelního bloku) Možné operace jsou: +, *, -, &, ^, Omezení: Musí se jednat o promìnné jednoduchého typu V nadøízeném bloku musí být deklarovány jako SHARED Operace nesmí být pøetížena pro daný datový typ Pro reálné datové typy operace nemusí být asociativní Každý blok mùže obsahovat i více promìnných pro redukci ale každou maximálnì jednou Ukázka zde podrobnìji a další ukázka zde OpenMP operace

9 7 of :19 Operace "barrier" Specifikuje bariéru (èást kódu,kde na sebe všechny vlákna "poèkají" a dále jdou zase všechny) Operace "flush" Násilnì vyvolá ètení a zápis daných promìných do/z pamìti Možné parametry jsou: seznam promìnných vysvìtlení zde Operace "omp_set_num_threads(int i)" Programovì zmìní poèet vytvoøených vláken v následujích paralelních blocích Musí být volán ze sekvenèní èásti pøedcházející paralelnímu bloku Efekt zùstává v platnosti do dalšího volání Parametrem je požadovaný poèet vláken Operace "omp_get_num_threads" Vrátí poèet vláken v aktuálním paralelním bloku V sekvenèní èásti vrací 1 Operace "omp_get_wtime" Vrátí èíslo (typu double), které udává ubìhnutý èas od nìjakém (impementaènì závislého) okamžiku v minulosti Nejèastìji se používá jako párové volání pro zjištìní napø doby trvání cyklu, doba trvání programu Operace "omp_init_lock(omp_lock_t *x)" Inicializuje OpenMP zámek (mutex) s poèáteèní hodnotou odemèeno Operace "omp_destroy_lock(omp_lock_t *x)" Zruší (inicializovaný) OpenMP zámek (mutex) Operace "omp_set_lock(omp_lock_t *x)" Pokusí se zamknout OpenMP zámek (mutex) V pøípadì neúspìchu se vlákno zablokuje Operace "omp_test_lock(omp_lock_t *x)" Pokusí se zamknout OpenMP zámek (mutex) V pøípadì neúspìchu vrací 0 Operace "omp_unset_lock(omp_lock_t *x)" Odemkne OpenMP zámek (mutex) Ukázkové OpenMP kódy Hello World (ukázka direktivy parallel) Vektorový souèet (ukázka direktivy parallel a for) Vektorový souèet (ukázka direktivy parallel for)

10 8 of :19 4 Kritická sekce(ukázka direktivy critical) 5 Atomická operace(ukázka direktivy atomic) 6 Operace redukce(ukázka direktivy reduction)

Vícevláknové programování na CPU: POSIX vlákna a OpenMP I. Šimeček

Vícevláknové programování na CPU: POSIX vlákna a OpenMP I. Šimeček Vícevláknové programování na CPU: POSIX vlákna a OpenMP I. Šimeček xsimecek@fit.cvut.cz Katedra počítačových systémů FIT České vysoké učení technické v Praze Ivan Šimeček, 2011 MI-PRC, LS2010/11, Predn.2

Více

Paralení programování pro vícejádrové stroje s použitím OpenMP. B4B36PDV Paralelní a distribuované výpočty

Paralení programování pro vícejádrové stroje s použitím OpenMP. B4B36PDV Paralelní a distribuované výpočty Paralení programování pro vícejádrové stroje s použitím OpenMP B4B36PDV Paralelní a distribuované výpočty Minulé cvičení: Vlákna a jejich synchronizace v C++ 11... 1 Minulé cvičení: Vlákna a jejich synchronizace

Více

Vláknové programování část V

Vláknové programování část V Vláknové programování část V Lukáš Hejmánek, Petr Holub {xhejtman,hopet}@ics.muni.cz Laboratoř pokročilých síťových technologií PV192 2012 04 17 1/46 Přehled přednášky Open MP 2/46 Open MP Standard pro

Více

Paralelní architektury se sdílenou pamětí

Paralelní architektury se sdílenou pamětí Paralelní architektury se sdílenou pamětí Multiprocesory Multiprocesory se sdílenou pamětí SMP architektury Přístup do paměti OpenMP Multiprocesorové architektury I. Multiprocesor se skládá z několika

Více

Vláknové programování část V

Vláknové programování část V Vláknové programování část V Lukáš Hejmánek, Petr Holub {xhejtman,hopet}@ics.muni.cz Laboratoř pokročilých síťových technologií PV192 2010 04 08 1/60 Přehled přednášky Open MP 2/60 Open MP Standard pro

Více

Paralelní architektury se sdílenou pamětí

Paralelní architektury se sdílenou pamětí Paralelní architektury se sdílenou pamětí Multiprocesory Multiprocesory se sdílenou pamětí SMP architektury Přístup do paměti OpenMP Multiprocesorové architektury I. Multiprocesor se skládá z několika

Více

Paralelní výpočetní jádro matematického modelu elektrostatického zvlákňování

Paralelní výpočetní jádro matematického modelu elektrostatického zvlákňování Paralelní výpočetní jádro matematického modelu elektrostatického zvlákňování Milan Šimko Technická univerzita v Liberci Interní odborný seminář KO MIX 19. prosince 2011 Obsah prezentace 1 MOTIVACE 2 VLÁKNOVÝ

Více

Vlákna a přístup ke sdílené paměti. B4B36PDV Paralelní a distribuované výpočty

Vlákna a přístup ke sdílené paměti. B4B36PDV Paralelní a distribuované výpočty Vlákna a přístup ke sdílené paměti B4B36PDV Paralelní a distribuované výpočty Minulé cvičení: Paralelizace nám může pomoct... 1 Minulé cvičení: Paralelizace nám může pomoct... B4B36PDV: Ale ne všechny

Více

Pokročilé architektury počítačů

Pokročilé architektury počítačů Pokročilé architektury počítačů 03 Programování paralelních systémů Část II. OpenMP a MPI České vysoké učení technické, fakulta elektrotechnická A4M36PAP Pokročilé architektury počítačů Ver.1.00 1 Přehled:

Více

Paralelní programování

Paralelní programování Paralelní programování přednášky Jan Outrata únor květen 2011 Jan Outrata (KI UP) Paralelní programování únor květen 2011 1 / 15 Simulátor konkurence abstrakce = libovolné proložení atom. akcí sekvenčních

Více

Obsah. Kapitola 1 Hardware, procesory a vlákna Prohlídka útrob počítače...20 Motivace pro vícejádrové procesory...21

Obsah. Kapitola 1 Hardware, procesory a vlákna Prohlídka útrob počítače...20 Motivace pro vícejádrové procesory...21 Stručný obsah 1. Hardware, procesory a vlákna... 19 2. Programování s ohledemna výkon... 45 3. Identifikování příležitostí pro paralelizmus... 93 4. Synchronizace a sdílení dat... 123 5. Vlákna v rozhraní

Více

Cvičení MI-PAP I. Šimeček, M. Skrbek, J. Trdlička

Cvičení MI-PAP I. Šimeček, M. Skrbek, J. Trdlička Cvičení MI-PAP I. Šimeček, M. Skrbek, J. Trdlička xsimecek@fit.cvut.cz Katedra počítačových systémů FIT České vysoké učení technické v Praze Ivan Šimeček, 2011 MI-PAP, LS2010/11, Cvičení 1-6 Příprava studijního

Více

Úvod do OpenMP. Jiří Fürst

Úvod do OpenMP. Jiří Fürst Úvod do OpenMP Jiří Fürst Osnova: Úvod do paralelního programování Počítače se sdílenou pamětí Základy OpenMP Sdílené a soukromé proměnné Paralelizace cyklů Příklady Úvod do paralelního programování Počítač

Více

OpenMP (Open Specification for Multi Processing)

OpenMP (Open Specification for Multi Processing) OpenMP (Open Specification for Multi Processing) OpenMP je rozhraní (application programming interface, API) pro (explicitní) programování paralelních aplikací na (jednom) počítači s více procesory (jádry)

Více

Vlákno odlehčený proces kód vlákna, zásobník privátní ostatní sdíleno s dalšími vlákny téhož procesu

Vlákno odlehčený proces kód vlákna, zásobník privátní ostatní sdíleno s dalšími vlákny téhož procesu Procesy, vlákna Vlákno odlehčený proces kód vlákna, zásobník privátní ostatní sdíleno s dalšími vlákny téhož procesu Implementace vláken one-to-one o implementace na úrovni jádra o každé vlákno je pro

Více

Paralelní programování

Paralelní programování Paralelní programování cvičení Jan Outrata únor duben 2011 Jan Outrata (KI UP) Paralelní programování únor duben 2011 1 / 13 Cvičení 1 Jazyk C POSIX Threads (UNIX) hlavičkový soubor pthread.h, knihovna

Více

Øízený pøeklad - make

Øízený pøeklad - make Øízený pøeklad Øízený pøeklad - make - nástroj make je pùvodnì UNIXový pomocný vývoj. nástroj vzniklý v AT&T asi 1975 - úèel: zjednodušit a zautomatizovat pøeklad a sestavování (linking) vìtších projektù,

Více

Operační systémy. Cvičení 5: Volání jádra, procesy, vlákna.

Operační systémy. Cvičení 5: Volání jádra, procesy, vlákna. Operační systémy Cvičení 5: Volání jádra, procesy, vlákna. 1 Obsah cvičení Systémová volání Knihovní funkce jazyka C Procesy informace o procesech vytváření, ukončování procesů, signály POSIX vlákna vytváření,

Více

Procesy a vlákna (Processes and Threads)

Procesy a vlákna (Processes and Threads) ÚVOD DO OPERAČNÍCH SYSTÉMŮ Ver.1.00 Procesy a vlákna (Processes and Threads) Správa procesů a vláken České vysoké učení technické Fakulta elektrotechnická 2012 Použitá literatura [1] Stallings, W.: Operating

Více

9. lekce Úvod do jazyka C 4. část Funkce, rekurze Editace, kompilace, spuštění Miroslav Jílek

9. lekce Úvod do jazyka C 4. část Funkce, rekurze Editace, kompilace, spuštění Miroslav Jílek 9. lekce Úvod do jazyka C 4. část Funkce, rekurze Editace, kompilace, spuštění Miroslav Jílek 1/24 Editační prostření Kód programu lze editovat v jakémkoli textovém editoru. 2/24 Editační prostření Kód

Více

Struktura programu v době běhu

Struktura programu v době běhu Struktura programu v době běhu Miroslav Beneš Dušan Kolář Struktura programu v době běhu Vztah mezi zdrojovým programem a činností přeloženého programu reprezentace dat správa paměti aktivace podprogramů

Více

Paralelní a distribuované výpočty (B4B36PDV)

Paralelní a distribuované výpočty (B4B36PDV) Paralelní a distribuované výpočty (B4B36PDV) Branislav Bošanský, Michal Jakob bosansky@fel.cvut.cz Artificial Intelligence Center Department of Computer Science Faculty of Electrical Engineering Czech

Více

Více o konstruktorech a destruktorech

Více o konstruktorech a destruktorech Více o konstruktorech a destruktorech Více o konstruktorech a o přiřazení... inicializovat objekt lze i pomocí jiného objektu lze provést přiřazení mezi objekty v původním C nebylo možné provést přiřazení

Více

Přednáška. Správa paměti II. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Přednáška. Správa paměti II. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012 Přednáška Správa paměti II. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012 Příprava studijního programu Informatika je podporována projektem financovaným z Evropského

Více

Architektury VLIW M. Skrbek a I. Šimeček

Architektury VLIW M. Skrbek a I. Šimeček Architektury VLIW M. Skrbek a I. Šimeček xsimecek@fit.cvut.cz Katedra počítačových systémů FIT České vysoké učení technické v Praze Ivan Šimeček, 2011 MI-PAP, LS2010/11, Predn.3 Příprava studijního programu

Více

PROGRAMOVÁNÍ V C++ CVIČENÍ

PROGRAMOVÁNÍ V C++ CVIČENÍ PROGRAMOVÁNÍ V C++ CVIČENÍ INFORMACE Michal Brabec http://www.ksi.mff.cuni.cz/ http://www.ksi.mff.cuni.cz/~brabec/ brabec@ksi.mff.cuni.cz gmichal.brabec@gmail.com PODMÍNKY ZÁPOČTU Základní podmínky společné

Více

Přednáška. Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Přednáška. Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012 Přednáška Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012 Příprava studijního programu Informatika je podporována projektem financovaným z Evropského

Více

Paralelní a distribuované výpočty (B4B36PDV)

Paralelní a distribuované výpočty (B4B36PDV) Paralelní a distribuované výpočty (B4B36PDV) Branislav Bošanský, Michal Jakob bosansky@fel.cvut.cz Artificial Intelligence Center Department of Computer Science Faculty of Electrical Engineering Czech

Více

Řada programovacích jazyků nabízí prostředky pro řešení meziprocesové komunikace jako je synchronizace a řízení přístupu do kritické sekce.

Řada programovacích jazyků nabízí prostředky pro řešení meziprocesové komunikace jako je synchronizace a řízení přístupu do kritické sekce. Operační systémy Tomáš Hudec 7 Prostředky programovacích jazyků pro IPC Obsah: 7.1 Monitor, 7.1.1 Použití monitoru pro řízení přístupu do kritické sekce, 7.1.2 Použití monitoru pro synchronizaci, 7.1.3

Více

Ústav technické matematiky FS ( Ústav technické matematiky FS ) / 35

Ústav technické matematiky FS ( Ústav technické matematiky FS ) / 35 Úvod do paralelního programování 2 MPI Jakub Šístek Ústav technické matematiky FS 9.1.2007 ( Ústav technické matematiky FS ) 9.1.2007 1 / 35 Osnova 1 Opakování 2 Představení Message Passing Interface (MPI)

Více

JAN POŠTA DELPHI ZAÈÍNÁME PROGRAMOVAT Praha 2001 Jan Pošta DELPHI ZAÈÍNÁME PROGRAMOVAT Bez pøedchozího písemného svolení nakladatelství nesmí být kterákoli èást kopírována nebo rozmnožována jakoukoli formou

Více

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií 1 Fakulta elektrotechniky a informatiky Katedra softwarových technologií 12. října 2009 Organizace výuky Přednášky Teoretické základy dle normy jazyka C Cvičení Praktické úlohy odpřednášené látky Prostřední

Více

Programování bez vláken. OpenMP

Programování bez vláken. OpenMP Programování bez vláken Tradiční přístup je vytvoření vícevláknového programu, kde se řekne, co má které vlákno dělat Ale jde to i jinak, lze vytvořit program tak, že se řekne, co se má udělat paralelně

Více

1. Programování proti rozhraní

1. Programování proti rozhraní 1. Programování proti rozhraní Cíl látky Cílem tohoto bloku je seznámení se s jednou z nejdůležitější programátorskou technikou v objektově orientovaném programování. Tou technikou je využívaní rozhraní

Více

Procesy a vlákna - synchronizace

Procesy a vlákna - synchronizace ÚVOD DO OPERAČNÍCH SYSTÉMŮ Ver.1.00 Procesy a vlákna - synchronizace České vysoké učení technické Fakulta elektrotechnická 2010 Studijní materiály a informace o předmětu http://measure.feld.cvut.cz/vyuka/predmety/bakalarske/navody

Více

Vážení zákazníci, dovolujeme si Vás upozornit, že na tuto ukázku knihy se vztahují autorská práva, tzv. copyright. To znamená, že ukázka má sloužit výhradnì pro osobní potøebu potenciálního kupujícího

Více

1.2 Realizace èekání pomocí jednoduché programové smyèky Pøíklad 3: Chceme-li, aby dítì blikalo baterkou v co nejpøesnìjším intervalu, øekneme mu: Roz

1.2 Realizace èekání pomocí jednoduché programové smyèky Pøíklad 3: Chceme-li, aby dítì blikalo baterkou v co nejpøesnìjším intervalu, øekneme mu: Roz Vážení zákazníci, dovolujeme si Vás upozornit, že na tuto ukázku knihy se vztahují autorská práva, tzv. copyright. To znamená, že ukázka má sloužit výhradnì pro osobní potøebu potenciálního kupujícího

Více

Úvod do GPGPU J. Sloup, I. Šimeček

Úvod do GPGPU J. Sloup, I. Šimeček Úvod do GPGPU J. Sloup, I. Šimeček xsimecek@fit.cvut.cz Katedra počítačových systémů FIT České vysoké učení technické v Praze Ivan Šimeček, 2011 MI-PRC, LS2010/11, Predn.3 Příprava studijního programu

Více

PESexcl. PODPORA PRO VÝMÌNU DAT S APLIKACÍ MICROSOFT EXCEL s využitím DDE serveru PESdde

PESexcl. PODPORA PRO VÝMÌNU DAT S APLIKACÍ MICROSOFT EXCEL s využitím DDE serveru PESdde PESexcl PODPORA PRO VÝMÌNU DAT S APLIKACÍ MICROSOFT EXCEL s využitím DDE serveru PESdde PESexcl Hotová pøedpøipravená makra VBA pro program Microsoft EXCEL umožòující výmìnu tabulek dat s automaty MICROPEL

Více

ZOS 9. cvičení, ukázky kódu. Pavel Bžoch

ZOS 9. cvičení, ukázky kódu. Pavel Bžoch ZOS 9. cvičení, ukázky kódu Pavel Bžoch Obsah Komunikace mezi procesy Atomické operace TSL a CAS Zámky Semafory Semafory vypsání věty Monitor Bariéra pomocí monitoru Implementace semaforu pomocí monitoru

Více

3.7.5 Znaménkové operátory Násobící operátory Rùzné operátory Základní objekty Konstanty Sig

3.7.5 Znaménkové operátory Násobící operátory Rùzné operátory Základní objekty Konstanty Sig OBSAH Úvod 11 Signály v èíslicových systémech 13 2.1 Dvojstavové signály... 14 2.2 Tøístavové signály... 16 2.3 Dynamické parametry èíslicových signálù... 16 Jazyk VHDL 19 3.1 Historie, souèasnost, budoucnost

Více

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu: Čtvrtek 8 prosince Pascal - opakování základů Struktura programu: 1 hlavička obsahuje název programu, použité programové jednotky (knihovny), definice konstant, deklarace proměnných, všechny použité procedury

Více

Jakub Čermák jakub@jcermak.cz, http://www.jcermak.cz Microsoft Student Partner

Jakub Čermák jakub@jcermak.cz, http://www.jcermak.cz Microsoft Student Partner Jakub Čermák jakub@jcermak.cz, http://www.jcermak.cz Microsoft Student Partner Co paralelizace přinese? Jak paralelizovat? Jak si ušetřit práci? Jak nedělat běžné paralelizační chyby? Race condition, deadlocky

Více

Vláknové programování část I

Vláknové programování část I Vláknové programování část I Lukáš Hejmánek, Petr Holub {xhejtman,hopet}@ics.muni.cz Laboratoř pokročilých síťových technologií PV192 2015 04 07 1/27 Vláknové programování v C/C++ 1. Procesy, vlákna, přepínání

Více

Uklízení odpadků a analýza úniku

Uklízení odpadků a analýza úniku Uklízení odpadků a analýza úniku Jiří Vokřínek Katedra počítačů Fakulta elektrotechnická Ceské vysoké ucení technické v Praze Prednáška 11 B0B36PJV Programování v JAVA Uklízení odpadků a analýza úniku

Více

Jazyk C++, některá rozšíření oproti C

Jazyk C++, některá rozšíření oproti C Karel Müller, Josef Vogel (ČVUT FIT) Jazyk C++, některá rozšíření oproti C BI-PA2, 2011, Přednáška 1 1/22 Jazyk C++, některá rozšíření oproti C Ing. Josef Vogel, CSc Katedra softwarového inženýrství Katedra

Více

4. Rekurze. BI-EP1 Efektivní programování Martin Kačer

4. Rekurze. BI-EP1 Efektivní programování Martin Kačer 4. Rekurze BI-EP1 Efektivní programování 1 ZS 2011/2012 Ing. Martin Kačer, Ph.D. 2010-11 Martin Kačer Katedra teoretické informatiky Fakulta informačních technologií České vysoké učení technické v Praze

Více

Pointery II. Jan Hnilica Počítačové modelování 17

Pointery II. Jan Hnilica Počítačové modelování 17 Pointery II 1 Pointery a pole Dosavadní způsob práce s poli zahrnoval: definici pole jakožto kolekce proměnných (prvků) jednoho typu, umístěných v paměti za sebou int pole[10]; práci s jednotlivými prvky

Více

3/ %,1'(& 83'1 &( &3 )XQNFH. + ; ; ; ; / ; ; + ; EH]H]PuQ\

3/ %,1'(& 83'1 &( &3 )XQNFH. + ; ; ; ; / ; ; + ; EH]H]PuQ\ Vážení zákazníci, dovolujeme si Vás upozornit, že na tuto ukázku knihy se vztahují autorská práva, tzv. copyright. To znamená, že ukázka má sloužit výhradnì pro osobní potøebu potenciálního kupujícího

Více

ČÁST 1. Základy 32bitového programování ve Windows

ČÁST 1. Základy 32bitového programování ve Windows Obsah Úvod 13 ČÁST 1 Základy 32bitového programování ve Windows Kapitola 1 Nástroje pro programování ve Windows 19 První program v Assembleru a jeho kompilace 19 Objektové soubory 23 Direktiva INVOKE 25

Více

Vytváøení sí ového diagramu z databáze: pøíklad

Vytváøení sí ového diagramu z databáze: pøíklad Vážení zákazníci, dovolujeme si Vás upozornit, že na tuto ukázku knihy se vztahují autorská práva, tzv. copyright. To znamená, že ukázka má sloužit výhradnì pro osobní potøebu potenciálního kupujícího

Více

Paralelní a distribuované výpočty (B4B36PDV)

Paralelní a distribuované výpočty (B4B36PDV) Paralelní a distribuované výpočty (B4B36PDV) Branislav Bošanský, Michal Jakob bosansky@fel.cvut.cz Artificial Intelligence Center Department of Computer Science Faculty of Electrical Engineering Czech

Více

4. Úvod do paralelismu, metody paralelizace

4. Úvod do paralelismu, metody paralelizace 4. Úvod do paralelismu, metody paralelizace algoritmů Ing. Michal Bližňák, Ph.D. Ústav informatiky a umělé inteligence Fakulta aplikované informatiky UTB Zĺın Paralelní procesy a programování, Zĺın, 26.

Více

KOMUNIKAÈNÍ DDE SERVER PRO AUTOMATY MICROPEL VERZE 2.3 POPIS ROZHRANÍ A OVLÁDÁNÍ 03.2002

KOMUNIKAÈNÍ DDE SERVER PRO AUTOMATY MICROPEL VERZE 2.3 POPIS ROZHRANÍ A OVLÁDÁNÍ 03.2002 PESdde KOMUNIKAÈNÍ DDE SERVER PRO AUTOMATY MICROPEL VERZE 2.3 POPIS ROZHRANÍ A OVLÁDÁNÍ 03.2002 1. Co je nového ve verzi 2.3 Proti verzi 2.1 jsou v této verzi dvì významná vylepšení: 1. Server nyní stále

Více

baspelin CPM Popis komunikaèního protokolu CPM KOMPR

baspelin CPM Popis komunikaèního protokolu CPM KOMPR baspelin Popis komunikaèního protokolu KOMPR srpen 2003 baspelin Obsah 1. Pøehled pøíkazù a dotazù 4 2. Popis pøíkazù a dotazù 5 3. Èasování pøenosu 10 4. Pøipojení regulátorù na vedení 11 3 baspelin

Více

Podìkování: Výsledkù publikovaných v této knize bylo dosaženo také za podpory projektù GAÈR 101/06/P108 Výzkum simulaèního a experimentálního modelová

Podìkování: Výsledkù publikovaných v této knize bylo dosaženo také za podpory projektù GAÈR 101/06/P108 Výzkum simulaèního a experimentálního modelová Robert Grepl MODELOVÁNÍ MECHATRONICKÝCH SYSTÉMÙ V MATLAB SIMMECHANICS Praha 2007 Podìkování: Výsledkù publikovaných v této knize bylo dosaženo také za podpory projektù GAÈR 101/06/P108 Výzkum simulaèního

Více

IRAE 07/08 Přednáška č. 2. atr1 atr2. atr1 atr2 -33

IRAE 07/08 Přednáška č. 2. atr1 atr2. atr1 atr2 -33 Objekt jako proměnná Objekty a metody Objekt = proměnná referenčního typu vznik pomocí new, chování viz pole jako referenční proměnná minulý semestr Stack Heap objekt ref this 10 20 atr1 atr2 jinyobjekt

Více

Motivace. Software. Literatura a odkazy

Motivace. Software. Literatura a odkazy Využití paralelních výpočtů ve stavební mechanice Motivace Paralelní počítače Software Možnosti využití ve stavební mechanice Příklady Literatura a odkazy 1 Motivace Časová náročnost výpočtů Rozsáhlé úlohy

Více

Architektury paralelních počítačů I.

Architektury paralelních počítačů I. Architektury paralelních počítačů I. Úvod, Koherence a konzistence u SMP Ing. Miloš Bečvář s použitím slajdů Prof. Ing. Pavla Tvrdíka, CSc. Osnova přednášky Typy paralelismu a jejich využití v arch. poč.

Více

Bronislava Eršilová EXCEL 2000 pro každý den Obsah ÚVOD... 7 Co je nového v oblasti základních funkcí... 7 PRVNÍ SEZNÁMENÍ S PROGRAMEM EXCEL... 9 Instalace programu Excel 2000... 9 Minimální systémové

Více

Úvod do programování - Java. Cvičení č.4

Úvod do programování - Java. Cvičení č.4 Úvod do programování - Java Cvičení č.4 1 Sekvence (posloupnost) Sekvence je tvořena posloupností jednoho nebo více příkazů, které se provádějí v pevně daném pořadí. Příkaz se začne provádět až po ukončení

Více

Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám.

Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám. 13 Rozhraní, výjimky Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám. Doba nutná k nastudování 2 2,5 hodiny

Více

4x kombinovaný analogový vstup s vysokou pøesností (0..10V, 0..200R, -150..+260 0 C)

4x kombinovaný analogový vstup s vysokou pøesností (0..10V, 0..200R, -150..+260 0 C) EN 4x kombinovaný analogový vstup s vysokou pøesností (0..10V 0..200R -150..+260 0 C) Mìøení napìtí 0..10 V s pøesností ±0.2% a rozlišením až 0.001 V Mìøení odporu 0..200 ohm s pøesností ±0.2% a rozlišením

Více

OZNÁMENÍ ZADÁVACÍHO ØÍZENÍ / VYHLÁŠENÍ VEØEJNÉ SOUTÌŽE O NÁVRH

OZNÁMENÍ ZADÁVACÍHO ØÍZENÍ / VYHLÁŠENÍ VEØEJNÉ SOUTÌŽE O NÁVRH OZNÁMENÍ ZADÁVACÍHO ØÍZENÍ / VYHLÁŠENÍ VEØEJNÉ SOUTÌŽE O NÁVRH Èíslo objednávky (Vaše èíslo jednací) Øádné Opravné 1 1.1 Pøedmìt veøejné zakázky 1.2 Zadávací øízení 1.3 1.5 1.6 2 2.1 2.4 2.4.1 2.4.2 2.4.3

Více

Programování v jazyce JavaScript

Programování v jazyce JavaScript Programování v jazyce JavaScript Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze Pavel Štěpán, 2011 Anonymní funkce BI-JSC Evropský sociální fond

Více

Optimalizace pomocí icc/gcc - vektorizace

Optimalizace pomocí icc/gcc - vektorizace Optimalizace pomocí icc/gcc - vektorizace ICC/ICPC ICC/ICPC - překladače pro jazyky C/C++ od firmy Intel ke stažení po registraci na http://www.intel.com/cd/software/products/asmona/eng/compilers/clin/219856.htm

Více

Paralelní programování

Paralelní programování Paralelní programování přednášky Jan Outrata únor duben 2011 Jan Outrata (KI UP) Paralelní programování únor duben 2011 1 / 11 Literatura Ben-Ari M.: Principles of concurrent and distributed programming.

Více

Vážení zákazníci, dovolujeme si Vás upozornit, že na tuto ukázku knihy se vztahují autorská práva, tzv. copyright. To znamená, že ukázka má sloužit výhradnì pro osobní potøebu potenciálního kupujícího

Více

Sdílení dat mezi podprogramy

Sdílení dat mezi podprogramy Sdílení dat mezi podprogramy Datové objekty mohou být mezi podprogramy sdíleny pomocí ne-lokálních referenčních prostředí, která jsou vytvářena na základě æ explicitních modifikací (formální parametry

Více

Operační systémy. Jednoduché stránkování. Virtuální paměť. Příklad: jednoduché stránkování. Virtuální paměť se stránkování. Memory Management Unit

Operační systémy. Jednoduché stránkování. Virtuální paměť. Příklad: jednoduché stránkování. Virtuální paměť se stránkování. Memory Management Unit Jednoduché stránkování Operační systémy Přednáška 8: Správa paměti II Hlavní paměť rozdělená na malé úseky stejné velikosti (např. 4kB) nazývané rámce (frames). Program rozdělen na malé úseky stejné velikosti

Více

Programování v jazyce JavaScript

Programování v jazyce JavaScript Programování v jazyce JavaScript Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze Pavel Štěpán, 2011 Dědičnost objektů BI-JSC Evropský sociální fond

Více

PREPROCESOR POKRAČOVÁNÍ

PREPROCESOR POKRAČOVÁNÍ PREPROCESOR POKRAČOVÁNÍ Chybová hlášení V C# podobně jako v C++ existuje direktiva #error, která způsobí vypsání chybového hlášení překladačem a zastavení překladu. jazyk C# navíc nabízí direktivu #warning,

Více

Dynamické programování

Dynamické programování Dynamické programování prof. Ing. Pavel Tvrdík CSc. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010 Efektivní algoritmy (BI-EFA)

Více

Paralelní a distribuované výpočty (B4B36PDV)

Paralelní a distribuované výpočty (B4B36PDV) Paralelní a distribuované výpočty (B4B36PDV) Branislav Bošanský, Michal Jakob bosansky@fel.cvut.cz Artificial Intelligence Center Department of Computer Science Faculty of Electrical Engineering Czech

Více

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007 Úvod do programovacích jazyků (Java) Michal Krátký 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků

Více

IRAE 07/08 Přednáška č. 1

IRAE 07/08 Přednáška č. 1 Úvod do předmětu OOP Objekt Proč OOP? Literatura, osnova předmětu viz. cvičení Základní prvek OOP sw inženýrství = model reálných objektů (věcí) člověk, auto, okno (ve windows), slovník, = model abstraktní

Více

Programování v jazyce JavaScript

Programování v jazyce JavaScript Programování v jazyce JavaScript Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze Pavel Štěpán, 2011 Syntaxe 1. část BI-JSC Evropský sociální fond

Více

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu }

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu } 5. Operátor čárka, - slouží k jistému určení pořadí vykonání dvou příkazů - oddělím-li čárkou dva příkazy, je jisté, že ten první bude vykonán dříve než příkaz druhý. Např.: i = 5; j = 8; - po překladu

Více

Programování inženýrských aplikací

Programování inženýrských aplikací Výchova studentů pro aplikace řešené na výkonných počítačích České vysoké učení technické v Praze Fakulta strojní Programování inženýrských aplikací Jiří Fürst TENTO PROJEKT JE SPOLUFINANCOVÁN EVROPSKÝM

Více

1 Rozdělení paralelních úloh z hlediska jejich

1 Rozdělení paralelních úloh z hlediska jejich Martin Lísal říjen 2003 1 Rozdělení paralelních úloh z hlediska jejich spolupráce během výpočtu Podle spolupráce během výpočtu můžeme rozdělit paralelní úlohy na MPMD (Multiple Program Multiple Data) úlohy

Více

Paralelní dotazy v PostgreSQL 9.6 (a 10.0)

Paralelní dotazy v PostgreSQL 9.6 (a 10.0) Paralelní dotazy v PostgreSQL 9.6 (a 10.0) Tomáš Vondra tomas.vondra@2ndquadrant.com Prague PostgreSQL Developer Day 16. února, 2017 Agenda spojení vs. procesy v PostgreSQL využití zdrojů výhody, nevýhody,

Více

Pavel Procházka. 3. prosince 2014

Pavel Procházka. 3. prosince 2014 Jazyk C# (seminář 11) Pavel Procházka KMI 3. prosince 2014 Motivace Dnes už se prakticky nedělají jednojádrové procesory pokud potřebujeme výkon, musíme zapojit všechna jádra Často potřebujeme dělat více

Více

Vlákno (anglicky: thread) v informatice označuje vlákno výpočtu neboli samostatný výpočetní tok, tedy posloupnost po sobě jdoucích operací.

Vlákno (anglicky: thread) v informatice označuje vlákno výpočtu neboli samostatný výpočetní tok, tedy posloupnost po sobě jdoucích operací. Trochu teorie Vlákno (anglicky: thread) v informatice označuje vlákno výpočtu neboli samostatný výpočetní tok, tedy posloupnost po sobě jdoucích operací. Každá spuštěná aplikace má alespoň jeden proces

Více

Vláknové programování část VI

Vláknové programování část VI Vláknové programování část VI Lukáš Hejmánek, Petr Holub {xhejtman,hopet}@ics.muni.cz Laboratoř pokročilých síťových technologií PV192 2015 04 14 1/95 Vytváření vláken a procesů v Linuxu Vlákno vzniká

Více

Paralelizace výpočtů v systému Mathematica

Paralelizace výpočtů v systému Mathematica Paralelizace výpočtů v systému Mathematica Zdeněk Buk bukz1@fel.cvut.cz České vysoké učení technické v Praze Fakulta elektrotechnická Katedra počítačů 2010 2 paralelizace-2010-buk-eval.nb Úvod Obsah prezentace

Více

10 Balíčky, grafické znázornění tříd, základy zapozdření

10 Balíčky, grafické znázornění tříd, základy zapozdření 10 Balíčky, grafické znázornění tříd, základy zapozdření Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost příkazům balíčkům, grafickému

Více

Základní komunikační operace

Základní komunikační operace Základní komunikační operace Úvod Operace send a recieve Blokující a neblokující posílání zpráv Blokující posílání zpráv Neblokující posílání zpráv One-to-all broadcast/all-to-one reduction All-to-all

Více

Úvod do programovacích jazyků (Java)

Úvod do programovacích jazyků (Java) Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích

Více

Programování v C++ 2, 4. cvičení

Programování v C++ 2, 4. cvičení Programování v C++ 2, 4. cvičení statické atributy a metody, konstruktory 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled Přístupová práva

Více

Testování a spolehlivost. 4. Laboratoř Spolehlivostní modely 1

Testování a spolehlivost. 4. Laboratoř Spolehlivostní modely 1 Testování a spolehlivost ZS 2011/2012 4. Laboratoř Spolehlivostní modely 1 Martin Daňhel Katedra číslicového návrhu Fakulta informačních technologí ČVUT v Praze Příprava studijního programu Informatika

Více

PODPROGRAMY PROCEDURY A FUNKCE

PODPROGRAMY PROCEDURY A FUNKCE PODPROGRAMY PROCEDURY A FUNKCE Programy bez podprogramů Příklady: a) Napište program, který na obrazovku nakreslí čáru složenou ze znaků pomlčka. program Cara; b) Napište program, který na obrazovku nakreslí

Více

Algoritmizace, základy programování, VY_32_INOVACE_PRG_ALGO_01

Algoritmizace, základy programování, VY_32_INOVACE_PRG_ALGO_01 Anotace sady: Algoritmizace, základy programování, VY_32_INOVACE_PRG_ALGO_01 Autor: Blanka Sadovská Klíčová slova: Algoritmus, proměnná, diagram Stupeň a typ vzdělávání: gymnaziální vzdělávání, 3. ročník

Více

1. Zpracování událostí na pozadí aplikace

1. Zpracování událostí na pozadí aplikace 1. Zpracování událostí na pozadí aplikace Ing. Michal Bližňák, Ph.D. Ústav informatiky a umělé inteligence Fakulta aplikované informatiky UTB Zĺın Paralelní procesy a programování, Zĺın, 3. února 2014

Více

Programování v jazyce JavaScript

Programování v jazyce JavaScript Programování v jazyce JavaScript Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze Pavel Štěpán, 2011 Operátory a příkazy BI-JSC Evropský sociální fond

Více

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu. Informatika 10. 9. 2013 Jméno a příjmení Rodné číslo 1) Napište algoritmus pro rychlé třídění (quicksort). 2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus

Více

Statické proměnné a metody. Tomáš Pitner, upravil Marek Šabo

Statické proměnné a metody. Tomáš Pitner, upravil Marek Šabo Statické proměnné a metody Tomáš Pitner, upravil Marek Šabo Úvod Se statickou metodou jsme se setkali už u úplně prvního programu - Hello, world! public class Demo { public static void main(string[] args)

Více

Datové struktury. alg12 1

Datové struktury. alg12 1 Datové struktury Jedna z klasických knih o programování (autor prof. Wirth) má název Algorithms + Data structures = Programs Datová struktura je množina dat (prvků, složek, datových objektů), pro kterou

Více

C++ 0x aka C++11. Základním kamenem je třída std::thread

C++ 0x aka C++11. Základním kamenem je třída std::thread C++ 0x aka C++11 Jako jiné jazyky, např. Free/Object Pascal, se C++ ve standardu ++0x dočkal podpory vláken Výhodou je, že standardní knihovna je platformě nezávislá na úrovni zdrojového kódu Základním

Více

Programování v jazyce C pro chemiky (C2160) 3. Příkaz switch, příkaz cyklu for, operátory ++ a --, pole

Programování v jazyce C pro chemiky (C2160) 3. Příkaz switch, příkaz cyklu for, operátory ++ a --, pole Programování v jazyce C pro chemiky (C2160) 3. Příkaz switch, příkaz cyklu for, operátory ++ a --, pole Příkaz switch Příkaz switch provede příslušnou skupinu příkazů na základě hodnoty proměnné (celočíselné

Více

Funkce, intuitivní chápání složitosti

Funkce, intuitivní chápání složitosti Příprava studijního programu Informatika je podporována projektem financovaným z Evropského sociálního fondu a rozpočtu hlavního města Prahy. Praha & EU: Investujeme do vaší budoucnosti Funkce, intuitivní

Více