Distributed R es una plataforma de código abierto de alto rendimiento para el lenguaje R. Divide las tareas entre varios nodos de procesamiento para reducir el tiempo de ejecución y analizar grandes conjuntos de datos. Distributed R mejora R al agregar estructuras de datos distribuidos , primitivas de paralelismo para ejecutar funciones en datos distribuidos, un programador de tareas y múltiples cargadores de datos. [2] Se utiliza principalmente para implementar versiones distribuidas de tareas de aprendizaje automático. Distributed R está escrito en C ++ y R , y conserva el aspecto familiar de R. A partir de febrero de 2015 [actualizar], Hewlett-Packard(HP) proporciona soporte empresarial para Distributed R con adiciones patentadas, como un cargador de datos rápido de la base de datos de Vertica . [3]
Desarrollador (es) | HP |
---|---|
Lanzamiento estable | 1.2.0 [1] / 22 de octubre de 2015 |
Repositorio | |
Escrito en | C ++ , R |
Sistema operativo | Linux |
Tipo | algoritmos de aprendizaje automático |
Licencia | Licencia pública general GNU |
Sitio web | www |
Historia
Distributed R se inició en 2011 por Indrajit Roy, Shivaram Venkataraman, Alvin AuYoung y Robert S. Schreiber como un proyecto de investigación en HP Labs. [4] Fue de código abierto en 2014 bajo la licencia GPLv2 y está disponible en GitHub .
En febrero de 2015, Distributed R alcanzó su primera versión estable 1.0, junto con el soporte empresarial de HP. [5]
Componentes
Distributed R es una plataforma para implementar y ejecutar aplicaciones distribuidas en R. El objetivo es extender R para la computación distribuida, mientras se conserva la simplicidad y apariencia de R. Distributed R consta de los siguientes componentes:
- Estructuras de datos distribuidas : Distributed R amplía las estructuras de datos comunes de R, como matriz, data.frame y lista para almacenar datos en varios nodos. Las estructuras de datos de R distribuidas correspondientes son darray, dframe y dlist. Muchas de las operaciones de estructura de datos comunes en R, como colSums, rowSums, nrow y otras, también están disponibles en estructuras de datos distribuidas.
- Bucle paralelo : los programadores pueden utilizar el bucle paralelo, llamado foreach, para manipular estructuras de datos distribuidas y ejecutar tareas en paralelo. Los programadores solo especifican la estructura y función de los datos para expresar aplicaciones, mientras que el tiempo de ejecución programa las tareas y, si es necesario, mueve los datos.
- Algoritmos distribuidos : versiones distribuidas de algoritmos de gráficos y aprendizaje automático comunes, como agrupación en clústeres, clasificación y regresión.
- Cargadores de datos : los usuarios pueden aprovechar las construcciones distribuidas de R para implementar conectores paralelos que cargan datos de diferentes fuentes. Distributed R ya proporciona implementaciones para cargar datos desde archivos y bases de datos a estructuras de datos distribuidos.
Integración con bases de datos
HP Vertica proporciona una estrecha integración con su base de datos y la plataforma Distributed R de código abierto. HP Vertica 7.1 incluye funciones que permiten una carga rápida y paralela desde la base de datos de Vertica a Distribute R. Este cargador de Vertica paralelo puede ser más de cinco veces (5 veces) más rápido que el uso de conectores tradicionales basados en ODBC. La base de datos de Vertica también admite la implementación de modelos de aprendizaje automático en la base de datos. Los usuarios de R distribuido pueden llamar a los algoritmos distribuidos para crear modelos de aprendizaje automático, implementarlos en la base de datos de Vertica y usar el modelo para la puntuación y las predicciones en la base de datos. Los detalles arquitectónicos de la base de datos Vertica y la integración de Distributed R se describen en el documento Sigmod 2015. [6]
Referencias
- ^ "Versión 1.2.0" . 22 de octubre de 2015 . Consultado el 20 de julio de 2018 .
- ^ Venkataraman, Shivaram; Bodzsar, Erik; Roy, Indrajit; AuYoung, Alvin; Schreiber, Robert S. (2013). "Presto: aprendizaje automático distribuido y procesamiento de gráficos con matrices dispersas" (PDF) . Conferencia europea sobre sistemas informáticos (EuroSys) . Archivado desde el original (PDF) el 1 de marzo de 2015.
- ^ Gagliordi, Natalie. "HP agrega escala a R de código abierto en la última plataforma de big data" . ZDNet . Consultado el 17 de febrero de 2015 .
- ^ Venkataraman, Shivaram; Roy, Indrajit; AuYoung, Alvin; Schreiber, Robert S. (2012). "Uso de R para procesamiento iterativo e incremental". Taller de Temas de actualidad en Cloud Computing (HotCloud) .
- ^ "HP ofrece análisis predictivo a gran escala de datos" . hp.com . 17 de febrero de 2015 . Consultado el 17 de febrero de 2015 .
- ^ Prasad, Shreya; Fard, Arash; Gupta, Vishrut; Martínez, Jorge; LeFevre, Jeff; Xu, Vincent; Hsu, Meichun; Roy, Indrajit (2015). "Habilitar el análisis predictivo en Vertica: transferencia de datos rápida, creación de modelos distribuidos y predicción en la base de datos". Congreso Internacional ACM SIGMOD sobre Gestión de Datos .