Stream processing: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m Bot: Sistemo sintassi template Portale. Aggiungo: informatica. |
Nessun oggetto della modifica |
||
Riga 2:
Lo '''Stream processing''' è un paradigma di [[programmazione parallela]] di tipo [[Single instruction multiple data|SIMD]] che permette ad alcune applicazioni di sfruttare semplicemente una forma limitata di elaborazione parallela. Le applicazioni utilizzano delle unità funzionali come [[Unità di calcolo in virgola mobile|FPU]] o [[Graphics Processing Unit|GPU]] senza doversi preoccupare di gestirne la sincronizzazione o la comunicazione tra le unità funzionali, sgravando il programmatore da uno dei principali problemi della programmazione parallela.
Il paradigma dello stream processing semplifica lo sviluppo dell'hardware e del software limitando le operazioni che possono essere eseguite. Questo paradigma presume di avere i dati di elaborare organizzati in gruppi (stream) e che questi possano essere elaborati applicando ad essi una serie di operazioni. Configurazioni nelle quali una serie di operazioni devono essere applicate a tutti i dati sono comuni. Spesso le operazioni vengono elaborate tramite l'utilizzo di strutture a [[pipeline dati|pipeline]] al fine di ridurre i tempi di elaborazioni e spesso vengono utilizzate delle cache on-chip al fine di ridurre gli accessi alla memoria centrale. Dato che queste strutture spesso eseguono una serie di operazioni note a priori su estesi insiemi di dati le pipeline e le [[CPU cache|cache]] on-chip si possono configurare al fine di ridurre/eliminare le latenze e i blocchi che normalmente si presentano nei microprocessori. Questo permette di realizzare unità con elevate prestazioni ma con delle cache
Durante gli [[anni 1980|anni ottanta]] lo stream processing è stato estesamente studiato durante lo sviluppo della [[programmazione dataflow]]. Un esempio di questi studi è il linguaggio SISAL (Streams and Iteration in a Single Assignment Language).
|