Arquiteturas Paralelas

Documentos relacionados
OpenMP: Variáveis de Ambiente

SSC PROGRAMAÇÃO CONCORRENTE

30/5/2011. Sistemas computacionais para processamento paralelo e distribuído

Medida de desempenho

Introdução. Programação Paralela. Motivação. Conhecimento do Hardware. Análise de Desempenho. Modelagem do Problema

Programação Paralela. Profa Mariana Kolberg e Prof. Luiz Gustavo Fernandes

Universidade Estadual de Mato Grosso do Sul UEMS Curso de Ciência da Computação Disciplina de Algoritmos Paralelos e Distribuídos

AULA 03: PROCESSAMENTO PARALELO: MULTIPROCESSADORES

Programação Concorrente

Exemplo Amdahl. O speedup total é dado por:

ARQUITETURA DE SISTEMAS DISTRIBUÍDOS. Aula 1- Introdução aos Sistemas Distribuídos

Universidade Federal do Rio de Janeiro Informática DCC/IM. Arquitetura de Computadores II. Arquiteturas MIMD. Arquiteturas MIMD

SSC0611 Arquitetura de Computadores

Desempenho. Na otimização do projeto, as métricas mais importantes são custo e desempenho. Arquiteturas de Alto Desempenho - Prof a Luiza Mourelle 1

Organização de Computadores e Proj.Integrado. Desempenho Herbert Rausch Fernandes

PARALELIZAÇÃO DE ALGORITMO DE INSPEÇÃO DE ROTAS UTILIZANDO PERMUTAÇÃO LEXICOGRÁFICA 1

Introdução ao Processamento de Alto Desempenho

speedup aprimorado aprimorado Fração aprimorada speedup aprimorado Fração aprimorada speedup aprimorado Tempo original Fração aprimorada aprimorado

Sistema Distribuído. Sistema Distribuído. Aplicações Distribuídas. Conceitos Básicos

Paralelismo em Computadores com Tecnologia Multicore

SISTEMAS OPERACIONAIS

Aluno de Pós-Graduação em Engenharia de Software para Dispositivos Móveis pela UNINTER

COMPARAÇÃO DE DESEMPENHO ENTRE IMPLEMENTAÇÕES DO ALGORITMO JOGO DA VIDA COM PTHREAD E OPEMMP 1

Arquitetura de Computadores

Organização de Computadores II. Arquiteturas MIMD

Sistema de Software Distribuído

Introdução à Computação: Sistemas de Computação

Sistemas Distribuídos

Análise e desenho de algoritmos paralelos

Programação Paralela e Distribuída

SSC PROGRAMAÇÃO CONCORRENTE. Aula 03 Terminologia Geral de Computação Paralela Prof. Jó Ueyama

Modelos para Concorrência

Curso: Redes de Computadores

Avaliação de Desempenho

SSC510 Arquitetura de Computadores. 6ª aula

Carlos Eduardo Batista Centro de Informática - UFPB

Introdução à OpenMP (Dia 1) Prof. Guido Araujo

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

Arquiteturas Paralelas

Características de Sistemas Distribuídos

Visualização Distribuída utilizando Agrupamentos de PCs 10

Computação na Biologia Molecular e Bionanotecnologia: Computação Biológica

O Que Veremos. Introdução. Introdução. Definindo Desempenho. Definindo Desempenho. Avaliando e Compreendendo o Desempenho

The future is parallel but it may not be easy

1 Introdução. I know because I must know. It's my purpose. It's the reason I'm here. (The Matrix) 1.1 Objetivos do trabalho

SISTEMAS DISTRIBUÍDOS

Programação concorrente (processos e threads)

Introdução OpenMP. Nielsen Castelo Damasceno

Linguagem de Programação II

Análise e desenho de algoritmos Paralelos Implementação em Java

Guia del Laboratório 2 Desenho e Implementação de algoritmos paralelos Introdução

Introdução à Programação Paralela através de Padrões. Denise Stringhini Calebe Bianchini Luciano Silva

Características de Sistemas Distribuídos

Processos Concorrentes

Programação de Alto Desempenho - 2. Prof: Carla Osthoff

Componente de aplicação. Figura 1 - Elementos funcionais de uma aplicação sendo executados de forma distribuída

Introdução à Computação: Sistemas de Computação

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES II AULA 04: PROCESSAMENTO PARALELO: MULTICOMPUTADOR

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES II AULA 02: PROCESSAMENTO PARALELO: PROCESSADORES VETORIAIS

COMPUTADORES. Arquiteturas de Computadores Paralelos. Prof.: Agostinho S. Riofrio

Barramento. Prof. Leonardo Barreto Campos 1

Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 02

Sistemas Distribuídos Aula 10

Estrutura da Apresentação. Introdução ao Processamento Paralelo e Distribuído. Conceitos em PPD. Conceitos em PPD 4/26/09.

Topologias de Arquiteturas de Comunicação

