O documento introduz conceitos de computação de alto desempenho, incluindo por que é importante, tipos de paralelismo, modelos de computação como memória compartilhada e distribuída, e exemplos de frameworks como OpenMP. Resume ainda leituras adicionais sobre o tópico.
1. Introdução à Computação de Alto
Desempenho
Vinícius Alves Hax
Sistemas Distribuídos - FURG
Setembro de 2012
2. Sobre mim
Engenheiro de Computação
Especialista em Aplicações para a Web
Aluno Mestrado Engenharia de
Computação
Analista de Tecnologia de Informação (FURG)
Empreendedor (Zetaflops)
Interesses: Software Livre, Linux, Metodologias
Ágeis, Rails, Computação de Alto Desempenho,
Internet das Coisas, Governo Eletrônico, Web
2
3. Roda em um único
Tradicionalmente como computador com um único
software é escrito: processador
O problema é decomposto
em uma série de operações
discretas
Instruções são executadas
uma após outra
Apenas uma instrução
executa a cada momento
3
4. Por que a Computação de Alto Desempenho é
importante?
4
13. Taxonomia de Flynn
●SISD: Computadores com núcleo único
●SIMD: Instruções SSE, MMX, Processadores
vetoriais
●MISD: Redundância (pouco comuns)
●MIMD: Computadores com múltiplos núcleos
13
14. Tipos de paralelismo
Bit-level (ex: tamanho dos processadores)
Instruction Level (ILP): ex: pipeline)
Data paralelism: divisão dos dados
Task paralelism: divisão por tarefas
14
15. Tipos de paralelismo de dados
Taxa de computação por
comunicação
Fine-grain
Coarse-grain
15