RaftLib [1] es un sistema de procesamiento paralelo portátil que tiene como objetivo proporcionar un rendimiento extremo al tiempo que aumenta la productividad del programador. Permite a un programador ensamblar un programa masivamente paralelo (tanto local como distribuido) usando operadores simples similares a iostream. RaftLib maneja el subproceso, la asignación de memoria, la ubicación de la memoria y la paralelización automática de los núcleos informáticos. [2] Permite que las aplicaciones se construyan a partir de cadenas de núcleos de cómputo que forman un gráfico de cómputo paralelo de tarea y canalización. Los programas se crean en C ++ (aunque se planean enlaces de otros idiomas).
Autor (es) original (es) | Jonathan barba |
---|---|
Versión inicial | finales de 2014 |
Lanzamiento estable | 0.9 / enero 2020 |
Versión de vista previa | 1.0a / 18 de mayo de 2020 |
Escrito en | C ++ |
Sistema operativo | Linux , macOS , Windows |
Tipo | Análisis de datos, HPC, procesamiento de señales, aprendizaje automático, algoritmos, Big Data |
Licencia | Licencia Apache 2.0 |
Sitio web | www |
Ejemplo
A continuación, se muestra un ejemplo de Hello World con fines de demostración: [3]
#include #include #include #include clase hi : public raft :: kernel { public : hi () : raft :: kernel () { salida . AddPort < std :: string > ( "0" ); } balsa virtual :: kstatus run () { salida [ "0" ]. push ( std :: string ( "Hola mundo \ n " ) ); retorno ( balsa :: parada ); } };int main ( int argc , char ** argv ) { / ** instancia de print kernel ** / raft :: print < std :: string > p ; / ** instancia del kernel hello world ** / hi hello ; / ** hacer un objeto de mapa ** / raft :: map m ; / ** agregar núcleos al mapa, tanto hola como p se ejecutan simultáneamente ** / m + = hola >> p ; / ** ejecutar el mapa ** / m . exe (); return ( EXIT_SUCCESS ); }
Referencias
- ^ "RaftLib: una biblioteca de plantillas C ++ para procesamiento en paralelo de secuencias de alto rendimiento" (PDF) . http://www.jonathanbeard.io/pdf/blc15.pdf . Consultado el 10 de agosto de 2016 . Mantenimiento de CS1: ubicación ( enlace )
- ^ "Modelado y ajuste en línea de sistemas de procesamiento de flujo paralelo" (PDF) . http://www.jonathanbeard.io//pdf/beard-thesis.pdf . Consultado el 10 de agosto de 2016 .
- ^ "Ejemplo de Hello World" . http://raftlib.io . Consultado el 10 de agosto de 2016 .