Ruby e JRuby em... Paralelos e Distribuídos. Felipe Barden Lucas Fialho Zawacki

Preliminares. Profa. Sheila Morais de Almeida. agosto

Arquitecturas Paralelas I Computação Paralela em Larga Escala LESI - 4º Ano. Desenvolvimento de Aplicações Paralelas

Aplicação de Processamento Paralelo com GPU a Problemas de Escoamento Monofásico em Meios Porosos. Bruno Pereira dos Santos Dany Sanchez Dominguez

Arquitetura de Computadores. Processamento Paralelo

Linguagem de Programação II

Monografia de Conclusão do Curso de Graduação em Ciência da Computação. 2

SSC643 -Avaliação de Desempenho de Sistemas Computacionais Sarita Mazzini Bruschi

Sistemas Operacionais. Tipos de SO

Sis i te t mas a O perac a i c o i nai a s um p ouco c d a a h is i tó t ria i. a... SO His i t s ó t r ó ic i o

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

Elementos de conexão e condições de paralelismo. Aleardo Manacero Jr.

Computação científica utilizando placas gráficas

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

PIPELINE DE INSTRUÇÕES (estratégia e desempenho) Adão de Melo Neto

Programação Distribuída. Tipos de Sistemas Distribuídos

AULA 01: APRESENTAÇÃO

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

SSC510 Arquitetura de Computadores 1ª AULA

ATIVIDADES PRÁTICAS SUPERVISIONADAS

Designing Data Intensive Applications

Organização e Arquitetura de Computadores I

INE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUIDA PROVA 2 13/11/2017 ALUNO

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

Elementos de conexão e condições de paralelismo. Aleardo Manacero Jr.

AULA 06: PROGRAMAÇÃO EM MÁQUINAS PARALELAS

Paradigmas de Computação Paralela

Sistemas Distribuídos

Transcrição:

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES Arquiteturas Paralelas Medidas de desempenho Alexandre Amory Edson Moreno

Índice 2 1. Introdução 2. Medidas de Desempenho

Introdução 3 Aumento de desempenho dos PCs não atende diversas aplicações Previsão do tempo Prospecção de petróleo (análise de local para perfuração de poços de petróleo) Simulações físicas (aerodinâmica; energia nuclear) Matemática computacional (análise de algoritmos para criptografia) Bioinformática (simulação computacional da dinâmica molecular de proteínas) Problemas Falta de processamento Falta de memória Alternativas dos usuários destas aplicações Modelos mais abstratos Heurísticas Aceleradores (HW especial) Executar aplicação em máquinas mais poderosas (arquiteturas especiais ou arquiteturas paralelas)

Arquiteturas Especiais 4 Melhoram desempenho, replicando número de unidades ativas Normalmente processadores Principal objetivo Reduzir o tempo total de execução Outros objetivos Tolerância a falhas Reduz a probabilidade de falhas em cálculos cada unidade ativa calcula o mesmo problema no final ocorre uma votação Modelagem Reduz a complexidade da modelagem e implementação da aplicação, utilizando uma linguagem que expresse paralelismo Aproveitamento de recursos Aproveita melhor os recursos disponíveis, executando uma aplicação com múltiplos processos

