350 likes | 448 Views
Processamento de Alto Desempenho. Prof. Mateus Raeder. Universidade do Vale do Rio dos Sinos - São Leopoldo -. Sumário. Introdução ao Processamento de Alto Desempenho Desafios e considerações Taxonomia de arquiteturas paralelas Classificação quanto à memória Multiprocessadores
E N D
Processamento de Alto Desempenho Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos- São Leopoldo -
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 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 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 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) 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 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 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... 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 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 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 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) 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 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 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) 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) 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 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 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 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) 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 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 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) 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 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 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) 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 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 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 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 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 Processamento de Alto Desempenho – Prof. Mateus Raeder
TempoSequencial speedup = TempoParalelo 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 Se speedup > 1: versão paralela reduziu o tempo Se speedup < 1: versão paralela aumentou o tempo Processamento de Alto Desempenho – Prof. Mateus Raeder
speedup eficiência = número de processos 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 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 Processamento de Alto Desempenho – Prof. Mateus Raeder