RaftLib [ 1 ] es un sistema de procesamiento paralelo portátil que busca ofrecer un rendimiento extremo a la vez que aumenta la productividad del programador. Permite al programador ensamblar un programa masivamente paralelo (tanto local como distribuido) utilizando operadores sencillos similares a iostream. RaftLib gestiona la concatenación de hilos, la asignación y ubicación de memoria, y la paralelización automática de los núcleos de cómputo. [ 2 ] Permite construir aplicaciones a partir de cadenas de núcleos de cómputo que forman un grafo de cómputo paralelo de tareas y pipelines. Los programas se escriben en C++ (aunque se planean enlaces para otros lenguajes).
Ejemplo
Aquí hay un ejemplo de "Hola Mundo" a modo de demostración: [ 3 ]
import < raft > ; import < raftio > ;importar std ;usando String = std :: string ;using RaftKernel = raft :: kernel ; using RaftKernelStatus = raft :: kstatus ; using RaftMap = raft :: map ; using RaftPrint = raft :: print ;clase HelloWorld : public RaftKernel { public : HelloWorld () { output . addPort < String > ( "0" ); }virtual RaftKernelStatus run () { output [ "0" ]. push ( "Hola Mundo \n " ); return raft :: stop ; } };int main ( int argc , char * argv []) { // instanciar el kernel de impresión RaftPrint < String > p ;// instanciar el kernel hello world HelloWorld hello ;// crea un objeto de mapa RaftMap m ;// agregar kernels al mapa, tanto hello como p se ejecutan simultáneamente m += hello >> p ;// ejecutar el mapa m . exe ();devolver 0 ; }Referencias
- ↑ "RaftLib: Una biblioteca de plantillas de C++ para el procesamiento paralelo de flujos de alto rendimiento" (PDF) . Consultado el 10 de agosto de 2016 .
- ↑ "Modelado y ajuste en línea de sistemas de procesamiento de flujos paralelos" (PDF) . Consultado el 10 de agosto de 2016 .
- ↑ "Ejemplo de Hola Mundo" . Consultado el 10 de agosto de 2016 .
Enlaces externos
- Sitio web oficial
- Wiki de usuario de RaftLib
- RaftLib en GitHub
- Sesión tutorial de CPPNow RaftLib
- Una breve introducción al procesamiento de flujos de datos
- Implementación paralela de BZip2 usando RaftLib
- Familia de lenguajes de programación C++