Nesta seção, serão analisados nove artigos sobre o uso de processadores ARM para processamento Big Data.
1. A Study of Big Data Processing Constraints on a Low-Power Hadoop cluster (KAEWKASI; SRISURUK, 2014b): Este artigo apresenta um estudo de um clus- terARM para processamento de Big Data construído com 22 placas ARM. O Ma- pReduce do Hadoop foi substituído pelo Spark e experimentos em três configura- ções de hardware diferentes foram realizados para entender as limitações e restri- ções do cluster. Tais configurações de hardware são as seguintes: Somente dois SSDs conectados ao cluster, 20 Hds conectados aos 20 Data Nodes e 20 SSDs conectados aos 20 Data Nodes. As contribuições deste artigo são as seguintes. Pri- meiramente, é apresentado um conjunto de medições da taxa de processamento de dados com as diferentes configurações do cluster. Em segundo lugar, são apresen- tadas as limitações do cluster no contexto de Big Data a partir de diferentes pers- pectivas, com foco nas restrições de E/S, consumo de energia e uso do processador. Descobriu-se que a capacidade de computação em memória pode ocupar os proces- sadores com o processamento de dados, em vez de ocupaá-los com computação da integridade dos dados do HDFS. Finalmente, verifica-se que a pilha de software Big Data desempenha um papel importante em um hardware restrito como uma placa
ARM. O cluster físico é composto por 22 Cubieboard. Cada Cubieboard é equipada com um processador ARM Cortex-A8 de 1 GHz com 1 GB de RAM. A velocidade da rede é de 100 Mbps. Os micro-benchmarks wordcount, sort e grep são listados como parte do BigDataBench. Esses três micro-benchmarks foram combinados em um programa para encontrar as palavras mais frequentes (Most Frequent Words - MFW). Os benchmarks usados nos experimentos são duas versões do MFW. A ver- são não filtrada processa o arquivo de texto diretamente enquanto a versão filtrada usa uma expressão regular (w+), para filtrar apenas palavras para processamento posterior, portanto seis combinações de configuração, ou seja, três configurações de ambiente vezes duas configurações da aplicação. A partir dos resultados expe- rimentais, pode-se concluir que o processamento de Big Data em um cluster ARM é altamente viável. O cluster processa um arquivo de 34 GB em tempo aceitá- vel, enquanto coinsuma a energia de 0,061-0,322 KWh para todos os benchmarks. Descobriu-se que a E/S do hardware é rápida o suficiente, mas o poder de processa- mento dos processadores é inadequado porque eles são gastos em grande parte para a E/S do HDFS.
2. Optimizing Performance and Power Consumption for an ARM-based Big Data cluster (KAEWKASI; SRISURUK, 2014a): Este trabalho explorou ainda mais a oportunidade de ajustar o desempenho e estudar o consumo de energia de um clus- terbaseado em 22 placas ARM. Toda a arquitetura da pilha de software, incluindo o runtime, verificação de integridade de dados e compactação de dados, é estudada e aprimorada. As contribuições deste artigo são as seguintes. Em primeiro lugar, é apresentado um conjunto de técnicas de melhoria de desempenho, incluindo seus parâmetros, para Hadoop e Spark em um cluster ARM. Em segundo lugar, a medi- ção do consumo de energia de diferentes configurações de software é apresentada. Também é interessante descobrir que o consumo de energia pode refletir o compor- tamento dos estágios de transformação do Spark. O cluster físico é composto por 22 Cubieboard. Cada Cubieboard é equipada com um processador ARM Cortex- A8 de 1 GHz com 1 GB de RAM. A velocidade da rede é de 100 Mbps. A versão filtrada do programa de palavra mais frequente (MFW) foi usada para comparar o clusterneste trabalho. Nos experimentos, havia 3 tipos de cálculos de CRC32, que são a implementação em Java, a implementação nativa da bilbioteca libhadoop e a implementação da bilbioteca libhadoop usando instruções NEON. Nos experimen- tos, foram usadas combinações de compressão e não-compressão em combinação
com essas 3 configurações de CRC32. As técnicas incluem a nova arquitetura da pilha de software, os parâmetros de tunning da JVM, a substituição de partes das bibliotecas Haddop e Spark por bibliotecas em C, tanto para verificação de dados em alta velocidade quanto para compactação de dados. Os resultados mostraram que a configuração de cluster mais rápida é quase duas vezes mais rápida do que os resultados anteriormente relatados. A configuração mais rápida pode processar o arquivo de 34 GB em aproximadamente 38 minutos.
3. A Performance Study of Big Data on Small Nodes (LOGHIN et al., 2015): Neste artigo, foi conduzido uma análise orientada por medições da viabilidade de execu- tar cargas de trabalho de análise de dados em servidores baseados em ARM e foram feitas as seguintes contribuições: a) Apresentado o primeiro estudo comparativo de desempenho de Big Data em ARM versus Intel Xeon. Esta análise abrange o de- sempenho, a eficiência energética e o custo total de propriedade (TCO) da análise de dados. A análise mostrou que não existe uma regra única para todas as configu- rações relacionadas à eficiência dos dois sistemas de servidor: às vezes, sistemas ARM são melhores, outras vezes, os sistemas Intel são melhores. Decidir quais cargas de trabalho são mais eficientes em ARM em relação aos sistemas tradicio- nais não é afetado pelo gargalo do hardware, conforme observado em computação de alto desempenho e cargas de trabalho de servidores tradicionais (TUDOR; TEO, 2013). Em vez disso, a imaturidade do software e os desafios impostos pelo ta- manho limitado da RAM e pela largura de banda são os principais culpados que comprometem o desempenho do ARM da geração atual. Devido a essas limitações, as cargas de trabalho de Big Data nos servidores ARM geralmente não podem fazer uso total do processador ou do desempenho de E/S. Durante a análise, foi identi- ficado uma série de recursos que podem melhorar o desempenho de dispositivos ARM por um fator de cinco, com pequenas modificações de software; b) Usando o modelo de TCO do Google (BARROSO; CLIDARAS; HÖLZLE, 2013), a aná- lise mostrou que os servidores ARM poderiam potencialmente levar a uma análise de dados com uso intensivo do processador quatro vezes mais barato. No entanto, trabalhos intensivos de E/S podem incorrer em custos mais altos nesses servidores ARM. O servidor ARM foi construído utilizando a placa Odroid XU com o sistema Samsung Exynos 5410. O Exynos 5410 é que um processador que possui dois ti- pos de núcleos: pequenos núcleos ARM Cortex-A7, que consomem uma pequena quantidade de energia e oferecem execução em ordem, e grandes núcleos ARM
Cortex-A15 que suporta execução de fora de ordem, mas com um maior consumo de energia. Essa arquitetura heterogênea é denominada ARM big.LITTLE. O pro- cessador tem um total de oito núcleos, divididos em dois grupos de núcleos: um grupo de quatro pequenos núcleos ARM Cortex-A7 e um grupo de quatro grandes núcleos ARM Cortex-A15. Cada núcleo tem um par de caches dedicados de dados e instruções L1, e cada grupo de núcleos tem um cache unificado L2. Embora o pro- cessador tenha oito núcleos, o Exynos 5410 permite que os quatro grandes núcleos ou os quatro pequenos núcleos fiquem ativos em um momento. Para economizar energia, quando um grupo está ativo, o outro é desligado. A frequência de clock dos pequenos núcleos varia de 250 a 600 MHz, e a dos grandes núcleos varia de 600 MHz a 1,60 GHz. O escalonamento dinâmico de tensão e frequência (DVFS) é empregado para aumentar a frequência do núcleo em resposta ao aumento na utili- zação do processador. Foi comparado os Odroid XU com os Intel Xeon. Foi usado o sistema de servidor Supermicro 813M 1U com base em dois processadores In- tel Xeon E5-2603 com quatro núcleos cada. Este sistema tem 8 GB de memória DDR3, 1 TB de disco rígido e placa de rede Ethernet de 1 Gbit. Foi Caracterizado a execução de Big Data em ARM em comparação com os Intel Xeon, avaliando o desempenho do HDFS, do Hadoop MapReduce e das estruturas de processamento de consulta, como MySQL e Shark. A análise foi baseada na medição do tempo de execução e da energia total consumida no nível do cluster. Os resultados mos- tram que não existe uma regra para a eficiência dos dois tipos de processadores. No entanto, o tamanho pequeno da memória, pequena largura de banda de E/S e ima- turidade de software fazem com que a vantagem de menor consumo de energia dos processadores ARM seja difícil de ser utilizada. Para cargas de trabalho intensivas de E/S, como o Terasort, são necessários seis nós ARM para executar o trabalho de um Xeon com 75% de uso. Por fim, para o processamento de consultas, os servido- res ARM são muito mais eficientes em termos de energia, ao custo de uma taxa de transferência um pouco menor. Além disso, pequenos acessos aleatórios ao banco de dados são ainda mais rápidos no ARM devido à menor latência de E/S. Por outro lado, a varredura sequencial do banco de dados se beneficia mais do tamanho maior da memória dos servidores Xeon, que funciona como cache.
4. Big Data on Low Power Cores (MALIK; HOMAYOUN, 2015): Neste artigo, é apresentado a análise de potência e desempenho dos aplicativos de Big Data na plataforma Intel Atom. Além disso, foi realizada a análise EDP (Energy-Delay
Product) para avaliar os trade-offs entre potência e desempenho nos processadores Atom e Xeon. Este artigo faz as seguintes contribuições principais: a) Foi analisado o desempenho computacional e energia consumida no processamento de aplicati- vos de Big Data em duas plataformas de servidores, uma com o Intel Xeon e outro com Intel Atom; b)Foi analisado os resultados do EDP para avaliar o trade-off entre desempenho computacional e energia consumida no Atom e no Xeon; c) Foi avali- ado a capacidade de processamento e eficiência sob diferentes tamanhos de dados (por nó) usando duas métricas – Dados processados por segundo (DPS) e Dados processados por joule (DPJ) – para entender o impacto do tamanho de Big Data por nó no desempenho computacional e na energia consumida. Foi conduzido o estudo em dois servidores, Intel Xeon e Intel Atom. O Intel Xeon E5 vem com dois processadores Intel E5-2420 que incluem seis núcleos com três níveis de hierarquia de cache. O Intel Atom C2758 tem 8 núcleos por nó e uma hierarquia de cache de dois níveis. As cargas de trabalho de Big Data estudadas – microbenchmarks e ben- chmarks de nível de aplicação – neste artigo são programas representativos de 15 domínios diferentes, como grafos e mineração de dados, plataforma de análise de dados e aplicativos de busca de padrões, que são frequentemente usados no mundo real. Foi mostrado que, embora os núcleos do Intel Xeon ofereçam alta eficiência de desempenho para aplicações tradicionais em comparação com Intel Atom, eles não são eficientes no consumo de energia para processar aplicações Big Data. Os resultados apresentados mostram que o Intel Atom é visivelmente mais eficiente para o processamento de Big Data em vários tamanhos de dados. Foi avaliada a capacidade de processamento e a eficiência em diferentes tamanhos de dados para entender o impacto do tamanho de Big Data por nó na eficiência de energia e de- sempenho. Os resultados ilustram que a eficiência de desempenho indicada pelo DPS e pelo DPJ é decidida pelo tipo de aplicação, sua complexidade (intensidade de E/S versus computação) e o tamanho dos dados.
5. Characterizing Hadoop Applications on Microservers for Performance and Energy Efficiency Optimizations (MALIK et al., 2016): Neste artigo, foram investigados os parâmetros de nível de arquitetura e sistema para otimizar a eficiência energética dos aplicativos de Big Data executados em microservidores, empregando núcleos de baixo consumo de energia. Várias aplicações de Big Data usam o Hadoop Ma- pReduce para realizar sua análise em conjuntos de dados de grande escala. O ajuste dos parâmetros de configuração do Hadoop é vital para o desempenho e otimização
de energia das aplicações em execução. As principais contribuições deste artigo são: a. Análise do impacto de vários parâmetros de ajuste nos níveis de sistema (número de mapeadores em execução simultaneamente por nó de microsservidor e tamanho de bloco de dados) e arquitetura (tensão e frequência de operação) no desempenho, consumo de energia e eficiência energética de micro-benchmarks do Hadoop; b. Análise de como a interação de vários parâmetros de ajuste nos ní- veis de sistema e arquitetura afeta a potência e a sensibilidade do desempenho das aplicações do Hadoop. O estudo foi conduzido no servidor Intel Atom C2758 que possui 8 núcleos de processamento por nó e dois níveis de hierarquia de cache. Testado o desempenho de micro-benchmarks representativos do Hadoop, incluindo wordcount, Sort, Grep e TeraSort no Hadoop 1.2.1. Os parâmetros de configuração padrão do Hadoop não são ideais para maximizar o desempenho e a eficiência ener- gética. O aumento de velocidade obtido ao aumentar o número de núcleos dispo- níveis supera a sobrecarga de energia associada ao aumento do número de núcleos. Embora a utilização de todos os núcleos disponíveis forneça a máxima eficiência energética entre as aplicações estudadas, o ajuste simultâneo da frequência e tama- nho de bloco de dados reduz a dependência do número máximo de núcleos. Isso ajudaria a liberar núcleos em cada nó para acomodar o agendamento de aplicações sem sacrificar a eficiência de energia. Aplicações de E/S podem ser executados em uma frequência menor para economizar energia. A perda de desempenho pode ser compensada de forma significativa, aumentando o número de mapeadores.
6. An ARM-Based Hadoop Performance Evaluation Platform: Design and Imple- mentation (FAN et al., 2015): Avaliar o desempenho do cluster Hadoop baseado em ARM, considerando a largura de banda da rede, a carga de trabalho, o desempe- nho e o TCO do cluster. Neste artigo, foi usado a Cubieboard 4 baseado em Cortex A15 para criar um cluster com o Hadoop e o Spark. Para verificar se os clusters ARM são adequados para aplicativos com uso intensivo de dados ou não, tentado avaliar o desempenho e buscar restrições. Foram testadas três configurações dife- rentes para verificar o desempenho otimizado do cluster com a mesma carga de trabalho no mesmo aplicativo em uma abordagem de escala fraca. As contribuições do artigo são: a) Avaliar a viabilidade de um cluster Hadoop com base no chip líder atual no domínio móvel com aplicativos comuns; b) Apresentar um método simples para estimar a eficiência do cluster, abstraindo o tempo de execução da CPU de um pequeno cluster como protótipo e aprendendo a experiência; c) Propor
uma arquitetura híbrida personalizada com nó mestre com processador com mais poder computacional e nós escravos com processadores de baixo consumo de ener- gia (cluster ARM). Caracterizada a execução intensiva de dados variando o número de Cubieboard4 entre 1 a 5, avaliando o desempenho de algumas aplicações conhe- cidos, como HPL, leitura/gravação no HDFS, wordcount, k-Means, comparações entre o Map-Reduce e o Spark RDD. A análise é baseada na medição do tempo de execução, throughput, eficiência da CPU e consumo de energia. Nas três configura- ções de teste, foram executados sistematicamente as aplicações para medir e avaliar o desempenho e a eficiência do cluster para verificar a melhoria. Os resultados demonstraram que o desempenho do Spark RDD no cluster ARM é significativa- mente melhor do que o Map-Reduce não otimizado. A limitação das interfaces de E/S da Cubieboard4 restringiu o desempenho, uma vez que a largura de banda do clusternão pode corresponder à capacidade computacional.
7. On the Use of Microservers in Supporting Hadoop Applications (ANWAR; KRISH; BUTT, 2014): Neste artigo, é apresentado um estudo quantitativo para explorar a eficácia dos microsservidores no suporte às aplicações do Hadoop, que visa con- siderar todos os fatores de interesse, ou seja, desempenho, consumo de energia, confiabilidade, custos operacionais, facilidade de uso, etc. Especificamente, este documento faz as seguintes contribuições: a. Personalizada a pilha de software do Hadoop para executar em cinco configurações de hardware diferentes; b. Portado, ajustados e medido o desempenho, a energia e o custo de seis aplicativos Hadoop representativos nos hardware estudados; c. Definida uma nova métrica, a PerfEC, para entender as interações entre as características de energia, custo e desempenho dos aplicativos estudados e do hardware; d. Utilizado o PerfEC para identificar a melhor configuração de hardware para os aplicativos estudados. Na análise usando um testbed real revelou que, para aplicativos como TeraGen, RandomWriter, word- count, Sort, TeraSort e Grep, os microservidores baseados em ARM podem produ- zir duas ordens de magnitude de melhor eficiência em termos de PerfEC do que os servidores tradicionais.
8. Performance and Energy evaluation of Spark applications on low-power SoCs (STAMELOS; SOUDRIS; KACHRIS, 2016): Neste artigo, foi comparada a efici- ência energética de SoCs de 64 bits de baixa potência que são amplamente utiliza- dos em aplicações embarcadas com um processador de alto desempenho em termos
de throughput e consumo de energia utilizando o framework Spark. As princi- pais contribuições deste trabalho são as seguintes: a) Um mapeamento eficiente do Apache Spark em SoCs de baixo consumo de energia; b) Uma avaliação completa do desempenho em termos de tempo de execução e consumo de energia; c) Uma análise detalhada dos possíveis aplicações Spark que poderiam se beneficiar mais dos processadores baseados em SoC de baixa potência. Foi comparada a eficiência energética de um típico processador de alto desempenho com dois processadores de baixo consumo de energia, baseados na arquitetura ARM. Ambos os processadores baseados em ARM são compostos por 4 núcleos ARM de 64 bits (A53). A placa Raspberry é baseada no Broadcom SoC (BCM2835) fabricado com tecnologia de processo de 40nm e com clock de 1.2GHz. A segunda placa é da Snapdragon e é baseada no 410 SoC da Qualcomm. Este processador também é compostos por 4 núcleos ARM de 64 bits e tem clock de 1.2GHz. No entanto, este SoC é fabricado com tecnologia de processo de 28nm. Como plataforma de referência, o processa- dor Xeon E52650 foi selecionado com 8 núcleos com clock de 2,6 GHz. Também foi testado um processador para laptops baseado nos processadores Intel i5 para comparar com os processadores Xeon de alto desempenho e com os SoCs de baixa potência. Para avaliar o desempenho e a eficiência energética dos SoCs de baixa potência, usamos um conjunto de aplicativos Spark como referência. O Spark for- nece um amplo conjunto de aplicativos de referência que podem ser usados como micro-benchmarks. Na avaliação atual, avaliamos três aplicativos representativos do domínio de aprendizado de máquina (Linear Regression, Logistic Regression e Kmeans) e três aplicativos representativos do domínio de computação de grafos (CC, PageRank e Triangles). Os resultados mostraram que os processadores basea- dos em ARM são 8 a 11 piores em termos de tempo total de execução. No entanto, devido ao menor consumo de energia, eles têm o potencial de oferecer uma eficiên- cia energética muito melhor. Para aplicações de aprendizado de máquina baseados em Spark, eles podem fornecer até 3x melhor eficiência energética, enquanto que para cálculos de grafos pode fornecer até 3,5 melhor eficiência energética. Por- tanto, nos casos em que há maior preocupação com a eficiência energética e não com o tempo de execução, os servidores baseados em ARM podem fornecer uma alternativa promissora para reduzir a energia e o TCO dos data centers.
9. System and Architecture Level Characterization of Big Data Applications on Big and Little Core Server Architectures (MALIK et al., 2015): É apresentado uma
análise em nível de sistema e arquitetura de aplicações Big Data em duas plata- formas distintas; Uma plataforma representa os processadores de alto desempenho, conhecido como Intel Xeon e a outra plataforma representa os processadores de baixo consumo de energia, conhecido como Intel Atom. As contribuições do artigo são: a) Analisar as medições de desempenho e potência de aplicações Big Data em duas plataformas de servidores, uma com o Intel Xeon e a outro com Intel Atom. Foram comparamos os resultados com aplicativos tradicionais de CPU, paralelos e scaleout; b) Analisar o desempenho de tarefas em uma análise de Big Data, exe- cutando várias pilhas de software, incluindo o Hadoop MapReduce e o Apache Mahout. Isso inclui ler e gravar em HDFS, classificar, compactar e descompactar, mapear e reduzir e chamar várias bibliotecas padrões; c) Demonstrar como o tama- nho dos dados, o tipo de aplicação (por exemplo, intensivo em E/S e intensivo em computação) e as restrições de desempenho afetam a escolha de servidores de alto desempenho versus servidores de baixo consumo para processamento eficiente de Big Data; d) Mostrar como utilizar um acelerador, como o FPGA, afeta a escolha do tipo de processador principal (alto desempenho ou baixo consumo de energia); e) Realizar uma análise abrangente da microarquitetura para encontrar os gargalos de desempenho em processadores de alto desempenho versus processadores de baixo