Computação Paralela - Uma Abordagem Geral

954 views
874 views

Published on

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

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

No notes for slide

Computação Paralela - Uma Abordagem Geral

  1. 1. Computação ParalelaComputação ParalelaMSc. Igor José Ferreira de Freitasigorj@dmo.fee.unicamp.brAnalista de Sistemas – OrbisatDoutorando em Eng. ElétricaFaculdade de Eng. Elétrica e Computação / UNICAMPProf. Ciências da Computação / Sistemas de InformaçãoUniversidade Anhanguera - CampinasUma Abordagem GeralUma Abordagem Geral
  2. 2. Computação Paralela - igorj@dmo.fee.unicamp.br 2AgendaAgendaIntroduçãoConceitosTecnologias e FerramentasPesquisas & AplicaçãoConclusão
  3. 3. Computação Paralela - igorj@dmo.fee.unicamp.br 3IntroduçãoIntroduçãoMotivaçãoMotivaçãoBusca por maior desempenho;Aplicações intrinsecamente paralelas;Alto custo dos supercomputadores tradicionais;Desenvolvimento de redes de computadores de altavelocidade;Resolução de sistemas de grande porte.
  4. 4. Computação Paralela - igorj@dmo.fee.unicamp.br 4ConceitosConceitosConcorrênciaConcorrência Concorrência em:− Sistemas Operacionais ModernosSistemas Operacionais Modernos Suporte a multitarefa Aproveitamento do processamento Concorrência com um ou mais “cores” Uso de “pipes” em UNIX systems Foco na robustez e garantia de execução A concorrência é inerente ao SO
  5. 5. Computação Paralela - igorj@dmo.fee.unicamp.br 5Concorrência em:− Programas ParalelosProgramas ParalelosEncontrar a concorrência é o desafio!Troca de mensagens entre os processosO foco é: performanceMinimizar o tempo de processamento deum processoConceitosConceitosConcorrênciaConcorrência
  6. 6. Computação Paralela - igorj@dmo.fee.unicamp.br 6ConceitosConceitosConcorrência vs ParalelismoConcorrência vs ParalelismoTodos os programasTodos os programasProgramas ConcorrentesProgramas ConcorrentesProgramas ParalelosProgramas Paralelos
  7. 7. Computação Paralela - igorj@dmo.fee.unicamp.br 7ConceitosConceitosDefinições importantesDefinições importantesParalelismoParalelismo GeométricoGeométrico:: o conjunto de dados édividido e cada processador executa uma cópia doprograma em seu conjunto de dados.ParalelismoParalelismo “Processor“Processor Farm”Farm”:: Processadormestre que supervisiona um grupo deprocessadores escravos.Paralelismo PipelineParalelismo Pipeline:: A aplicação é dividida emtarefas específicas que são distribuídas aosprocessadores de forma pipeline.
  8. 8. Computação Paralela - igorj@dmo.fee.unicamp.br 8ConceitosConceitosDefinições importantesDefinições importantesParalelismo:Paralelismo: Uso simultâneo de dois ou maisprocessadores para resolver um problema de formamais rápida que processamento sequencial.float a = E + A;float b = E + A;float c = E + C;float d = E + D;float r = a + b + c + d;
  9. 9. Computação Paralela - igorj@dmo.fee.unicamp.br 9ConceitosConceitosTaxonomiaTaxonomiaTaxonomia de Flynn− Single Instruction, Single Data - SISDSingle Instruction, Single Data - SISDUma instrução processa um únicodadoModelo von Neumann
  10. 10. Computação Paralela - igorj@dmo.fee.unicamp.br 10ConceitosConceitosTaxonomiaTaxonomia• Single Instruction, Multiple Data – SIMDSingle Instruction, Multiple Data – SIMD• Uma instrução, multiplos dados• Cada processador executa a mesma instrução, porém,em dados diferentes• Requer pouca comunicaçãoentre os processos, ideal para: Processamento de Sinais
  11. 11. Computação Paralela - igorj@dmo.fee.unicamp.br 11ConceitosConceitosTaxonomiaTaxonomia Multiple Instruction, Single Data - MISDMultiple Instruction, Single Data - MISD− Múltiplas instruções, único dado− Arquitetura não aplicável Multiple Instruction, Multiple Data – MIMDMultiple Instruction, Multiple Data – MIMD− Múltiplas instruções, múltiplos dados− Cada unidade de processamento processa sua unidade deinformação− Arquitetura mais utilizada
  12. 12. Computação Paralela - igorj@dmo.fee.unicamp.br 12ConceitosConceitosTaxonomiaTaxonomia
  13. 13. Computação Paralela - igorj@dmo.fee.unicamp.br 13ConceitosConceitosTaxonomiaTaxonomiaMultiple Instruction, Multiple Data – MIMD pode serMultiple Instruction, Multiple Data – MIMD pode serclassificado de acordo com a organização de memória:de acordo com a organização de memória:Memória compartilhadaMemória compartilhada− Todos os processos compartilham um único espaçode memória− Comunicação através de escrita e leitura de variáveiscompartilhadas− SMPs – Symmetric MultiprocessorsSMPs – Symmetric MultiprocessorsFácil programaçãoOverhead na comunicação entre processadore memória
  14. 14. Computação Paralela - igorj@dmo.fee.unicamp.br 14ConceitosConceitosTaxonomiaTaxonomiaNão escalável pois quanto mais processadores,Não escalável pois quanto mais processadores,mais overhead de comunicaçãomais overhead de comunicação
  15. 15. Computação Paralela - igorj@dmo.fee.unicamp.br 15ConceitosConceitosTaxonomiaTaxonomia - Tipos de MIMD- Tipos de MIMDNUMA – Nonuniform Memory Access ou Cache-coherentNUMA – Nonuniform Memory Access ou Cache-coherentNUMANUMA− Memória compartilhada e acessada por todas asunidades de processamento, porém:− Alguns blocos de memória estão fisicamenteassociados com outras unidades de processamento− Reduz overhead, aumenta escalabilidade− Problemas: pode reduzir tempo de resposta aos dadosCache minimiza o delayCache minimiza o delay
  16. 16. Computação Paralela - igorj@dmo.fee.unicamp.br 16ConceitosConceitosTaxonomiaTaxonomiaIlustração da arquitetura NUMAIlustração da arquitetura NUMA
  17. 17. Computação Paralela - igorj@dmo.fee.unicamp.br 17ConceitosConceitosTaxonomiaTaxonomiaMemórias distribuídasMemórias distribuídas- Cada processo tem seu próprio espaço de memória- Cada processo tem seu próprio espaço de memória- Comunicação via “Message Passing”- Comunicação via “Message Passing”- Arquitetura de comunicação define velocidade no acesso- Arquitetura de comunicação define velocidade no acessoa dadosa dados
  18. 18. Computação Paralela - igorj@dmo.fee.unicamp.br 18ConceitosConceitosTaxonomiaTaxonomiaMemórias distribuídas:Memórias distribuídas:− MPP – Massively Parallel Processors− ClustersMPP:MPP:− Processadores e Infra-estrutura de Rede estãofortemente acoplados− Altamente escalável− Milhares de processadores em um único sistema
  19. 19. Computação Paralela - igorj@dmo.fee.unicamp.br 19ConceitosConceitosTaxonomiaTaxonomiaClustersClusters− Composto de PCs X86, AMD64 em infra-estruturade rede “comum” Ethernet Gigabit, Fibra Óptica− PCs com Linux são chamados de Beowulf Clusters− Reaproveitamento de MáquinasSistemas Híbridos:Sistemas Híbridos:− Clusters em diferentes locais− Cada Cluster possui doi ou mais processadores commemória compartilhadaGridsGrids− Sistemas distribuídos, heterogêneos
  20. 20. Computação Paralela - igorj@dmo.fee.unicamp.br 20ConceitosConceitosTaxonomiaTaxonomiaGridsGrids− Sistemas distribuídos− Recursos Heterogêneos− Conectados via LANS ou WANS− Multiplica poder de supercomputadores− Compartilhar recursos através de MiddlewareArmazenamentoProcessamentoInstrumentosOutros
  21. 21. Computação Paralela - igorj@dmo.fee.unicamp.br 21ConceitosConceitosAmbientes de Programação ParalelaAmbientes de Programação ParalelaAbstração do hardware paraleloVisão em ferraments, ambiente de programação e APIsDevido a inúmeras linguagens e ambientes houve umapadronização:− OpenMP para Memória Compartilhada− MPI para Memória DistribuídaOpenMPOpenMP− Diretiras de compilação− Apropriado para SMPs− C, C++ e Fortran− Paralelismo em Código Sequencial
  22. 22. Computação Paralela - igorj@dmo.fee.unicamp.br 22ConceitosConceitosAmbientes de Programação ParalelaAmbientes de Programação ParalelaMPI – Message Passing InterfaceMPI – Message Passing Interface− Biblioteca com rotinas para troca de mensagens− Gerenciamento de processos− Difícil de programar− Memória distribuídaArquitetura HíbridaArquitetura Híbrida− MPI + OpenMP− Múltiplos Nós (MPI) sendo que cada Nó podepossuir dois ou mais processadores e aplicardiretivas OpenMP
  23. 23. Computação Paralela - igorj@dmo.fee.unicamp.br 23ConceitosConceitosAmbientes de Programação ParalelaAmbientes de Programação Paralela• MPI 2.0• Criação dinâmica deprocessos• I/O paralelo• One-sided communication• Leitura e escritatransparente para oprogramador,independente de outrosprocessos
  24. 24. Computação Paralela - igorj@dmo.fee.unicamp.br 24ConceitosConceitosDefinições importantesDefinições importantesTarefaTarefa− Sequência de instruções processadas em umbloco− Este bloco corresponde a uma parte de umalgoritmo− O primeiro passo para desenvolver umsistema parelo é pensar nas tarefas que esteterá
  25. 25. Computação Paralela - igorj@dmo.fee.unicamp.br 25ConceitosConceitosDefinições importantesDefinições importantesUnidade de ExecuçãoUnidade de ExecuçãoCada tarefa deverá ser executada em uma UEUE = Processo ou ThreadProcessoProcesso: conjunto de recursos para execução deinstruções,- I/O- Pilha de execução- Gerenciadores de sinais- IDs de usuários e grupos e controle de acessoThread:Thread: Associada a um processo onde cada uma divideos recursos deste processo
  26. 26. Computação Paralela - igorj@dmo.fee.unicamp.br 26ConceitosConceitosDefinições importantesDefinições importantesUnidade de Processamento (UP):Unidade de Processamento (UP):− Elemento de hardware que processa um conjuntode dados− Depende do contexto, exemplos:Clusters: cada PC (nó) é uma UPEm cada PC, em que aplica-se SMP, cadaProcessador é uma UPLoad Balancing:Load Balancing:− Tarefas mapeada em UE, UE mapeadas em UPTarefas mapeada em UE, UE mapeadas em UP− Distribuição inteligente de carga (processamento)Distribuição inteligente de carga (processamento)
  27. 27. Computação Paralela - igorj@dmo.fee.unicamp.br 27ConceitosConceitosDefinições importantesDefinições importantesRace conditionsRace conditions- Erro comum em programas paralelos- Ocorre quando a saída de um programa sofre alteraçõesdevido a mudanças de alocação nas UE- Erro mais conhecido como “Alocação não controlada deThreads”- Mesmo programa provê resultados diferentes rodandono mesmo ambiente e com os mesmos dados- Causados por erros de sincronização em ambientes dememória compartilhada
  28. 28. Computação Paralela - igorj@dmo.fee.unicamp.br 28ConceitosConceitosDefinições importantesDefinições importantesDeadlocksDeadlocks- Ocorre quando duas ou mais tarefas entram em um ciclode dependência no qual cada tarefa depende da outrapara finalizar uma instrução.Exemplo:- Tarefa A espera uma mensagemda Tarefa B para continuar suaexecução, enquanto que, a TarefaB espera uma resposta da TarefaA para continuar sua execução.
  29. 29. Computação Paralela - igorj@dmo.fee.unicamp.br 29Tecnologias e FerramentasModelo de memória compartilhadaModelo de memória compartilhada− Posix threadsPosix threads− Win32 threadsWin32 threads− JavaJava− OpenMPOpenMP
  30. 30. Computação Paralela - igorj@dmo.fee.unicamp.br 30Tecnologias e FerramentasTecnologias e FerramentasModelo de memória distribuídaModelo de memória distribuída- Message Passing Interface – MPI- Message Passing Interface – MPIProgramação GPUProgramação GPU- OpenCL – AMD e Khronos Group- OpenCL – AMD e Khronos Group- CUDA – Nvidia- CUDA – Nvidia- ATI Stream- ATI StreamArquitetura heterogêneaArquitetura heterogênea- IBM Cell- IBM Cell- OpenCL – AMD e Khronos Group- OpenCL – AMD e Khronos Group- AMD Fusion- AMD Fusion- Intel Sandy Bridge Architecture- Intel Sandy Bridge Architecture
  31. 31. Computação Paralela - igorj@dmo.fee.unicamp.br 31Tecnologias e FerramentasTecnologias e FerramentasComputação Comercial – GPU Banco de DadosProgramação GPU aplicada a Banco de DadosProgramação GPU aplicada a Banco de Dados- Área de altos investimentos- Área de altos investimentos- Ótimas oportunidades- Ótimas oportunidades- Buscas em banco de dados gigantescos requer milhões de- Buscas em banco de dados gigantescos requer milhões deregistros por segundoregistros por segundo- Oracle e Universidade de- Oracle e Universidade deCalifórnia, EUACalifórnia, EUAdesenvolvem pesquisas emdesenvolvem pesquisas emDB GPUDB GPU
  32. 32. Computação Paralela - igorj@dmo.fee.unicamp.br 32Tecnologias e FerramentasTecnologias e FerramentasComputação Comercial – GPU Banco de DadosComputação Comercial – GPU Banco de DadosVantagensVantagens− GPU pode oferecer Teraflops (um trilhão de operações porGPU pode oferecer Teraflops (um trilhão de operações porsegundo) de poder computacionalsegundo) de poder computacional− Menor consumo que CPUsMenor consumo que CPUs− Até 30x mais poder computacional que CPUsAté 30x mais poder computacional que CPUs− Estão sendo desenvolvidos uma variedades de algoritmosEstão sendo desenvolvidos uma variedades de algoritmosparalelo de busca para GPUsparalelo de busca para GPUsDesvantagens (desafios)Desvantagens (desafios)− Latência de transferência entre PC e GPULatência de transferência entre PC e GPU− Nem todo problema é “paralelizável”Nem todo problema é “paralelizável”
  33. 33. Computação Paralela - igorj@dmo.fee.unicamp.br 33Pesquisas & AplicaçãoPesquisas & AplicaçãoProcessamento de Sinais - RADARProcessamento de Sinais - RADARRadar (Radio Detection and Range)Radar (Radio Detection and Range)− Detectar objetos a longas distâncias através daDetectar objetos a longas distâncias através dareflexão de ondas eletromagnéticasreflexão de ondas eletromagnéticasComposição de um RadarComposição de um Radar− AntenaAntena− Hardware de Radio Frequência (transmissão eHardware de Radio Frequência (transmissão erecepção)recepção)− ProcessamentoProcessamento− VisualizaçãoVisualização
  34. 34. Computação Paralela - igorj@dmo.fee.unicamp.br 34Pesquisas & AplicaçãoPesquisas & AplicaçãoProcessamento de Sinais - RADARProcessamento de Sinais - RADARProcessamentoProcessamento− Dependendo do porte do Radar faz-se necessário umaDependendo do porte do Radar faz-se necessário umaarquitetura híbrida:arquitetura híbrida:FPGAFPGAGPUsGPUsArquitetura RISC e/ou CISCArquitetura RISC e/ou CISC− Por que?Por que?Alta quantidade de dadosAlta quantidade de dadosTempo realTempo realFlexibilidade e ControleFlexibilidade e Controle
  35. 35. Computação Paralela - igorj@dmo.fee.unicamp.br 35Pesquisas & AplicaçãoPesquisas & AplicaçãoSimulação Eletromagnética para Desenvolvimento deSimulação Eletromagnética para Desenvolvimento deCelularesCelularesDissertação de Mestrado – Parceria entreDissertação de Mestrado – Parceria entreUNICAMP/FEEC/DMO e CPqD. Apoio da CAPESUNICAMP/FEEC/DMO e CPqD. Apoio da CAPESFreitas, Igor José Ferreira, Simulador eletromagnético em umambiente de grades computacionais - Campinas, SP: 2010.Dissertação de Mestrado - Universidade Estadual de Campinas,Faculdade de Engenharia Elétrica e de Computação.Objetivos:Objetivos:− Pré-processamento (modelagem geométrica)Pré-processamento (modelagem geométrica)− Simulação sequencial e paralelaSimulação sequencial e paralela− Pós-processamento (visualização de resultados)Pós-processamento (visualização de resultados)− Avaliar SAR – Índice de Absorção Específica, RadiaçãoAvaliar SAR – Índice de Absorção Específica, RadiaçãoNão-IonizanteNão-Ionizante
  36. 36. Computação Paralela - igorj@dmo.fee.unicamp.br 36Pesquisas & AplicaçãoPesquisas & AplicaçãoSimulação Eletromagnética para Desenvolvimento de CelularesSimulação Eletromagnética para Desenvolvimento de CelularesPré-processamentoPré-processamento− Dividido em módulos:Dividido em módulos:ModelagemModelagemGerador de malhaGerador de malhaEnvio para processamentoEnvio para processamento
  37. 37. Computação Paralela - igorj@dmo.fee.unicamp.br 37Pesquisas & AplicaçãoPesquisas & AplicaçãoSimulação Eletromagnética para Desenvolvimento deSimulação Eletromagnética para Desenvolvimento deCelularesCelularesFluxo doFluxo doSoftwareSoftwareSAR-BRSAR-BR
  38. 38. Computação Paralela - igorj@dmo.fee.unicamp.br 38Pesquisas & AplicaçãoPesquisas & AplicaçãoSimulação Eletromagnética para Desenvolvimento de CelularesSimulação Eletromagnética para Desenvolvimento de CelularesAmbiente de trabalho – JAVA + OpenGL + C++Ambiente de trabalho – JAVA + OpenGL + C++
  39. 39. Computação Paralela - igorj@dmo.fee.unicamp.br 39Pesquisas & AplicaçãoPesquisas & AplicaçãoSimulação Eletromagnética para Desenvolvimento deSimulação Eletromagnética para Desenvolvimento deCelularesCelularesModelagem – Etapa de Pré-ProcessamentoModelagem – Etapa de Pré-Processamento
  40. 40. Computação Paralela - igorj@dmo.fee.unicamp.br 40Pesquisas & AplicaçãoPesquisas & AplicaçãoSimulação Eletromagnética para Desenvolvimento de CelularesSimulação Eletromagnética para Desenvolvimento de CelularesEsquema de GRID para Processamento Sequencial e/ou ParaleloEsquema de GRID para Processamento Sequencial e/ou Paralelo
  41. 41. Computação Paralela - igorj@dmo.fee.unicamp.br 41Pesquisas & AplicaçãoPesquisas & AplicaçãoSimulação Eletromagnética para Desenvolvimento de CelularesSimulação Eletromagnética para Desenvolvimento de CelularesPós-processamento – Análise de ResultadosPós-processamento – Análise de Resultados
  42. 42. Computação Paralela - igorj@dmo.fee.unicamp.br 42Pesquisas & AplicaçãoPesquisas & AplicaçãoSimulação Eletromagnética para Desenvolvimento de CelularesSimulação Eletromagnética para Desenvolvimento de CelularesPós-processamento – Análise de ResultadosPós-processamento – Análise de Resultados
  43. 43. Computação Paralela - igorj@dmo.fee.unicamp.br 43Pesquisas & AplicaçãoPesquisas & AplicaçãoSimulação Eletromagnética para Desenvolvimento de CelularesSimulação Eletromagnética para Desenvolvimento de CelularesValidação dos resultados:Validação dos resultados:•Considerar as medições feitas no laboratório de ensaiospara radiações não ionizantes do CpqD•Comparar com os valores obtidos nas simulações realizadascom o software.• A variação aceita entre esses resultados de SAR é de 25%.• Os procedimentos de medição experimental e assimulações seguem as especificações do padrão IEEE 1528
  44. 44. Computação Paralela - igorj@dmo.fee.unicamp.br 44Pesquisas & AplicaçãoPesquisas & AplicaçãoSimulação Eletromagnética para Desenvolvimento de CelularesSimulação Eletromagnética para Desenvolvimento de CelularesValidação do Software em Experimento Laboratorial - CPqDValidação do Software em Experimento Laboratorial - CPqD
  45. 45. Computação Paralela - igorj@dmo.fee.unicamp.br 45Pesquisas & AplicaçãoPesquisas & AplicaçãoSimulação Eletromagnética para Desenvolvimento de CelularesSimulação Eletromagnética para Desenvolvimento de Celulares- Alguns resultados- Alguns resultados- 4mm da base- 4mm da base- 2mm da base- 2mm da base
  46. 46. Computação Paralela - igorj@dmo.fee.unicamp.br 46Pesquisas & AplicaçãoPesquisas & AplicaçãoSimulação Eletromagnética para Desenvolvimento de CelularesSimulação Eletromagnética para Desenvolvimento de CelularesSuperfície SAR - LaboratórioSuperfície SAR - Laboratório Superfície SAR - SimuladaSuperfície SAR - Simulada- Alguns resultados- Alguns resultados
  47. 47. Computação Paralela - igorj@dmo.fee.unicamp.br 47ConclusõesParalelismo ComputacionalParalelismo Computacional- Paralelismo é utilizado em várias áreas da Computação- Paralelismo é utilizado em várias áreas da Computação- Entretenimento- Entretenimento- Indústria- Indústria- Pesquisa- Pesquisa- Empresas- Empresas- Academia- Academia- Antes de utilizar Paralelismo analisar:- Antes de utilizar Paralelismo analisar:- O problema a ser solucionado é grande suficiente?- O problema a ser solucionado é grande suficiente?- O esforço de paralelizá-lo seria justificável?- O esforço de paralelizá-lo seria justificável?- Este é passível de concorrência e paralelismo?- Este é passível de concorrência e paralelismo?
  48. 48. Computação Paralela - igorj@dmo.fee.unicamp.br 48ConclusõesParalelismo ComputacionalParalelismo Computacional- Devido ao avanço tecnológico temos o surgimento de- Devido ao avanço tecnológico temos o surgimento deAmbientes ParalelosAmbientes Paralelos- Facilitam a vida do Desenvolvedor- Facilitam a vida do Desenvolvedor- Permitem um avanço na solução de problemas com alto- Permitem um avanço na solução de problemas com altocusto x benefíciocusto x benefício- Em contrapartida:- Em contrapartida:- Desenvolvedores precisam se familiarizar com este- Desenvolvedores precisam se familiarizar com esteparadigmaparadigma
  49. 49. Computação Paralela - igorj@dmo.fee.unicamp.br 49Dúvidas?Paralelismo ComputacionalParalelismo ComputacionalMuito obrigado!Contato:Contato:igorj@dmo.fee.unicamp.brigorj@dmo.fee.unicamp.brSkype:Skype:noldorjnoldorj

×