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