processamento de alto desempenho prof. mateus raeder universidade do vale do rio dos sinos - são...
TRANSCRIPT
![Page 1: Processamento de Alto Desempenho Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc12a497959413d8cd8c8/html5/thumbnails/1.jpg)
Processamento deAlto Desempenho
Prof. Mateus Raeder
Universidade do Vale do Rio dos Sinos- São Leopoldo -
![Page 2: Processamento de Alto Desempenho Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc12a497959413d8cd8c8/html5/thumbnails/2.jpg)
Processamento de Alto Desempenho – Prof. Mateus Raeder
Sumário
• Introdução ao Processamento de Alto Desempenho• Desafios e considerações• Taxonomia de arquiteturas paralelas• Classificação quanto à memória• Multiprocessadores• Multicomputadores• Máquinas paralelas• Requisitos básicos de PAD• Medidas de desempenho
![Page 3: Processamento de Alto Desempenho Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc12a497959413d8cd8c8/html5/thumbnails/3.jpg)
Processamento de Alto Desempenho – Prof. Mateus Raeder
Introdução ao PAD
• O que é Processamento de Alto Desempenho?– (quadro 1)
• Primeiros trabalhos utilizando paralelismo– Década de 40– Sistema Model V
• Stibitz e Willians (Bell Telephone)
– Formado por 2 processadores– Já mostrava um bom exemplo de uma arquitetura
paralela• 2 programas diferentes poderiam ser executados ao
mesmo tempo
![Page 4: Processamento de Alto Desempenho Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc12a497959413d8cd8c8/html5/thumbnails/4.jpg)
Processamento de Alto Desempenho – Prof. Mateus Raeder
Introdução ao PAD
• Máquinas são geralmente criadas utilizando o modelo de Von Neumann– Dados e programas são armazenados na memória– Memória é separada da CPU– Instruções e dados são trocados entre a memória e a
CPU
![Page 5: Processamento de Alto Desempenho Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc12a497959413d8cd8c8/html5/thumbnails/5.jpg)
Processamento de Alto Desempenho – Prof. Mateus Raeder
Introdução ao PAD
• Fluxo de dados limita a velocidade do computador– Velocidade de conexão entre a memória e o processador
define esta velocidade• Geralmente, as instruções são executadas em um tempo
menor do que a sua transferência
• Isto é denominado Gargalo de Von Neumann– (quadro 2)
![Page 6: Processamento de Alto Desempenho Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc12a497959413d8cd8c8/html5/thumbnails/6.jpg)
Processamento de Alto Desempenho – Prof. Mateus Raeder
Introdução ao PAD
• O Gargalo de Von Neumann é um dos principais precursores do paradigma de Programação Paralela e Concorrente
• Adição de mais processadores supera o Gargalo de Von Neumann– Cada um com sua taxa individual de transferência
![Page 7: Processamento de Alto Desempenho Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc12a497959413d8cd8c8/html5/thumbnails/7.jpg)
Processamento de Alto Desempenho – Prof. Mateus Raeder
Introdução ao PAD
• No mundo real, as coisas acontecem em paralelo– Natural que computações possam ser realizadas em
paralelo, ou não impedidas de tal
• Programação sequencial– Inevitável ordenar as ações a serem realizadas– Impede novos conceitos
• Dificuldade de perceber o paralelismo em alguns casos
![Page 8: Processamento de Alto Desempenho Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc12a497959413d8cd8c8/html5/thumbnails/8.jpg)
Processamento de Alto Desempenho – Prof. Mateus Raeder
Introdução ao PAD
• Aplicações complexas– Aplicações de hoje em dia esperam muito mais dos
processadores– Precisam de poder computacional muito além do
existente• Inteligência artificial• Simulações (principalmente Monte Carlo)• Algoritmos de busca e processamento de grafos• Processamento de imagens• Procura por petróleo• Bancos de dados (principalmente em tempo real)• Etc...
![Page 9: Processamento de Alto Desempenho Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc12a497959413d8cd8c8/html5/thumbnails/9.jpg)
Processamento de Alto Desempenho – Prof. Mateus Raeder
Introdução ao PAD
• Aplicações complexas– Aplicações de hoje em dia esperam muito mais dos
processadores– Precisam de poder computacional muito além do
existente• Previsão do tempo• Simulações físicas com alta carga computacional• Bioinformática• Computação gráfica
![Page 10: Processamento de Alto Desempenho Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc12a497959413d8cd8c8/html5/thumbnails/10.jpg)
Processamento de Alto Desempenho – Prof. Mateus Raeder
Introdução ao PAD
• Hoje em dia, paralelismo traz muito benefício para a computação– Principalmente para a área da pesquisa
• Mas, por que exatamente utilizar paralelismo?– O Processamento Paralelo surge com o intuito de
melhorar o desempenho de tais aplicações– Proporciona um custo relativamente pequeno para a
aquisição de um ambiente paralelo
![Page 11: Processamento de Alto Desempenho Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc12a497959413d8cd8c8/html5/thumbnails/11.jpg)
Processamento de Alto Desempenho – Prof. Mateus Raeder
Introdução ao PAD
• Supercomputadores são muito caros– Alguns por mais de US$130,000.000,00
• A obtenção de computadores pessoais é mais barata– Agrupar computadores pessoais mais baratos– Mesmo desempenho (teórico) do que um
supercomputador– Preço mais baixo
![Page 12: Processamento de Alto Desempenho Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc12a497959413d8cd8c8/html5/thumbnails/12.jpg)
Processamento de Alto Desempenho – Prof. Mateus Raeder
Desafios e considerações
• Idealmente, a modelagem de programas paralelos deve ser a mais abstrata possível– Permitindo a execução do programa em diferentes
arquiteturas– Aumentar o tempo de vida dos programas
• Arquiteturas novas surgindo• Ocultar aspectos de arquitetura
– (quadro 3)
![Page 13: Processamento de Alto Desempenho Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc12a497959413d8cd8c8/html5/thumbnails/13.jpg)
Processamento de Alto Desempenho – Prof. Mateus Raeder
Desafios e considerações
• O controle da execução em paralelo é bastante complexo
• O modelo paralelo criado deve:– Decompor o programa em partes paralelizáveis– Mapear as tarefas aos processadores
• Decisão de onde alocar cada tarefa• Influenciada pelo tipo de processadores (homogêneos x
heterogêneos)
– Comunicação entre as tarefas paralelas– Sincronização das tarefas
![Page 14: Processamento de Alto Desempenho Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc12a497959413d8cd8c8/html5/thumbnails/14.jpg)
Processamento de Alto Desempenho – Prof. Mateus Raeder
Desafios e considerações
• Facilidade de entendimento– O modelo deve ser o mais entendível possível– Ocultar ao máximo a complexidade– De uso simples
• Previsibilidade de desempenho– É possível prever o desempenho pra diferentes
arquiteturas
• Evitar comunicação exagerada
• Balancear a carga de trabalho adequadamente
![Page 15: Processamento de Alto Desempenho Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc12a497959413d8cd8c8/html5/thumbnails/15.jpg)
Processamento de Alto Desempenho – Prof. Mateus Raeder
Taxonomia de Arquiteturas Paralelas
• A classificação de arquiteturas paralelas mais difundida na área é a de Flynn– Fluxo de instruções– Fluxo de dados
• Resulta em 4 classes (quadro 4)– SISD (Single Instruction, Single Data)– SIMD (Single Instruction, Multiple Data)– MISD (Multiple Instruction, Silgle Data)– MIMD (Multiple Instruction, Multiple Data)
![Page 16: Processamento de Alto Desempenho Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc12a497959413d8cd8c8/html5/thumbnails/16.jpg)
Processamento de Alto Desempenho – Prof. Mateus Raeder
Taxonomia de Arquiteturas Paralelas
• SISD– Fluxo de instruções alimenta a unidade de controle (C)– Ativa a CPU (P)– Atua sobre um único fluxo de dados– Máquinas tradicionais de Von Neumann (pessoais)
• SIMD– Única instrução (uma unidade de controle)– Executada de forma síncrona sobre um conjunto de dados
diferentes– Unidade de controle é alimentada por um fluxo de instruções– A mesma instrução, é enviada para todas as CPUs
• Mesmo programa sobre diferentes dados (máquinas vetoriais)
![Page 17: Processamento de Alto Desempenho Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc12a497959413d8cd8c8/html5/thumbnails/17.jpg)
Processamento de Alto Desempenho – Prof. Mateus Raeder
Taxonomia de Arquiteturas Paralelas
• MISD– Várias instruções sobre um único dado– Classe considerada vazia
• Diferentes instruções acessam e operam a mesma posição de memória ao mesmo tempo
• Impraticável
• MIMD– Vários instruções sobre vários dados– É a arquitetura desejada em computadores paralelos– Cada processador executa um programa com seus próprios
dados• De maneira assíncrona
![Page 18: Processamento de Alto Desempenho Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc12a497959413d8cd8c8/html5/thumbnails/18.jpg)
Processamento de Alto Desempenho – Prof. Mateus Raeder
Classificação quanto à Memória
• Classificadas quanto ao compartilhamento da memória– Memória compartilhada– Memória distribuída
![Page 19: Processamento de Alto Desempenho Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc12a497959413d8cd8c8/html5/thumbnails/19.jpg)
Processamento de Alto Desempenho – Prof. Mateus Raeder
Classificação quanto à Memória
• Memória compartilhada– Um único espaço de endereçamento para todos os
processadores– Comunicação entre os processadores através de escrita
e leitura da memória
• Memória distribuída– Múltiplos espaços de endereçamento privados– Cada processador com o seu espaço de endereçamento
![Page 20: Processamento de Alto Desempenho Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc12a497959413d8cd8c8/html5/thumbnails/20.jpg)
Processamento de Alto Desempenho – Prof. Mateus Raeder
Classificação quanto à Memória
• Multiprocessador x Multicomputador
• Multiprocessador– N processadores acessam uma memória
compartilhada– Comunicação através de leitura e escrita na memória– Espaço de endereçamento global– Tipos de multiprocessadores:
• UMA (Uniform Memory Access)• NUMA (Non-Uniform Memory Access)• COMA (Cache-Only Memory Architecture)
![Page 21: Processamento de Alto Desempenho Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc12a497959413d8cd8c8/html5/thumbnails/21.jpg)
Processamento de Alto Desempenho – Prof. Mateus Raeder
Multiprocessadores
• UMA (quadro 5)– Memória centralizada (equidistante aos processadores)– Acesso uniforme, através do barramento (um de cada
vez)
• NUMA (quadro 6)– Pares processador/memória conectados através de um
barramento• Memória é dividida em blocos• Cada bloco associado a um processador• Aparentemente distribuído, mas possui espaço de
endereçamento único• Quando o acesso é “local”, o tempo é reduzido
![Page 22: Processamento de Alto Desempenho Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc12a497959413d8cd8c8/html5/thumbnails/22.jpg)
Processamento de Alto Desempenho – Prof. Mateus Raeder
Multiprocessadores
• COMA (quadro 7)– Assemelham-se às arquiteturas NUMA– Memórias cache para cada processador
• Capacidade de armazenamento bem maior que uma memória cache normal
– Dados podem migrar de uma memória para a outra• Diminui o número de cópias redundantes da NUMA• Maior dificuldade para encontrar o dado
![Page 23: Processamento de Alto Desempenho Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc12a497959413d8cd8c8/html5/thumbnails/23.jpg)
Processamento de Alto Desempenho – Prof. Mateus Raeder
Multicomputadores
• Espaço de endereçamento privado• Cada processador possui sua memória local• Os pares processador/memória são interconectados
através de uma rede de interconexão (quadro 8)• Quando um processo necessita de dados de outro
processo?– Utiliza troca de mensagens através da rede– Memórias não-locais não podem ser acessadas
diretamente– Classificação
• NORMA (NOn-Remote Memory Access)
![Page 24: Processamento de Alto Desempenho Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc12a497959413d8cd8c8/html5/thumbnails/24.jpg)
Processamento de Alto Desempenho – Prof. Mateus Raeder
Máquinas Paralelas
• Diversas formas de construir uma máquina paralela
• Algumas classificações de máquinas paralelas– PVP– SMP– DSM– MPP– NOW– COW
![Page 25: Processamento de Alto Desempenho Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc12a497959413d8cd8c8/html5/thumbnails/25.jpg)
Processamento de Alto Desempenho – Prof. Mateus Raeder
Máquinas Paralelas
• PVP (Parallel Vector Processor)– Processadores especiais para operações vetoriais
• Operações aritméticas, por exemplo
– Aplicações matemáticas e simulações físicas obtêm ganho significativo de desempenho
• SMP (Symmetric Multi Processing)– Constituída de processadores comerciais (comuns)– Conectados através de um barramento de alta velocidade à uma
memória compartilhada• Mesma velocidade no acesso à memória (Symmetric)• Utilização do barramento exclusivo
![Page 26: Processamento de Alto Desempenho Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc12a497959413d8cd8c8/html5/thumbnails/26.jpg)
Processamento de Alto Desempenho – Prof. Mateus Raeder
Máquinas Paralelas
• DSM (Distributed Shared Memory)– Possuem uma memória distribuída fisicamente entre as máquinas– Porém, com um único espaço de endereçamento
• Todas enxergam as memórias como se fossem uma só
– Conectados por uma rede de acesso mais lento ao meio• Acesso mais rápido nas posições mais próximas
– Importância da localização dos dados
• MPP (Massive Parallel Processors)– PVP utilizam uma quantidade pequena de processadores de alto
desempenho– MPP utiliza uma grande quantidade (milhares) de processadores de baixo
ou médio desempenho para aumentar o desempenho• Quantidade ao invés de qualidade• Cada processador possui uma memória local (troca de mensagens)
![Page 27: Processamento de Alto Desempenho Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc12a497959413d8cd8c8/html5/thumbnails/27.jpg)
Processamento de Alto Desempenho – Prof. Mateus Raeder
Máquinas Paralelas
• NOW (Network Of Workstations)– Conjunto de estações de trabalho interligadas por uma rede padrão– Tem custo muito baixo– Processadores possuem memória privada, restringindo o acesso a
sua memória local• Troca de mensagens
– Redes padrão não otimizadas para alto desempenho• Comunicação mais lenta• Gargalo
– Utilização não visa alto desempenho, mas sim compartilhamento de recursos
• Diferente do MPP, dificilmente encontra-se NOW para aplicações paralelas
• Uso acadêmico
![Page 28: Processamento de Alto Desempenho Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc12a497959413d8cd8c8/html5/thumbnails/28.jpg)
Processamento de Alto Desempenho – Prof. Mateus Raeder
Máquinas Paralelas
• COW (Cluster Of Workstations)– Evolução da NOW– Também composto por estações de trabalho, porém, projetado para
prover alto desempenho• Estações conectadas por uma rede de alto desempenho• Facilitando a comunicação entre os processos
– Muitos sistemas COW descartam periféricos como monitor, teclado e mouse
• Headless workstations (estações de trabalho sem cabeça)• Toda estrutura para o desenvolvimento paralelo
![Page 29: Processamento de Alto Desempenho Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc12a497959413d8cd8c8/html5/thumbnails/29.jpg)
Processamento de Alto Desempenho – Prof. Mateus Raeder
Requisitos básicos de PAD
• Quando falamos de programação paralela, alguns fatores básicos devem ser atendidos– Desempenho– Portabilidade– Modularidade
• Primordialmente, buscamos DESEMPENHO– Alguns minutos de processamento podem fazer diferença– Aplicações meteorológicas, por exemplo
• Possuem alto custo computacional• De nada adianta conseguir calcular amanhã a previsão do tempo
para hoje• Precisão pode ser diminuída
- Aumenta desempenho, mas diminui credibilidade
![Page 30: Processamento de Alto Desempenho Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc12a497959413d8cd8c8/html5/thumbnails/30.jpg)
Processamento de Alto Desempenho – Prof. Mateus Raeder
Requisitos básicos de PAD
• A existência de diversas arquiteturas paralelas exige PORTABILIDADE– O programa paralelo deve se adaptar a certa variedade de
máquinas– Programador não deve se preocupar com soluções específicas
• A MODULARIDADE procura facilitar o desenvolvimento– Aplicações são complexas– Divisão em módulos facilita a implementação
• Isola componentes• Proporciona facilidade na manutenção do programa
![Page 31: Processamento de Alto Desempenho Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc12a497959413d8cd8c8/html5/thumbnails/31.jpg)
Processamento de Alto Desempenho – Prof. Mateus Raeder
Medidas de Desempenho
• Quando utilizamos uma solução paralela, devemos constatar:– Se obtivemos ganho ou perda de desempenho– Se existe sub/sobre-utilização de recursos
• Se o balanceamento de carga foi adequado
• Foram criadas métricas de desempenho para quantificar estas informações– Fator de aceleração (speedup)– Eficiência (efficiency)– Desequilíbrio de carga
![Page 32: Processamento de Alto Desempenho Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc12a497959413d8cd8c8/html5/thumbnails/32.jpg)
Processamento de Alto Desempenho – Prof. Mateus Raeder
Speedup
• É o fator de aceleração da versão paralela em relação à sequencial
• Quantifica o ganho de desempenho– Calculando-se o speedup, temos quantas vezes a versão
paralela é mais rápida que a sequencial– Calculado para cada processo– Speedup ideal: com x processos, x vezes mais rápido– Gera uma curva em um gráfico
speedup =TempoSequencial
TempoParalelo
Se speedup > 1: versão paralela reduziu o tempoSe speedup < 1: versão paralela aumentou o tempo
![Page 33: Processamento de Alto Desempenho Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc12a497959413d8cd8c8/html5/thumbnails/33.jpg)
Processamento de Alto Desempenho – Prof. Mateus Raeder
Eficiência
• Indica se os recursos estão sendo bem utilizados• Razão entre o speedup e o número de processos utilizados
• Idealmente, cada unidade deveria ter ficado 100% ativa– Devido aos custos de comunicação, processamento,
inicialização, esta eficiência ideal não é alcançada
eficiência =speedup
número de processos
![Page 34: Processamento de Alto Desempenho Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -](https://reader036.vdocuments.pub/reader036/viewer/2022062418/552fc12a497959413d8cd8c8/html5/thumbnails/34.jpg)
Processamento de Alto Desempenho – Prof. Mateus Raeder
Desequilíbrio de carga
• Distribuição do trabalho entre os recursos• O trabalho deve ser distribuído de forma a ocupar sempre
todos os processos– Isto não ocorre quando alguns processos possuem muito mais
carga que outros– Sub-utiliza uns, sobrecarrega outros– Perda de desempenho (desperdício de poder computacional)– Má divisão do trabalho, execução em ambientes heterogêneos,
etc– Técnicas de balanceamento de carga