Processamento Paralelo 5 Dificuldades inerentes ao paralelismo Dificuldade de alimentar vários processadores com dados Gera custo de comunicação entre processadores Programas mais complexos devido ao particionamento em unidades ativas O particionamento do programa não é realizado pelo SO Dificuldade em extrair o paralelismo da aplicação Programa que não foi preparado com paralelismo não executa mais rápido, apenas por estar em máquina paralela Exemplos de programas paralelos Aplicação com várias threads ( Invocation Aplicação usando RMI (Remote Method Aplicação com vários processos que se comunicam por sockets

6 Níveis de exploração de paralelismo Exploração de paralelismo está presente nos diversos níveis de um sistema

Granularidade de paralelismo 7 Definição Grau de agrupamento de funcionalidades em unidades ativas Grão grosso Particionamento em unidades de trabalho grandes Alto custo de processamento. Processador é a parte mais complexa do sistema Baixo custo de comunicação. Infra-estrutura de comunicação de menor complexidade Grão fino Particionamento em unidades de trabalho pequenas Baixo custo de processamento. Processador é a parte menos complexa do sistema Alto custo de comunicação. Infra-estrutura de comunicação de alta complexidade Grão médio Caso intermediário entre os dois anteriores

Process. Paralelo x Distribuído 8 Ambas áreas têm os mesmos complicadores Custo de comunicação Distribuição dos dados Dependências Motivações diferentes Processamento paralelo Ganho de desempenho Unidades ativas estão normalmente na mesma máquina» Custos de comunicação menores (baixa latência) Processamento distribuído Modelagem e o aproveitamento de recursos Unidades ativas estão normalmente afastadas» Custos de comunicação maiores (alta latência)

Process. Paralelo x Distribuído 9 Aumento de unidades ativas não aumenta necessariamente o desempenho Fatores que limitam o número de unidades ativas usadas eficientemente Quantidade de trabalho Arquitetura alvo Muitas unidades ativas para uma quantidade limitada de trabalho prejudica o desempenho do sistema O tempo pode aumentar!! Complicadores Dependências de dados Distribuição dos dados Sincronização

Exemplo (cenário) 10 Construção de um muro 1 pedreiro faz este muro em 3 horas 2 pedreiros fazem em 2 horas 3 pedreiros fazem em 1 hora e meia 4 pedreiros fazem em 2 horas (aumentou o tempo!!!) 8 pedreiros fazem em 3 horas e meia (tempo pior que a versão sem paralelismo!!!) Avaliação dos dados obtidos e porque ocorreu o aumento de tempo? Incidência de muitos complicadores Ganho de desempenho não é proporcional ao acréscimo de unidades ativas Duplicação do número de pedreiros (1 2) não reduz o tempo de execução pela metade

Exemplo (Complicadores) 11 Complicadores encontrados e a analogia com a computação paralela O muro só pode ser feito de baixo para cima Dependência de dados Os tijolos têm que ser distribuídos entre os pedreiros Distribuição dos dados Um pedreiro não pode levantar o muro do seu lado muito na frente dos outros pedreiros. Ritmo de subida do muro é dado pelo pedreiro mais lento Sincronização Se só existir um carrinho com cimento este será disputado por todos os pedreiros Áreas críticas

Índice 12 1. Introdução 2. Medidas de Desempenho

Medidas básicas de desempenho 13 Definição Permite indicar o desempenho de diferentes aspectos de um sistema paralelo Medidas Desempenho da aplicação Aqui considera-se o efeito conjunto do processamento, armazenamento e comunicação Desempenho da rede de interconexão Aqui considera-se o efeito apenas da comunicação

Desempenho de aplicação (Speed-Up) 14 Medida usada para avaliar o fator de aceleração Indica quantas vezes o programa paralelo é mais rápido que a versão seqüencial para executar uma dada tarefa É calculado pela razão entre o melhor tempo seqüencial e o melhor tempo da versão paralela SpeedUp(p) ou SU(p) = TS / TP(p) Onde: TS é o tempo de execução da aplicação na versão seqüencial TP é o tempo de execução na versão paralela p é o número de unidades ativas (processadores) utilizadas Se SU > 1 a versão paralela reduziu o tempo de execução (ficou mais rápido que a seqüencial) Se SU < 1 a versão paralela aumentou o tempo de execução (ficou mais lenta que a seqüencial)

Speed-Up (Teórico x Real) 15 Cada aplicação tem sua curva que depende Do processamento Da incidência de complicadores Toda aplicação tem um número ideal de unidades ativas para a obtenção do melhor desempenho em uma dada arquitetura alvo Não sendo verdade que quanto mais unidades ativas melhor

Dempenho da aplicação 16 Eficiência Indica a taxa de utilização média das unidades ativas Mostra se os recursos foram bem aproveitados É calculado pela razão entre o Speed-Up e o número de unidades ativas utilizadas Eficiência(p) ou E(p) = SU(p) / p Normalmente, as unidades ativas ficam parte de seu tempo esperando por resultados de vizinhos Reduz sua taxa de utilização e conseqüentemente a eficiência

Eficiência 17 Eficiência ideal Cada unidade ativa com 100% do tempo ativa (linha azul) A melhor taxa de utilização média não significa o menor tempo de execução Exemplo: o menor tempo de execução ocorreu com 11 unidades ativas e a melhor taxa de utilização média com 5 unidades ativas

Lei de Amdahl 18 Em programação, sempre existe algum trecho sequencial Não pode ser paralelizada Se s for a parte de trabalho seqüencial o que resta (1-s) será a parte susceptível de ser paralelizada Mesmo que a parte paralela seja perfeitamente escalável o desempenho (Speedup) está limitado pela parte seqüencial

Lei de Amdahl 19 Tempo de execução após melhoria = Tempo de execução não afetado + (Tempo de execução afetado / Quantidade de melhoria) Exemplo: Suponha que um programa seja executado em 100 segundos em uma máquina, com multiplicação responsável por 80 segundos desse tempo. O quanto precisamos melhorar a velocidade da multiplicação se queremos que o programa seja executado 4 vezes mais rápido?

Lei de Amdahl 20 Tempo de execução após melhoria = Tempo de execução não afetado + (Tempo de execução afetado / Quantidade de melhoria) Exemplo: Suponha que um programa seja executado em 100 segundos em uma máquina, com multiplicação responsável por 80 segundos desse tempo. O quanto precisamos melhorar a velocidade da multiplicação se queremos que o programa seja executado 4 vezes mais rápido? Que tal torná-lo 5 vezes mais rápido?