Ambientes de memória compartilhada utilizam um paralelismo

Propaganda
UNIVERSIDADE ESTADUAL PAULISTA
INSTITUTO DE GEOCIÊNCIAS E CIÊNCIAS EXATAS
Departamento de Estatística, Matemática Aplicada e Computação
INTRODUÇÃO À COMPUTAÇÃO
PARALELA
CONTEÚDO
• INTRODUÇÃO
• CONCEITOS BÁSICOS
• ARQUITETURAS PARALELAS
• PROGRAMAÇÃO PARALELA
• MULTICOMPUTADORES
• CONSIDERAÇÕES FINAIS
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;
CONTEÚDO
• INTRODUÇÃO
• CONCEITOS BÁSICOS
• ARQUITETURAS PARALELAS
• PROGRAMAÇÃO PARALELA
• MULTICOMPUTADORES
• CONSIDERAÇÕES FINAIS
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.
CONTEÚDO
• INTRODUÇÃO
• CONCEITOS BÁSICOS
• ARQUITETURAS PARALELAS
• PROGRAMAÇÃO PARALELA
• MULTICOMPUTADORES
• CONSIDERAÇÕES FINAIS
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.
ARQUITETURAS PARALELAS
Modelo simplificado dos conjuntos de aplicações
relacionados aos tipos de arquiteturas
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.
CONTEÚDO
• INTRODUÇÃO
• CONCEITOS BÁSICOS
• ARQUITETURAS PARALELAS
• PROGRAMAÇÃO PARALELA
• MULTICOMPUTADORES
• CONSIDERAÇÕES FINAIS
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.
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.
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.
CONTEÚDO
• INTRODUÇÃO
• CONCEITOS BÁSICOS
• ARQUITETURAS PARALELAS
• PROGRAMAÇÃO PARALELA
• MULTICOMPUTADORES
• CONSIDERAÇÕES FINAIS
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.
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.
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
CONTEÚDO
• INTRODUÇÃO
• CONCEITOS BÁSICOS
• ARQUITETURAS PARALELAS
• PROGRAMAÇÃO PARALELA
• MULTICOMPUTADORES
• CONSIDERAÇÕES FINAIS
Download