Map Reduce

626 views

Published on

Apresentação sobre Map Reduce em arquitetura paralela em nível de cluster, cpu e gpu.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
626
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Map Reduce

  1. 1. MapReduce em GPU Inael Rodrigues
  2. 2. MapReduce: O que é isso? ● É um modelo de programação ● É um framework introduzido pelo Google ○ para suportar computações paralelas em grandes coleções de dados em clusters de computadores
  3. 3. MapReduce query Cliente Base de dados central Obtém o resultado em uma operação síncrona Cliente query Bases de dados Executa a mesma query em cada fonte de dados simultaneamente
  4. 4. MapReduce: Como funciona? Funções: ● Map ● Reduce
  5. 5. MapReduce: Como funciona? ● Função Map ○ processa um par de entrada chave/valor e gera um resultado intermediários de chave/valor ● Função Reduce ○ Uni os os resultados intermediários associados mesma chave.
  6. 6. MapReduce:Exemplos ● Contar palavras ● Contar frequência de acessos a uma URL ● Índice invertido ● Grep distribuído ● Sort distribuído
  7. 7. MapReduce:Exemplo WordCount Implementação em Hadoop
  8. 8. MapReduce:Exemplo WordCount
  9. 9. MapReduce:Implementações ● Hadoop(hadoop.apache.org/docs/stable/mapred_tutorial.html) ● Disco(http://discoproject.org/) ● Skynet(http://skynet.rubyforge.org) ● Greenplun( http://www.greenplum.com/) ● FileMap(http://mfisk.github.com/filemap/ )
  10. 10. MapReduce: Paralelo em CPU Evaluating MapReduce for Multi-core and Multiprocessor Systems Colby Ranger, Ramanan Raghuraman, Arun Penmetsa, Gary Bradski, Christos Kozyrakis∗ Computer Systems Laboratory Stanford University Phoenix, uma implementação de MapReduce para sistemas de memória compartilhada
  11. 11. MapReduce: Paralelo em CPU ● Arquitetura SMP Simultaneous Multiprocessing: contem mais de um processador que permite trabalhar em paralelo ● CMP Chip-level Multiprocessing: tem vários núcleos de execução em uma única CPU. Basicamente temos determinados subconjuntos de componentes da cpu duplicados.
  12. 12. MapReduce: Paralelo em GPU MapReduce e paralelizado a nível de ● CLUSTER(Hadoop) ● CPU(Phoenix) Seria possível paralelizar ainda mais o MapReduce a nível de GPU para obter melhor desempenho?
  13. 13. Arquitetura de uma GPU moderna ● GPU: Unidade de Processamento Gráfico ● Arquitetura: variação da categoria SIMD ● SIMT: um único fluxo de instruções e várias Threads ● Kernel (incorporando threads) aplicado a diferentes fluxos de dados
  14. 14. CPU x GPU ● Unidade lógica e aritmética (ULA) ou em inglês Arithmetic Logic Unit (ALU)
  15. 15. Fluxo de um Programa em GPU
  16. 16. Memoria da GPU ● O conjunto de thread que executam a mesma instrução é chamado de warp
  17. 17. MapReduce em GPU: Desafios Cache da GPU é cera de 10x menor que a da CPU. Para se ter ideia da grandeza do problema do acesso à memória, na NVIDIA GeForce 285 GTX, quase 7 operações de ponto flutuante podem ser executadas por um núcleo no mesmo tempo que um byte demora para ser transferido da memória externa para a GPU
  18. 18. MapReduce em GPU:Desafios Uma vez que MapReduce é uma abordagem para trabalhar com uma grande quantidade de dados, implementá lo na GPU é um grande desafio.
  19. 19. MapReduce em GPU Propostas de MapReduce em GPU ● Mars: A MapReduce Framework for Graphics Processors ● DisMaRC: A Distributed Map Reduce Framework on CUDA ● MITHRA: Multiple data Independent Tasks on a Heterogeneous Resource Architecture
  20. 20. MapReduce em GPU Falaremos sobre a implementação : Mars: A MapReduce Framework for Graphics Processors
  21. 21. Mars: A MapReduce Framework Dentre as linguagens ● OpenGL ● DirectX, ● NVIDIA CUDA ● AMD CTM ● Brook ● Accelerator ● Mars foi implementado em CUDA
  22. 22. Mars: Metodologia ● Cada thread é resposável por uma tarefa de Map ou um Reduce com um pequeno número de par chave/valor como entrada. ● Desenvolveram um esquema lock-free para gerenciar a escrita concorrente entre diferentes threads ● Implementaram o em uma máquina com uma NVIDIA GeForce 8800 GPU(G80) e um intel Quad-core CPU
  23. 23. Mars: Metodologia A GPU não pode buscar diretamente os dados do disco rígido para a memória da GPU. A CPU apoia essa tarefa em três fases: 1. Executa o I/O do arquivo na CPU e carregamos os dados do arquivo em um buffer na memória principal. 2. A API, AddMapInputRecord, fornecida em Mars para preparar os pares de entrada chave/valor do buffer na memória principal. 3. Finalmente, os pares de entrada chave/valor são copiados da memória principal para o memória da GPU
  24. 24. Mars: API
  25. 25. Mars: Configuração
  26. 26. Mars: Exemplo
  27. 27. Mars: Avaliação Foram realizados testes para os seguintes algoritmos ● String Match (SM) ● Inverted Index (II) ● Similarity Score (SS) ● Matrix Multiplication (MM) ● Page View Count (PVC): ● Page View Rank (PVR):
  28. 28. Mars: Avaliação Configuração do hardware
  29. 29. Mars: Avaliação Há melhoras de até 16 vezes no desempenho
  30. 30. Referências [1] A. Ailamaki, N. Govindaraju, S. Harizopoulos and D. Manocha. Query co-processing on commodity processors. VLDB, 2006. [2] AMD CTM, http://ati.amd.com/products/streamprocessor/. [3] Apache. Hadoop. http://lucene.apache.org/hadoop/, 2006. [4] D. Blythe. The Direct3D 10 system. SIGGRAPH 2006. [5] I. Buck, T. Foley, D. Horn, J. Sugerman, K. Fatahalian, M. Houston and P. Hanrahan. Brook for GPUs: Stream Computing on Graphics Hardware. SIGGRAPH, 2004. [6] C. Chu, S. Kim, Y. Lin, Y. Yu, G. Bradski, A. Y. Ng and K. Olukotun. Map-Reduce for machine learning on multicore. Neural Information Processing Systems, 2007. [7] D. Davis, R. Lucas, G. Wagenbreth and J. Tran and J. Moore. A GPU-enhanced cluster for accelerated FMS. High Performance Computing Modernization Program Users' Group Conference, 2007. [8] J. Dean and S. Ghemawat. MapReduce: Simplified Data Processing on Large Clusters. OSDI, 2004. [9] Z. Fan, F. Qiu, A. Kaufman and S. Y. Stover. GPU cluster for high performance computing. ACM/IEEE SuperComputing, 2004.
  31. 31. Referências [10] J. Feng, S. Chakraborty, B. Schmidt, W. Liu, U. D. Bordoloi. Fast Schedulability Analysis Using Commodity Graphics Hardware. Proc. of the 13th IEEE International Conference on Embedded and Real-Time Computing Systems and Applications, 2007. [11] Folding@home, http://www.scei.co. jp/folding. [12] D. Göddeke, R. Strzodka, J. M. Yusof, P. McCormick, S. Buijssen, M. Grajewski and S. Turek. Exploring weak scalability for FEM calculations on a GPU-enhanced cluster. Parallel Computing 33:10-11. pp. 685-699. 2007. [13] N. Govindaraju, J. Gray, R. Kumar and D. Manocha. GPUTeraSort: high performance graphics coprocessor sorting for large database management. SIGMOD, 2006. [14] A. Gress and G. Zachmann. GPU-ABiSort: Optimal Parallel Sorting on Stream Architectures. Proc. 20th IEEE Int'l Parallel and Distributed Processing Symposium (IPDPS), 2006. [15] B. He, N. Govindaraju, Q. Luo and B. Smith. Efficient gather and scatter operations on graphics processors. ACM/IEEE Supercomputing, 2007. [16] B. He, K. Yang, R. Fang, M. Lu, N. K. Govindaraju, Q. Luo, and P. V. Sander. Relational

×