FastFlow for Mac
| Versione | 2.0.0 |
|---|---|
| Editore | Computer Science Department |
| Data di rilascio | 30 dic 2012 |
| Data aggiunta | 30 dic 2012 |
| Requisiti del sistema operativo | Mac OS X 10.4 PPC, Mac OS X 10.5 PPC, Mac OS X 10.5, Mac OS X 10.8, Macintosh, Mac OS X 10.4, Mac OS X 10.6, Mac OS X 10.4 Intel, Mac OS X 10.7, Mac OS X 10.5 Intel |
| Requisiti | Multicore and distributed platforms. Also working on Linux. |
| Download totali | 127 |
| Prezzo | Free |
Descrizione
FastFlow è un framework di programmazione parallela C++ volto a semplificare lo sviluppo di applicazioni efficienti per piattaforme multi-core. La visione chiave di FastFlow è che la facilità di sviluppo e l'efficienza del runtime possono essere raggiunte aumentando il livello di astrazione della fase di progettazione, fornendo così agli sviluppatori un insieme adeguato di modelli di programmazione parallela che possono essere compilati in modo efficiente sulle piattaforme di destinazione.
FastFlow è concettualmente progettato come una pila di livelli che astraggono progressivamente il parallelismo della memoria condivisa a livello di core fino alla definizione di utili costrutti di programmazione a supporto della programmazione parallela strutturata su architetture multi- e multi-core di memoria condivisa coerenti con la cache e cluster di esse (vedi http://di.unito.it/fastflow).
Queste architetture includono sistemi multi-core di base, omogenei come Intel Core, AMD K10, ecc. FastFlow supporta nativamente il parallelismo di flusso poiché implementa modelli di parallelismo come grafici del flusso di dati, le cosiddette reti di streaming.
Il supporto runtime del framework FastFlow fornisce un'implementazione efficiente delle code FIFO Single-Producer-Single-Consumer (SPSC). Le code FastFlow SPSC sono prive di blocco, attesa e non utilizzano operazioni interbloccate. La coda SPSC viene utilizzata principalmente come meccanismo di sincronizzazione per i puntatori di memoria in modo consumer-produttore. Il livello successivo estende le code uno-a-uno alle sincronizzazioni molti-a-molti e ai flussi di dati, che vengono implementati utilizzando solo code SPSC e thread arbiter, fornendo così reti di streaming arbitrarie prive di blocco che richiedono poche o nessuna barriera di memoria e quindi poche invalidazioni della cache.
Il livello superiore, ovvero la programmazione di alto livello, fornisce un framework di programmazione basato su modelli paralleli. In particolare, FastFlow fornisce modelli FARM, FARM-WITH-FEEDBACK (ovvero D&C), PIPELINE, MAP e REDUCE e supporta la loro nidificazione e composizione arbitraria. Il set di modelli FastFlow può essere ulteriormente esteso creando nuovi modelli C++.