Your SlideShare is downloading. ×
Map Reduce
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Map Reduce

325
views

Published on

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

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
325
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. MapReduce em GPU Inael Rodrigues
  • 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. 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. MapReduce: Como funciona? Funções: ● Map ● Reduce
  • 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. MapReduce:Exemplos ● Contar palavras ● Contar frequência de acessos a uma URL ● Índice invertido ● Grep distribuído ● Sort distribuído
  • 7. MapReduce:Exemplo WordCount Implementação em Hadoop
  • 8. MapReduce:Exemplo WordCount
  • 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. 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. 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. 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. 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. CPU x GPU ● Unidade lógica e aritmética (ULA) ou em inglês Arithmetic Logic Unit (ALU)
  • 15. Fluxo de um Programa em GPU
  • 16. Memoria da GPU ● O conjunto de thread que executam a mesma instrução é chamado de warp
  • 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. 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. 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. MapReduce em GPU Falaremos sobre a implementação : Mars: A MapReduce Framework for Graphics Processors
  • 21. Mars: A MapReduce Framework Dentre as linguagens ● OpenGL ● DirectX, ● NVIDIA CUDA ● AMD CTM ● Brook ● Accelerator ● Mars foi implementado em CUDA
  • 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. 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. Mars: API
  • 25. Mars: Configuração
  • 26. Mars: Exemplo
  • 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. Mars: Avaliação Configuração do hardware
  • 29. Mars: Avaliação Há melhoras de até 16 vezes no desempenho
  • 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. 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