Big data - v čem je ta definice vágní - nezohledňuje definováni efek. struktur - pure hate GPU - kdy je vhodný použít (kdy nejsou cykly, násobení čísel, skoky a rekurze), když jsou data větší (režie kopírování) Kernel - co to je z pohledu programovani na GPU? OpenCL (Platforma, device (typ), host, context, queue command, kernel, buffer (arg)) Večeřící fylozofové - aloha (nejlepsi - tezke formalne dokazat), rebel (jeden se lisi), priority (nejlepsi na dokazovani), hlídání jídelny - monitor, semafor (rezie navic) Deadlock vs Livelock - (nekativni vs neaktivni cekani) jak formálně zaručíme že nenastane deadlock - precedencni graf (acyclicky) podle temporální logiky (invariant, stavy mezi nima) MPI scatter, gather, broatcast MPI reduce - ziskani neceho nad vsemi daty (min, max) stealing plánovač - neplánuju jednotlivý vlákna ale úlohy, jednoprocesorový vlákno nemá co dělat tak stealne úlohu jinýmu aby nestál flow correct vs logically correct - pokazdy stejny vysledek (deterministicky) vs pokazdy spravny vysledek ale nemusi stejny flynova taxonomie - SISD (seriovy - TURBOBOOST) SIMD (vektorove instrukce) MISD (pipeline - 4 stage...) MIMD (cokoliv - distibuovaný system) Amdahluv zákon - nemá perfektní urychlení, nepočítá s cache proc. když cache může být až superlineární urychlení transakční paměť - zamyká se jenom nějaká část pameti se kterou se pracuje registr ktery mi hlida jestli tam nekdo zapisuje volatile - processor když používá proměnnou často, dá si jí do registru, pokud hodně vláken to používá je to v registru (problém globálně proměna), aby se to nestalo označím tím proměnnou aby se neukládala do registru Spurious wakeup - spící vlákno se může vzbudit i bez toho aby splnila podmínku programátora, ... Stolen wakeup - procesor prepne kontext zrovna probuzeneho vlakna na jine a tim ho okrade Rande vous v adě - jeden pocka na zpracovani zpravy a pak pokracuje RAII - alokování zdrojů, když opustím scope samo se dealokuje GPU pamět - privatni (work item), konstantni (readonly), lokalni (work group / compute unit) globállní (pro veschny VRAM) farmer-worker (Granularita) jak určíme velikost zpráv - malý zprávy velká režie, velké zprávy čekám, optimum podle křivky (takže někdy mezi tím) Aktivní síť - programova sit - nedavat me Distribuovaná simulace - je optimistická simulace, pokračuje dopředu a předpokládá, že všechno proběhlo v pořádku, až když není něco v pořádku zašle se anti message (v přednáškách) jak se zachová uživatel Popište, k čemu je dobrá kritická sekce při synchronizaci. Vyznačuje kritické místo v kódu, kde si musíme pohlídat modifikaci paměti z více vláken Uveďte, jaké jsou základní výhody a nevýhody dynamického load-balancingu oproti statickému load-balancingu. výhody - rychlejší výpočet, pokud nelze při překladu odhadnout dobu, jakou budou jednotlivé tasky běžet; výrazně méně dochází k přehlcení systému nevýhody - režie dynamického přiřazování tasků žere čas procesoru a paměti