A equipe PlinyCompute da Rice University inclui (da esquerda) Shangyu Luo, Sourav Sikdar, Jia Zou, Tania Lorido, Binhang Yuan, Jessica Yu, Chris Jermaine, Carlos Monroy, Dimitrije Jankov e Matt Barnett. Crédito:Jeff Fitlow / Rice University
Cientistas da computação do Projeto Pliny, financiado pela DARPA, da Rice University acreditam que têm a resposta para todos os programadores de sistemas estressados que lutam para implementar objetos e fluxos de trabalho complexos em plataformas de 'big data' como Spark e pensaram:"Não há uma maneira melhor ? "
PlinyCompute de arroz será revelado aqui quinta-feira na conferência 2018 ACM SIGMOD. Em um artigo de conferência revisado por pares, a equipe descreve o PlinyCompute como "um sistema puramente para o desenvolvimento de alto desempenho, códigos de big data. "
Como Spark, PlinyCompute visa facilidade de uso e ampla versatilidade, disse Chris Jermaine, o professor de ciência da computação Rice liderando o desenvolvimento da plataforma. Ao contrário do Spark, PlinyCompute é projetado para suportar os intensos tipos de computação que só eram possíveis anteriormente com supercomputadores, ou computadores de alto desempenho (HPC).
"Com o aprendizado de máquina, e especialmente aprendizado profundo, as pessoas viram o que algoritmos analíticos complexos podem fazer quando aplicados a big data, "Jermaine disse." Todo mundo, de executivos da Fortune 500 a pesquisadores de neurociência, está clamando por algoritmos cada vez mais complexos, mas os programadores de sistemas têm muitas opções ruins para fornecer isso hoje. HPC pode fornecer o desempenho, mas leva anos para aprender a escrever código para HPC, e talvez pior, uma ferramenta ou biblioteca que pode levar dias para ser criada com o Spark pode levar meses para ser programada no HPC.
"O Spark foi construído para big data, e suporta coisas que a HPC não oferece, como balanceamento de carga fácil, tolerância a falhas e alocação de recursos, que são uma necessidade absoluta para tarefas com uso intensivo de dados, "disse ele." Por causa disso, e porque os tempos de desenvolvimento são muito mais curtos do que com HPC, as pessoas estão criando novas ferramentas que são executadas no Spark para tarefas complexas, como aprendizado de máquina, análise de gráficos e muito mais. "
Como o Spark não foi projetado com computação complexa em mente, seu desempenho computacional só pode ser aumentado até agora, disse Jia Zou, um cientista pesquisador do Rice e primeiro autor do artigo ACM SIGMOD que descreve o PlinyCompute.
O PlinyCompute da Rice University é uma plataforma de big data projetada especificamente para o desenvolvimento de códigos de alto desempenho e com uso intensivo de dados. Crédito:Pliny Project / Rice University
"O Spark foi desenvolvido com base na Java Virtual Machine, ou JVM, que gerencia os tempos de execução e abstrai a maioria dos detalhes relacionados ao gerenciamento de memória, "disse Zou, que passou seis anos pesquisando análises em grande escala e sistemas de gerenciamento de dados na IBM Research-China antes de ingressar na Rice em 2015. "O desempenho do Spark sofre com a dependência do JVM, especialmente à medida que as demandas computacionais aumentam para tarefas como o treinamento de redes neurais profundas para aprendizado profundo.
"PlinyCompute é diferente porque foi projetado para alto desempenho desde o início, "Zou disse." Em nosso benchmarking, descobrimos que o PlinyCompute era pelo menos duas vezes mais rápido e, em alguns casos, 50 vezes mais rápido na implementação de manipulação de objetos complexos e cálculos em estilo de biblioteca em comparação com o Spark. "
Ela disse que os testes mostraram que o PlinyCompute supera as ferramentas comparáveis para a construção de ferramentas e bibliotecas de alto desempenho.
Jermaine disse que nem todos os programadores acharão fácil escrever código para PlinyCompute. Ao contrário da codificação baseada em Java necessária para Spark, Bibliotecas e modelos PlinyCompute devem ser escritos em C ++.
"Há mais flexibilidade com PlinyCompute, "Jermaine disse." Isso pode ser um desafio para pessoas com menos experiência e conhecimento sobre C ++, mas também executamos uma comparação lado a lado do número de linhas de código que eram necessárias para completar várias implementações, e, na maior parte, não houve diferença significativa entre PlinyCompute e Spark. "
O Projeto Plínio, que foi lançado em 2014, é $ 11 milhões, Esforço financiado pela DARPA para criar ferramentas de programação sofisticadas que podem "autocompletar" e "autocorreção" de código para programadores, da mesma forma que o software completa as consultas de pesquisa e corrige a ortografia em navegadores da web e smartphones. Pliny usa aprendizado de máquina para ler e aprender com bilhões de linhas de programas de computador de código aberto, e Jermaine disse que o PlinyCompute nasceu desse esforço.
"É um aplicativo de aprendizado de máquina complexo computacionalmente, e realmente não havia uma boa ferramenta para criá-lo, "disse ele." Logo no início, reconhecemos que o PlinyCompute era uma ferramenta que poderia ser aplicada a problemas muito além do que estávamos usando no Projeto Pliny. "