FastFlow for Mac
| Versión | 2.0.0 |
|---|---|
| Editor | Computer Science Department |
| Fecha de lanzamiento | 30 dic 2012 |
| Fecha Agregada | 30 dic 2012 |
| Requisitos 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 |
| Requisitos | Multicore and distributed platforms. Also working on Linux. |
| Descargas totales | 127 |
| Precio | Free |
Descripción
FastFlow es un marco de programación paralelo de C++ destinado a simplificar el desarrollo de aplicaciones eficientes para plataformas multinúcleo. La visión clave de FastFlow es que la facilidad de desarrollo y la eficiencia del tiempo de ejecución se pueden lograr elevando el nivel de abstracción de la fase de diseño, proporcionando así a los desarrolladores un conjunto adecuado de patrones de programación paralelos que se pueden compilar de manera eficiente en las plataformas de destino.
FastFlow está diseñado conceptualmente como una pila de capas que abstraen progresivamente el paralelismo de la memoria compartida en el nivel de los núcleos hasta la definición de construcciones de programación útiles que admiten la programación paralela estructurada en memoria compartida coherente con la memoria caché, arquitecturas de múltiples y muchos núcleos y clústeres de ellos. (ver http://di.unito.it/fastflow).
Estas arquitecturas incluyen sistemas básicos, homogéneos y de varios núcleos, como Intel Core, AMD K10, etc. FastFlow admite de forma nativa el paralelismo de flujo, ya que implementa patrones de paralelismo como gráficos de flujo de datos, las llamadas redes de transmisión.
El soporte de tiempo de ejecución del marco FastFlow proporciona una implementación eficiente de las colas FIFO de un solo productor, un solo consumidor (SPSC). Las colas de FastFlow SPSC no tienen bloqueos ni esperas y no utilizan operaciones entrelazadas. La cola de SPSC se utiliza principalmente como mecanismo de sincronización para punteros de memoria de forma consumidor-productor. El siguiente nivel extiende las colas de uno a uno a sincronizaciones y flujos de datos de muchos a muchos, que se implementan utilizando solo colas SPSC y subprocesos de árbitro, lo que proporciona redes de transmisión arbitrarias sin bloqueo que requieren pocas o ninguna barrera de memoria, y por lo tanto, pocas invalidaciones de caché.
La capa superior, es decir, la programación de alto nivel, proporciona un marco de programación basado en patrones paralelos. En particular, FastFlow proporciona patrones FARM, FARM-WITH-FEEDBACK (es decir, D&C), PIPELINE, MAP y REDUCE, y admite su anidamiento y composición arbitrarios. El conjunto de patrones de FastFlow se puede ampliar aún más mediante la creación de nuevas plantillas de C++.