UNIVERSIDADE ESTADUAL PAULISTA COMPUTAÇÃO PARALELA INSTITUTO DE GEOCIÊNCIAS E CIÊNCIAS EXATAS Departamento de Estatística, Matemática Aplicada e Computação INTRODUÇÃO À COMPUTAÇÃO PARALELA GRUPO DE PESQUISA DE APLICAÇÕES EM COMPUTAÇÃO PARALELA COMPUTAÇÃO PARALELA CONTEÚDO INTRODUÇÃO CONCEITOS BÁSICOS ARQUITETURAS PARALELAS PROGRAMAÇÃO PARALELA MULTICOMPUTADORES CONSIDERAÇÕES FINAIS COMPUTAÇÃO PARALELA INTRODUÇÃO - MOTIVAÇÕES Busca por maior desempenho; Aplicações intrinsecamente paralelas. Alto custo dos supercomputadores tradicionais. Desenvolvimento de redes de computadores de alta velocidade; Desenvolvimento tecnológico na construção de microprocessadores; COMPUTAÇÃO PARALELA CONTEÚDO INTRODUÇÃO CONCEITOS BÁSICOS ARQUITETURAS PARALELAS PROGRAMAÇÃO PARALELA MULTICOMPUTADORES CONSIDERAÇÕES FINAIS COMPUTAÇÃO PARALELA CONCEITOS BÁSICOS Concorrência: quando dois ou mais processos começaram sua execução mas não terminaram. Sistema Distribuído: Processos concorrentes executados em vários elementos de processamento. Paralelismo: Sistema distribuído visando à solução de um único problema. COMPUTAÇÃO PARALELA CONTEÚDO INTRODUÇÃO CONCEITOS BÁSICOS ARQUITETURAS PARALELAS PROGRAMAÇÃO PARALELA MULTICOMPUTADORES CONSIDERAÇÕES FINAIS COMPUTAÇÃO PARALELA ARQUITETURAS PARALELAS Classificação de Flynn é a mais utilizada embora não seja muito abrangente. SISD (Single Instruction Single Data): Arquitetura de von Neumann; SIMD (Single Instruction Multiple Data): Supercomputadores clássicos (Computadores vetoriais); MISD (Multiple Instruction Single Data): O Mesmo fluxo de dados percorre um array linear de processadores (pipeline); MIMD (Multiple Instruction Multiple Data): Arquiteturas formada por processadores executam instruções independentemente. COMPUTAÇÃO PARALELA ARQUITETURAS PARALELAS Modelo simplificado dos conjuntos de aplicações relacionados aos tipos de arquiteturas COMPUTAÇÃO PARALELA ARQUITETURAS PARALELAS CATEGORIAS MIMD: Memória compartilhada: – Caracteriza-se pela existência de uma memória global. Memória distribuída: – Cada processador possui sua própria memória local. – Os processos devem utilizar troca de mensagem para se comunicar. – Redes de computadores utilizando um sistema de passagem de mensagem encontram-se nesta categoria. COMPUTAÇÃO PARALELA CONTEÚDO INTRODUÇÃO CONCEITOS BÁSICOS ARQUITETURAS PARALELAS PROGRAMAÇÃO PARALELA MULTICOMPUTADORES CONSIDERAÇÕES FINAIS COMPUTAÇÃO PARALELA PROGRAMAÇÃO PARALELA Para a execução de programas paralelos, deve haver meios de: Definir um conjunto de tarefas a serem executadas paralelamente; Ativar e encerrar a execução destas tarefas; Coordenar e especificar a interação entre estas tarefas. COMPUTAÇÃO PARALELA PROGRAMAÇÃO PARALELA Há pelo menos três maneiras de se construir um algoritmo paralelo: Detectar e explorar um paralelismo inerente a um algoritmo seqüencial existente Criar um algoritmo paralelo novo. Adaptar outro algoritmo paralelo que possa resolver um problema similar. COMPUTAÇÃO PARALELA PROGRAMAÇÃO PARALELA Há três estilos básicos de paralelismo, dependentes da plataforma de execução. Paralelismo Geométrico: o conjunto de dados é dividido e cada processador executa uma cópia do programa em seu conjunto de dados. Paralelismo “Processor Farm”: Caracteriza-se por um processador mestre que supervisiona um grupo de processadores escravos. Paralelismo Pipeline: A aplicação é dividida em tarefas específicas que são distribuídas aos processadores de forma pipeline. COMPUTAÇÃO PARALELA CONTEÚDO INTRODUÇÃO CONCEITOS BÁSICOS ARQUITETURAS PARALELAS PROGRAMAÇÃO PARALELA MULTICOMPUTADORES CONSIDERAÇÕES FINAIS COMPUTAÇÃO PARALELA MULTICOMPUTADORES Ambientes de memória compartilhada utilizam um paralelismo explícito, já que podem-se valer desta memória para ativar os processos paralelos. Ambientes de memória distribuídas devem utilizar um modelo chamado troca de mensagens para comunicação e sincronização das tarefas. COMPUTAÇÃO PARALELA MULTICOMPUTADORES Há dois principais padrões de troca de mensagens: PVM – Parallel Virtual Machine: é o conjunto integrado de bibliotecas e de ferramentas de software, cuja finalidade é emular um sistema computacional concorrente, heterogêneo, flexível e de propósito geral. MPI – Massage Passing Interface: Padrão de interface de troca de mensagens para aplicações que utilizam computadores MIMD com memória distribuída. COMPUTAÇÃO PARALELA MULTICOMPUTADORES Speedup: Relação entre o tempo de execução de um processo em um único processador e a execução em p processadores. Sp = Tseq Tp Eficiência: Relação entre o speedup e número de processadores. E= Sp p COMPUTAÇÃO PARALELA CONTEÚDO INTRODUÇÃO CONCEITOS BÁSICOS ARQUITETURAS PARALELAS PROGRAMAÇÃO PARALELA MULTICOMPUTADORES CONSIDERAÇÕES FINAIS