Processamento de
Alto Desempenho
Prof. Mateus Raeder
Universidade do Vale do Rio dos Sinos
- São Leopoldo -
Exemplos de máquinas
• PVP
– Cray C-90
Processamento de Alto Desempenho – Prof. Mateus Raeder
Exemplos de máquinas
• SMP
– SUN Enterprise 10000
Processamento de Alto Desempenho – Prof. Mateus Raeder
Exemplos de máquinas
• DSM
– Cray T3D
Processamento de Alto Desempenho – Prof. Mateus Raeder
Exemplos de máquinas
• MPP
– IBM SP-2
Processamento de Alto Desempenho – Prof. Mateus Raeder
Exemplos de máquinas
• MPP
– Intel Paragon
Processamento de Alto Desempenho – Prof. Mateus Raeder
Exemplos de máquinas
• NOW
Processamento de Alto Desempenho – Prof. Mateus Raeder
Exemplos de máquinas
• COW
Processamento de Alto Desempenho – Prof. Mateus Raeder
Exemplos de máquinas
• COW
– Columbia
Processamento de Alto Desempenho – Prof. Mateus Raeder
Programação Paralela x Distribuída
Processamento de Alto Desempenho – Prof. Mateus Raeder
Programação Concorrente
• O que é Programação Concorrente?
– Um programa que possui várias partes em execução
• Em uma ou mais CPUs
– Pode acontecer em um supercomputador, uma máquina
paralela ou em uma máquina simples
• Pode ocorrer:
– Pseudo-paralelismo
– Paralelismo real
– Paralelismo misto
Processamento de Alto Desempenho – Prof. Mateus Raeder
Pseudo-paralelismo
• Pseudo-paralelismo
– Vários processos compartilham o mesmo processador ao
mesmo tempo
– Ilusão de paralelismo
– Processo não controla quando perde a CPU!!
Processamento de Alto Desempenho – Prof. Mateus Raeder
Paralelismo Real
• Existe a sobreposição dos processos
– Todos os processos executam simultaneamente
Processamento de Alto Desempenho – Prof. Mateus Raeder
Paralelismo Misto
• Tanto o pseudo quanto o paralelismo real
acontecem
Processamento de Alto Desempenho – Prof. Mateus Raeder
Paralelismo x Concorrência
• Paralelismo: termo utilizado normalmente para falar
de paralelismo real
• Concorrência: dois ou mais processos executando
simultaneamente
• Paralelismo é um tipo especial de concorrência
– Vários processos utilizando vários componentes de
processamento
Processamento de Alto Desempenho – Prof. Mateus Raeder
Granulosidade
• O que é uma tarefa?
– Nome dado às partes concorrentes do programa
• Existem diferentes tipos de granulosidade (ou
granularidade)
– Granulosidade: tamanho das tarefas
• Fina
• Média
• Grossa
– Relacionada com as operações e dados do programa
Processamento de Alto Desempenho – Prof. Mateus Raeder
Paralelismo
• O que é uma tarefa paralela?
– Tarefas independentes umas das outras
• O que é um problema paralelizável?
– Um programa que é passível de ser dividido em tarefas
paralelas
Processamento de Alto Desempenho – Prof. Mateus Raeder
Tipos de paralelismo
• Como caracterizar a concorrência da aplicação?
– De que maneira a aplicação foi paralelizada?
• Paralelismo de tarefas
– Executar diferentes atividades sobre diferentes dados
– Distribuição das tarefas entre componentes de processamento
• Paralelismo de dados
– Executar a mesma tarefa sobre diferentes partes dos mesmos
dados
– Distribuição dos dados entre os componentes de processamento
Processamento de Alto Desempenho – Prof. Mateus Raeder
Vantagens da concorrência
• Usar eficientemente os recursos de hardware
disponíveis
– Por exemplo, operações de I/O juntamente com cálculos
pela CPU
• Aumento do desempenho de determinados
programas
• Alocar todas as CPUs sempre que possível
Processamento de Alto Desempenho – Prof. Mateus Raeder
Desvantagens da concorrência
• Sincronização
– Dependência temporal
• Uma tarefa depende do resultado da anterior
– Recursos compartilhados
• Acesso concorrente gera inconsistência
• Escalonamento
– Uso correto dos recursos
– Nem sempre é papel do SO!!
Processamento de Alto Desempenho – Prof. Mateus Raeder
Download

Programação Concorrente