Escolar Documentos
Profissional Documentos
Cultura Documentos
• Teste era um tormento devido ao não determinismo de comunicação e sincronização entre processos
3
MOTIVAÇÃO À COMPUTAÇÃO DE ALTO
DESEMPENHO
4
OBJETIVOS DA COMPUTAÇÃO PARALELA
6
POR QUE CONSTRUIR PROGRAMAS PARALELOS?
8
DIFERENÇAS ENTRE SOLUÇÕES SEQUENCIAIS E
PARALELAS
• Computação paralela
• Uso do computador paralelo para aumentar eficiência ou permitir eficácia, usando um programa
desenvolvido pela programação paralela
• Computador paralelo
• Computador com múltiplos processadores, memórias e outros dispositivos replicados
• Processos concorrentes
• Dois ou mais processos que iniciaram e ainda não finalizaram a sua execução
11
CONCEITOS BÁSICOS
• Processos paralelos
• São uma especialização de processos concorrentes
• Sempre executam em processadores distintos
• Paralelismo real
• Processos distribuídos
• Podem ser considerados um sinônimo de processos paralelos
• Têm objetivos e modelos de programação distintos
• Normalmente visam o compartilhamento de recursos
12
• Encapsulam mais os detalhes de níveis inferiores de hardware e software
CONCEITOS BÁSICOS
• Pipeline
• Sobreposição de múltiplas instâncias de um problema
14
CONCEITOS BÁSICOS
• Tempos em computação
• Execução: tempo executando instruções do processo na CPU
• Resposta: tempo entre a submissão do processo e seu retorno/finalização
• Inclui tempo de execução e tempo ocioso na fila de bloqueado ou pronto
• Ocioso: tempo que o processo parou aguardando para executar
• E/S, fila de pronto, …
• Sequencial: tempo de resposta (ou execução) da versão sequencial de um programa
• Paralelo: tempo de resposta (ou execução) da versão paralela de um programa com vários
processos em paralelo.
• Começa a contar quando o primeiro processo inicia e termina de contar quando o último
processo finaliza.
15
CONCEITOS BÁSICOS
17
CONCEITOS BÁSICOS
18
CONCEITOS BÁSICOS
• Modelos de programação
• Descrevem semânticas da linguagem de programação
20
CONCEITOS BÁSICOS
• Modelos de programação
• Itens a serem considerados:
• Nível do paralelismo:
• instrução, comandos, procedimentos, loops, processos
• Implícito (compiladores) ou explícito (programador)
• Especificação de tarefas concorrentes (grau de paralelismo)
• Distribuição de tarefas em processos em processadores
• Balanceamento da carga
• Modo de execução de tarefas
• SIMD, SPMD, MPMD, síncrono ou assíncrono
• Padrões de comunicação
• Passagem de mensagens ou variáveis compartilhadas
• Mecanismos de comunicação e sincronização
21
• Organizam a computação e interação entre processos