Co je zpracování streamů?
Stream processing je koncept počítačového programování a počítačového inženýrství, který lze použít k návrhu aplikací a hardwarových systémů. Když je použito zpracování toku, jsou data organizována do toků, které jsou potom přiváděny do uzlů nebo procesorů, které manipulují s daty v proudu, po kterých data pokračují podél cesty, takže s nimi mohou manipulovat i další uzly. Na konci toku jsou data umístěna do paměti nebo předána do aplikace koncového uživatele k použití. Systém nebo aplikace, která používá zpracování toku, funguje nejúčinněji, když jsou informace o proudu generovány konzistentně jedním nebo více zdroji, což je efektivní pro zpracování digitálního signálu (DSP), zobrazování a grafiku nebo síťový provoz s velkou šířkou pásma. Nejrozšířenější praktická aplikace zpracování proudu je ve výrobě počítačových grafických karet, ve kterých jsou procesory proudu zabudovány do grafického hardwaru, aby pomohly provádět více operací na příchozích grafických datech, jako jsou pole vrcholů.
Základ pro zpracování toku se točí kolem pojmu dat jako proudu. Namísto nakreslení informací z nesourodých zdrojů nebo zachycování zpráv z přerušovacího mechanismu se datový tok vytvoří, když je informace seskupena nějakým procesem do jediné linky nazývané proud. Datové prvky se mohou lišit, ale proud se obecně skládá z bloků stejných typů prvků, které lze zpracovat postupně.
Procesory nebo uzly použité ve zpracování toku přijímají tok a provádějí danou operaci na datech, po kterých mohou být data předána jinému uzlu pro další zpracování. Pro maximální účinnost jsou uzly určeny jako malé funkce, které jsou načteny a provedeny přímo na centrální procesorové jednotce (CPU), pomocí registrů a přímého přístupu do paměti (DMA) pro rychlost. Pokud informace v proudu mohou stát osamoceně a nejsou závislé na výsledku operací jednoho uzlu, pak lze na proudu provádět současně více operací, zatímco kompilátor programu také poskytuje rady, které umožňují velmi efektivní optimalizace.
Zpracování toku je obecně dobrým řešením pro situace, kdy jsou data neustále generována a tlačena do proudu aplikací nebo zařízením, jako je kamera, externí senzor nebo síťové připojení. Mnoho grafických karet používá proudové procesory k rychlému přeměně dat přicházejících z grafického potrubí do vykresleného rastrovaného obrazu. Některé grafické karty obsahují více procesorů nebo uzlů zabudovaných do hardwaru karty, takže zpracování toku může probíhat rychle a někdy současně, jak často je žádoucí, když se shadery používají pro trojrozměrnou (3D) grafiku.