El equipo de PlinyCompute de la Universidad Rice incluye (desde la izquierda) Shangyu Luo, Sourav Sikdar, Jia Zou, Tania Lorido, Binhang Yuan, Jessica Yu, Chris Jermaine, Carlos Monroy, Dimitrije Jankov y Matt Barnett. Crédito:Jeff Fitlow / Rice University
Los informáticos del Proyecto Pliny financiado por DARPA de la Universidad de Rice creen que tienen la respuesta para todos los programadores de sistemas estresados que han luchado para implementar objetos complejos y flujos de trabajo en plataformas de 'big data' como Spark y pensaron:"¿No hay una manera mejor? ? "
Rice's PlinyCompute se dará a conocer aquí el jueves en la conferencia ACM SIGMOD 2018. En un artículo de conferencia revisado por pares, el equipo describe PlinyCompute como "un sistema puramente para desarrollar alto rendimiento, códigos de big data ".
Como chispa, PlinyCompute tiene como objetivo la facilidad de uso y una amplia versatilidad, dijo Chris Jermaine, el profesor de ciencias de la computación de Rice que lidera el desarrollo de la plataforma. A diferencia de Spark, PlinyCompute está diseñado para admitir los tipos intensos de computación que solo antes eran posibles con supercomputadoras, o computadoras de alto rendimiento (HPC).
"Con el aprendizaje automático, y especialmente el aprendizaje profundo, la gente ha visto lo que pueden hacer los algoritmos de análisis complejos cuando se aplican a big data, "Dijo Jermaine." Todos, desde ejecutivos de Fortune 500 hasta investigadores de neurociencia, clama por algoritmos cada vez más complejos, pero los programadores de sistemas tienen en su mayoría malas opciones para proporcionar eso hoy. HPC puede proporcionar el rendimiento, pero se necesitan años para aprender a escribir código para HPC, y quizás peor, una herramienta o biblioteca que puede tardar días en crearse con Spark puede tardar meses en programarse en HPC.
"Spark se creó para grandes volúmenes de datos, y es compatible con cosas que HPC no admite, como un equilibrio de carga sencillo, tolerancia a fallos y asignación de recursos, que son una necesidad absoluta para tareas intensivas en datos, ", dijo." Por eso, y debido a que los tiempos de desarrollo son mucho más cortos que con HPC, la gente está creando nuevas herramientas que se ejecutan sobre Spark para tareas complejas como el aprendizaje automático, análisis de gráficos y más ".
Dado que Spark no se diseñó pensando en la computación compleja, su rendimiento computacional solo se puede impulsar hasta ahora, dijo Jia Zou, un científico investigador de Rice y primer autor del artículo ACM SIGMOD que describe PlinyCompute.
PlinyCompute de Rice University es una plataforma de big data diseñada específicamente para desarrollar códigos de alto rendimiento y con uso intensivo de datos. Crédito:Proyecto Plinio / Universidad Rice
"Spark se basa en Java Virtual Machine, o JVM, que gestiona los tiempos de ejecución y abstrae la mayoría de los detalles relacionados con la gestión de la memoria, "dijo Zou, quien pasó seis años investigando sistemas de administración de datos y análisis a gran escala en IBM Research-China antes de unirse a Rice en 2015. "El desempeño de Spark se ve afectado por su dependencia de la JVM, especialmente a medida que aumentan las demandas computacionales para tareas como entrenar redes neuronales profundas para el aprendizaje profundo.
"PlinyCompute es diferente porque fue diseñado para un alto rendimiento desde cero, ", Dijo Zou." En nuestra evaluación comparativa, descubrimos que PlinyCompute era al menos dos veces más rápido y, en algunos casos, 50 veces más rápido en la implementación de la manipulación de objetos complejos y cálculos de estilo de biblioteca en comparación con Spark ".
Dijo que las pruebas mostraron que PlinyCompute supera a herramientas comparables para la construcción de herramientas y bibliotecas de alto rendimiento.
Jermaine dijo que no a todos los programadores les resultará fácil escribir código para PlinyCompute. A diferencia de la codificación basada en Java necesaria para Spark, Las bibliotecas y modelos de PlinyCompute deben estar escritos en C ++.
"Hay más flexibilidad con PlinyCompute, ", Dijo Jermaine." Eso puede ser un desafío para las personas que tienen menos experiencia y conocimientos sobre C ++, pero también realizamos una comparación en paralelo de la cantidad de líneas de código que se necesitaban para completar varias implementaciones, y en su mayor parte no hubo diferencias significativas entre PlinyCompute y Spark ".
El Proyecto Plinio, que se lanzó en 2014, es un $ 11 millones, Esfuerzo financiado por DARPA para crear herramientas de programación sofisticadas que pueden "autocompletar" y "autocorregir" código para programadores, de la misma manera que el software completa las consultas de búsqueda y corrige la ortografía en los navegadores web y los teléfonos inteligentes. Pliny utiliza el aprendizaje automático para leer y aprender de miles de millones de líneas de programas informáticos de código abierto, Jermaine dijo que PlinyCompute nació de este esfuerzo.
"Es una aplicación de aprendizaje automático computacionalmente compleja, y realmente no había una buena herramienta para crearlo, ", dijo." Al principio, reconocimos que PlinyCompute era una herramienta que se podía aplicar a problemas mucho más allá de lo que estábamos usando en el Proyecto Pliny ".