Processamento deAlto Desempenho
Prof. Mateus Raeder
Universidade do Vale do Rio dos Sinos- São Leopoldo -
Processamento de Alto Desempenho – Prof. Mateus Raeder
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!!