Computação Intensiva em Dados 31/03/2014 GPPD/SLD @inf.ufrgs.br 1/49
Versões dos Slides v.4.0 Pedro de Botelho Marcos 2012/2 André Luís Tibola 2013/1 Iván Marcelo Carrera 2013/1 Julio C. S dos Anjos 2013/2 Julio C. S dos Anjos 2014/1 GPPD/SLD @inf.ufrgs.br 2/49
Para pensar... Visão Geral Dividir cada uma das dificuldades que eu examinasse em tantas parcelas possíveis e que fossem necessárias para melhor resolvê-las. René Descartes, O Discurso do Método. 1637. GPPD/SLD @inf.ufrgs.br 3/49
Objetivos Visão Geral Apresentar o e o Motivar para o TF Apresentar o grupo /GPPD Motivar para pesquisa GPPD/SLD @inf.ufrgs.br 4/49
Contexto Computação Intensiva em Dados Onde existe? Onde pode ser aplicado? GPPD/SLD @inf.ufrgs.br 5/49
Contexto Computação Intensiva em Dados GPPD/SLD @inf.ufrgs.br 5/49
Contexto Computação Intensiva em Dados GPPD/SLD @inf.ufrgs.br 5/49
Contexto Computação Intensiva em Dados GPPD/SLD @inf.ufrgs.br 5/49
Contexto Computação Intensiva em Dados GPPD/SLD @inf.ufrgs.br 5/49
Contexto Computação Intensiva em Dados GPPD/SLD @inf.ufrgs.br 5/49
Outline Visão Geral 1 Visão Geral 2 3 4 5 GPPD/SLD @inf.ufrgs.br 6/49
Visão Geral Data-Intensive Computing Classe de aplicações que são I/O bound; Tipicamente Terabytes ou Petabytes de dados; Podem ser também CPU bound além de I/O bound; Parte do tempo de execução é utilizado para movimentar dados; Abordagem preferencial read-once execute-many; GPPD/SLD @inf.ufrgs.br 7/49
Dimensão de BigData [Stonebraker, Madden e Dubey 2013], <http://www-01.ibm.com/software/data/bigdata/> GPPD/SLD @inf.ufrgs.br 8/49
Processamento Intensivo em Dados Principais Iniciativas de Processamento Intensivo em Dados [Dean e Ghemawat 2010],[Beckman et al. 2010],[Ananthanarayanan et al. 2013],[Carvalho et al. 2013] GPPD/SLD @inf.ufrgs.br 9/49
Outline Visão Geral 1 Visão Geral 2 3 4 5 GPPD/SLD @inf.ufrgs.br 10/49
Outline Visão Geral 1 Visão Geral 2 3 4 5 GPPD/SLD @inf.ufrgs.br 11/49
Introdução Visão Geral Criado pela Google em 2004; Processamento de grandes volumes de dados; Originalmente desenvolvido para clusters homogêneos; Utiliza um Sistema de Arquivos Distribuídos; Framework lida com o escalonamento de tarefas, tolerância a falhas e distribuição dos dados; Usuário tem apenas que programar função de Map e de Reduce. GPPD/SLD @inf.ufrgs.br 12/49
Modelo do Fluxo de Execução do GPPD/SLD @inf.ufrgs.br 13/49
Exemplo de Execução do (WordCount) Funcionamento do GPPD/SLD @inf.ufrgs.br 14/49
Escalonamento e Tratamento de Falhas Escalonamento Tarefas: Escalonamento baseado em localidade (Map); Task-Assign por heartbeat; Tarefas especulativas para melhorar o desempenho; Tolerância a falhas: Tratamento de falhas: Slaves; Tarefas; Tarefas backup, lançamento de tarefas remotas; Replicação de Dados (DFS); GPPD/SLD @inf.ufrgs.br 15/49
Tipos de aplicações Algoritmos de manipulação de dados em geral; Encadeamento de transformações sobre dados; Embarrassingly parallel problems: É possível eliminar a etapa de Reduce; Data mining, processamento de imagem/vídeo, cálculos estatísticos, ordenamento, pesquisa, geração de índices, etc. GPPD/SLD @inf.ufrgs.br 16/49
Kit Benchmark Visão Geral Kit Benchmark MRBS: Desenvolvido pelo grupo ERODS do LIG (Grenoble, França): Tipos de Aplicações: Recommendation Systems; Business Intelligence; Bioninformatics; Text processing; Data mining; GPPD/SLD @inf.ufrgs.br 17/49
Limitações Visão Geral Nem todo algoritmo pode ser expresso através do modelo ; Não há tratamento de dependência entre tarefas da mesma fase; Pode ser custoso manipular pequenas quantidades de dados. GPPD/SLD @inf.ufrgs.br 18/49
Exemplos Visão Geral Grep def map ( document, t e x t ) : for l i n e in t e x t : i f l i n e. search ( palavra ) : emit ( document, l i n e ) Por documentos def map ( document, t e x t ) : i f t e x t. search ( palavra ) : emit ( document, t r u e ) GPPD/SLD @inf.ufrgs.br 19/49
Exemplos Visão Geral Índice invertido def map ( document, t e x t ) : for palavra in t e x t : emit ( palavra, document ) def reduce ( palavra, documents [ ] ) : emit ( palavra, j o i n ( documents [ ] ) ) GPPD/SLD @inf.ufrgs.br 20/49
Outline Visão Geral 1 Visão Geral 2 3 4 5 GPPD/SLD @inf.ufrgs.br 21/49
Visão geral Visão Geral Implementação aberta do ; Desenvolvido pela Apache Software Foundation; Utiliza o HDFS como Sistema de Arquivos Distribuído; Java; Streaming. GPPD/SLD @inf.ufrgs.br 22/49
Configuração Visão Geral Pré-requisitos: Linux (ambientes de produção); Java 1.6. Modos de funcionamento: Local; Pseudo-distribuído; Distribuído; Cloud Computing. GPPD/SLD @inf.ufrgs.br 23/49
Configuração XML Propriedade Default mapred.map.tasks 2 mapred.reduce.tasks 1 mapred.tasktracker.map.tasks.maximum 2 mapred.tasktracker.reduce.tasks.maximum 2 mapred.map.tasks.speculative.execution true mapred.reduce.tasks.speculative.execution true dfs.replication 3 GPPD/SLD @inf.ufrgs.br 24/49
Outline Visão Geral 1 Visão Geral 2 3 4 5 GPPD/SLD @inf.ufrgs.br 25/49
Introdução Visão Geral Simulador para o modelo ; Baseado no SimGrid; Permite implementar e testar novos algoritmos: Escalonamento; Distribuição dos dados de entrada; Distribuição das chaves de reduce. [Kolberg et al. 2013] GPPD/SLD @inf.ufrgs.br 26/49
Arquitetura Visão Geral User input/code Platform Topology (XML file) Alternative Scheduler Algorithm Alternative Data Distribution Algorithm Deploy (XML file) Job Specification DFS JobTracker Speculative Execution TaskTracker Map Reduce SimGrid Network CPU Arquitetura do GPPD/SLD @inf.ufrgs.br 27/49
Arquivo de plataforma <?xml version= 1.0?> <!DOCTYPE p l a t f o r m SYSTEM " h t t p : / / simgrid. gforge. i n r i a. f r / simgrid. dtd " > < p l a t f o r m version= " 3 " > <AS i d = "AS0" r o u t i n g = " F u l l "> <host i d = " Host 0 " power= " 1147310512.27 " core= "2" / > <host i d = " Host 1 " power= " 1570446529.24 " core= "2" / > < l i n k i d = " l 1 " bandwidth= " 125000000.0 " latency = "1e 4" / > < route src=" Host 0 " dst=" Host 1 "> < l i n k _ c t n i d = " l 1 " / > < / route> < route src=" Host 1 " dst=" Host 0 "> < l i n k _ c t n i d = " l 1 " / > < / route> < /AS> < / p l a t f o r m > GPPD/SLD @inf.ufrgs.br 28/49
Arquivo de deploy <?xml version= 1.0?> <!DOCTYPE p l a t f o r m SYSTEM " h t t p : / / simgrid. gforge. i n r i a. f r / simgrid. dtd " > < p l a t f o r m version= " 3 " > <process host= " Host 0 " function= " master " / > <process host= " Host 1 " function= " worker " / > < / p l a t f o r m > GPPD/SLD @inf.ufrgs.br 29/49
Arquivo de configuração do job master " Host 0" reduces 100 chunk_ size 64 input_chunks 100 d f s _ r e p l i c a s 3 map_ slots 2 reduce_slots 2 GPPD/SLD @inf.ufrgs.br 30/49
Exemplo API - Custo das tarefas function task_ cost ( phase, task_ id, worker_ id ) i f phase == MAP: r e t u r n ( rand (50, 100) + i o _ c o s t ( ) ) i f phase == REDUCE: r e t u r n ( 500 + i o _ c o s t ( ) ) end function GPPD/SLD @inf.ufrgs.br 31/49
Exemplo API - Distribuição dos dados function dfs ( dfs_matrix, chunks, workers, r e p l i c a s ) for each c in chunks : for each r in r e p l i c a s : w = choose_worker ( ) d f s _ m a t r i x [ c ] [ w] = 1 end function GPPD/SLD @inf.ufrgs.br 32/49
Exemplo API - Data skew function data_skew ( map_id, reduce_id ) i f ( reduce_id % 2) == 0: r e t u r n 1024 else r e t u r n 2048 end function GPPD/SLD @inf.ufrgs.br 33/49
Outline Visão Geral 1 Visão Geral 2 3 4 5 GPPD/SLD @inf.ufrgs.br 34/49
Membros Visão Geral Julio Anjos - Doutorado; Wagner Kolberg - Mestrado; André Tibola - Mestrado; Iván Carrera - Mestrado; Maycon Bordin - Mestrado; Alexandre Miyazaki - T.G. Simulador melhorias ; Junior Barros - Bolsista IC - projeto Bio Informática; João Gross - T.G. Compilação Heterogêneo; Pedro Marin - T.G. - Simulação Turbiditos - Petróleo; Trabalhos Concluídos: Julio Anjos - Mestrado (concluído); Pedro Marcos - Mestrado (concluído); Flávio Alles - T.G. (concluído); Bruno Reckziegel Filho - T.G. (concluído). GPPD/SLD @inf.ufrgs.br 35/49
Heterogeneidade Visão Geral Problema: supõe que o ambiente de execução seja homogêneo, resultando em desempenho abaixo do esperado em ambientes heterogêneos, por exemplo, desktop grids; Objetivo: Adaptar os algoritmos de distribuição de dados e escalonamento; Situação: Finalizado, implementado no ; Membros: Julio, Alexandre. GPPD/SLD @inf.ufrgs.br 36/49
Tolerância a falhas Problema: utiliza uma arquitetura master/slave, propiciando dois pontos de falha única, o master e o namenode; Objetivo: Modelo descentralizado para evitar os pontos de falha única; Situação: Finalizado, protótipo implementado; Membros: Pedro Marcos. GPPD/SLD @inf.ufrgs.br 37/49
Verificação de Resultados Problema: Em computação voluntária é necessário verificar o resultado dos voluntários, a maioria das técnicas onera o servidor; Objetivo: Desenvolver técnica com baixa carga para o servidor e resistente a conluio; Situação: Em andamento; Membros: André. GPPD/SLD @inf.ufrgs.br 38/49
Volatilidade Visão Geral Problema: Execução em ambientes com volatilidade, por exemplo, computação voluntária, pode ser inviável devido aos custos de replicação dos dados e re-escalonamento de tarefas; Objetivo: Adicionar novos componentes na arquitetura para garantir disponibilidade dos dados; Situação: Fase final; Membros: Wagner. GPPD/SLD @inf.ufrgs.br 39/49
Escalonamento para ambientes Voláteis Problema: Escalonador não adaptado ao ambiente volátil; Objetivo: Adicionar novos componentes na arquitetura para criar escalonador dinâmico com predição estatística; Situação: Em andamento; Membros: Julio. GPPD/SLD @inf.ufrgs.br 40/49
Provisionamento de recursos Problema: É difícil especificar o tipo e a quantidade de instâncias para uma determinada run; Objetivo: Desenvolver uma expressão para o tempo de execução de aplicativos MR e sugerir instâncias; Situação: Em andamento; Membros: Iván. GPPD/SLD @inf.ufrgs.br 41/49
Green Computing Problema: Escalonador original do preocupa-se apenas com o tempo de execução; Objetivo: Implementar um novo escalonador para o que siga políticas green; Situação: Em andamento; Membros: Flávio, Wagner. GPPD/SLD @inf.ufrgs.br 42/49
Aplicações de Bio-Informática com Problema: Aplicações dedicadas ao sequenciamento genético tem baixo desempenho sobre ; Objetivo: Desenvolver aplicações para notação de patologias com mapeamento genético; Situação: Finalizado protótipo criado sobre o, analisando diversas bases genéticas; Membros: Bruno, Junior GPPD/SLD @inf.ufrgs.br 43/49
Sugestões de Trabalho Final Desenvolvimento de aplicações com o ; Testes com o na Grid 5000 Testes com o no ; Calcular o speed-up de uma app ; Implementar, no, algoritmos para ambientes heterogêneos; Implementar outros sistemas intensivos em dados como o Swift e comparar aplicações; GPPD/SLD @inf.ufrgs.br 44/49
Sugestões de Trabalho Final Testar falhas no e no cluster; Testes de desempenho utilizando DB; *Testes do benchmark MRBS; Otimizar programas ; *Testes em nuvens públicas; *Comparação de soluções MR as a service (AzureMR, Cloudera, Elastic MR). GPPD/SLD @inf.ufrgs.br 45/49
Sugestões de Trabalho Final - Detalhado Comparar o desempenho e funcionalidades de sistemas intensivos em dados.tempo estimado de trabalho: 20 dias Objetivo: Instalar o Symphony, para comparar com o. Avaliar pelo menos 3 das seguintes implementações nas plataformas como, por exemplo: - Criar aplicação worcount texto de 8 GB, 64GB, 128 GB e 256GB; - Criar aplicação que faça uma busca de similaridade entre pedaços de um DNA coletado (será fornecido o arquivo e programa) usando bases de dados do DNA públicas diferentes; - Criar aplicação que analise o índice reverso (arquivos fornecidos pelo grupo MapaReduce); - Criar aplicação livre que faça o cálculo para uma figura de Mandelbrot. GPPD/SLD @inf.ufrgs.br 46/49
Sugestões de Trabalho Final - Detalhado Avaliação de desempenho em ambiente heterogêneo. Tempo estimado de trabalho: 10 dias Objetivo: Executar simulações com o MRA++ alterando a banda e a latência de rede (necessário pequenos ajustes no código). Comparar os resultados obtidos com o. - O aluno deverá avaliar três tipos de cargas de trabalho e usar a banda de rede de 1 Mbps, 5 Mbps, 10 Mbps, 100 Mbps e 1 Gbps em cada carga. - As plataformas das máquinas devem ter configurações heterogêneas e variar de 32, 64, 128, 256, 512 e 1024 nós. - O sistema tem um gerador de plataforma próprio para esta finalidade e deve utilizar pelo menos 2 distribuições de máquinas diferentes como log-normal e Weibull (seguindo especificações pré definidas). GPPD/SLD @inf.ufrgs.br 47/49
Computação Intensiva em Dados 31/03/2014 GPPD/SLD @inf.ufrgs.br 48/49
Bibliografia I Visão Geral ANANTHANARAYANAN, R. et al. Photon: fault-tolerant and scalable joining of continuous data streams. In: Proceedings of the 2013 ACM SIGMOD International Conference on Management of Data. New York, NY, USA: ACM, 2013. (SIGMOD 13), p. 577 588. ISBN 978-1-4503-2037-5. Disponível em: <http://doi.acm.org/10.1145/2463676.2465272>. US DEPARTMENT OF ENERGY, OFFICE OF SCIENCE. SWIFT - Scalable Parallel Scripting for Scientific Computing, v. 17 de Spring 2010, (Spring 2010, v. 17). IOP Publishing, 2010. 38 51 p. ISSN 1935-0570. Disponível em: <http://www.scidacreview.org/1002/index.html>. Análise e caracterização das novas ferramentas para computação distribuída na nuvem, (WSCAD - WIC 2013). ISSN 2176-3194. DEAN, J.; GHEMAWAT, S. - A Flexible Data Processing Tool. Communications of the ACM, ACM, New York, NY, USA, v. 53, n. 1, p. 72 77, 2010. ISSN 0001-0782. KOLBERG, W. et al. - A simulator over SimGrid. Parallel Comput., Elsevier Science Publishers B. V., Amsterdam, The Netherlands, The Netherlands, v. 39, n. 4-5, p. 233 244, abr. 2013. ISSN 0167-8191. Disponível em: <http://dx.doi.org/10.1016/j.parco.2013.02.001>. STONEBRAKER, M.; MADDEN, S.; DUBEY, P. Intel "Big Data"Science and Technology Center Vision and Execution Plan. SIGMOD Rec., ACM, New York, NY, USA, v. 42, n. 1, p. 44 49, maio 2013. ISSN 0163-5808. Disponível em: <http://doi.acm.org/10.1145/2481528.2481537>. GPPD/SLD @inf.ufrgs.br 49/49