mini-curso programação paralela e distribuída

Download Mini-curso Programação Paralela e Distribuída

Post on 11-May-2015

6.589 views

Category:

Education

5 download

Embed Size (px)

DESCRIPTION

Mini-curso do ERAD-SP

TRANSCRIPT

  • 1.Programao Paralela e DistribudaERAD-SP 2010 31 de julho de 2010 Liria Matsumoto Sato liria.sato@poli.usp.br

2. Apresentao Introduo Arquiteturas Paralelas Programao Paralela para computadores com memria compartilhada Programao paralela para sistemas distribudos ConclusoFerramentas: CPAR e MPI Download CPAR e exemplos de programas: http://regulus.pcs.usp.br/~lms/eradsp.html 3. Introduo Viso do Mundo atual: Crescimento contnuo da demanda por processamento Necessidade de compartilhamento de Informao e de recursos Acesso a recursos computacionais de alto desempenhoComputao de alto desempenho: busca desolues 4. Introduo Aplicaes envolvendo grande capacidade de processamento: meteorologia simulao de fenmenos fsicos visualizao cientfica modelagem das variaes climticas globais em longos perodos genoma humano dinmica de fludos Estrutura e Dinmica molecular 5. Figura extrada de www.top500.org.br (acesso em maio de 2010)Demanda crescente computadores mais potentes 6. Como obter alto desempenho Aumento do desempenho do processador aumento do clock aumento de temperatura melhorias na arquitetura Processamento Paralelo: Mltiplas unidades de processamento Paralelizao da aplicao 7. Processamento Paralelo Utilizao de mltiplos processadores PPCacheCacheMemria global 8. Processamento Paralelo Paralelizao da aplicao em mltiplastarefas Tarefa1 Tarefa2 Tarefa3 9. Processamento Paralelo Paralelismo de dados dados 1 dados 2 dados 3 dados 4 dados 5P1P2P3P4P5 10. Processamento Paralelo Multi-core: multiplos ncleos no chip.AMD, INTEL: quad-core, hexa-core processorNEHALEN : quad-core, hexa-core IBM: CELL NVIDIA, ATI: GPUs (Graphics ProcessingUnit)Computadores com arquitetura paralela 11. Multi-core NEHALEM 12. Arquitetura CELL Extrado de http://www.research.ibm.com/cell/heterogeneousCMP.html 13. GPU Geforce 8800 GTX [figura extrada de Programming Massively Parallel Processors: a hands-on Aproach. David B. Kirk; Wen-mei Hwu. Elsevier Inc. 14. Processadores GPU nVIDIA Tesla S1070: 4 GPUs 4 TFlops (ponto flutuante preciso simples) 345 Gflops (ponto flutuante preciso dupla) 4 GB memria dedicada 15. Arquiteturas Paralelas Arquiteturas Paralelas: caracterizadas pela presena de mltiplos processadores que cooperam entre si na execuo de um programa. Dcada 1960 : ILLIAC IV (SIMD) SIMD: todos os processadores executam a mesma instruo sobre dados distintos MIMD: os processadores podem executar instrues distintas sobre dados distintos Multiprocessadores Multicomputadores: clusters 16. Arquiteturas ParalelasMultiprocessadores memria compartilhada P1P2P3P4 M M M M 17. Arquiteturas ParalelasCluster Switch LAN 10GbE 18. Aplicao Como paralelizar Como programar Linguagens e compiladores especficos: - multi-core, multiprocessadores: OpenMP, CPAR memria compartilhada - clusters: memria distribuda: MPI (Message Passage Interface):- diversas implementaes disponveis MPICH, OPENMPI 19. Desenvolvimento de aplicaes Definir soluo com processamento paralelo: Paralelizao de sequncias de instrues Paralelizao de laos Algumas aplicaes exigem solues mais complexas: Partes da aplicao envolvem clculos dependentes de clculos anteriores Partes da aplicao exigem uma ordenao na gerao de resultados 20. Exemplo com paralelizao de laos #pragma pfor iterate (i=0;forall i = 0 to MAXRET{ MAXRET; 1) x = ((i-0.5) * largura); for (i = 0; i < MAXRET; i++) /* calcula x */{x = ((i-0.5) * largura); local_pi=local_pi+(4.0/(1.0+ /* calcula x */ x* x));local_pi = local_pi + (4.0 / ( local_pi = local_pi * 1.0 + x * x));largura;}lock (&semaforo);local_pi = local_pi * largura; total_pi = total_pi + #pragma criticallocal_pi;{unlock (&semaforo);total_pi = total_pi + local_pi;}}} 21. Programao paralela parasistemas com memria compartilhada Sistemas com memria compartilhada: computadores multiprocessadores (processadores multicore ou no) Computadores com processador multicore. Ferramenta didtica: linguagem CPAR Extenso da linguagem C 22. Paralelizao de seqncias de instrues Mltiplas tarefas simultneas: macrotarefas Paralelizao do programa em blocos paralelos Laos e blocos paralelos CPAR: Mltiplas tarefas simultneas laos e blocos paralelos dentro de uma tarefa Blocos paralelos na funo main 23. Mltiplas tarefas simultneas tarefa1tarefa2tarefa3Macrotarefas: so procedimentos especiaisTempo execuo seqencial=ttarefa1 + ttarefa2 + ttarefa3 Tempo execuo paralela=max(ttarefa1 , ttarefa2 , ttarefa3) 24. Macrotarefas #include task body tarefa2() task spec tarefa1(); {int i; task spec tarefa2();for(i=0;i

Recommended

View more >