Tópicos em redes e sistemas distribuídos

Slides:



Advertisements
Apresentações semelhantes
Sistemas Distribuídos
Advertisements

Conceitos de Programação Paralela
Capitulo 6: Entrada e Saída
Sistemas Operacionais Gerência de Processador
Sistemas distribuídos Metas de Projeto Prof. Diovani Milhorim
A Interface entre Processadores e Periféricos
Barramentos Introdução.
Sistemas Operacionais - 3
Aula 06: Introdução ao Pipelining, Hazards Estruturais e Forwarding
MPI – Comunicações Com. Colectiva esquecida Barrier não há troca de dados, apenas sincroniza os processos int MPI_Barrier( MPI_Comm, comm) T com = T lat.
Introdução a Algoritmos Seqüenciais
ARQUITETURA DE COMPUTADORES II
Multithreading e multiprocessamento
MC542 Organização de Computadores Teoria e Prática
Coerência de Memórias Cache e Modelos de Consistência de Memória
Computação de Alto Desempenho
Arquiteturas Superescalares
Uso de Cluster de Computadores no Ambiente Corporativo
List Ranking: Um Estudo Experimental
Ambiente de simulação Os algoritmos previamente discutidos foram analisados usando um simulador de mobilidade. Ele modela uma cidade de 20 Km de raio,
Threads.
Paradigmas de Computação Paralela
Sistemas Operacionais
Universidade do Vale do Rio dos Sinos - São Leopoldo -
Protocolo CMB em simulação distribuída
List Ranking. List Ranking (1) Seja L uma lista representada por um vetor s tal que s[i] é o nó sucessor de i na lista L, para u, o último elemento da.
Paralelismo Computadores de alto-desempenho são utilizados em diversas áreas: - análise estrutural; - previsão de tempo; - exploração de petróleo; -
Índice de Carga e Desempenho em Sistemas Distribuídos Com eles é possível estimar a carga sobre um sistema afim de que seja possível realocar os usuários.
Algoritmos paralelos eficientes para alguns problemas de processamento de Cadeia de Caracteres Alunos: Diego Alencar dos Santos Melo Felipe Formagini Brant.
Linguagem de Programação IV
Tópicos em redes e sistemas distribuídos
Tópicos em redes e sistemas distribuídos B Carlos Oberdan Rolim Ciência da Computação.
Sistemas Distribuídos
Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação
Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Arquitetura de computadores
Arquitetura Cliente /Servidor
ÍNDICES DE CARGA E DE DESEMPENHO SSC-642 SISTEMAS COMPUTACIONAIS DISTRIBUÍDOS.
Arquitetura de computadores
Sistemas Distribuídos
Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 05.
PUCC 1 Agenda Memória CACHE. PUCC 2 Memória Cache Motivo –Melhorar a relação entre o tempo de acesso a dados e instruções e a velocidade dos processadores.
Linguagem de Programação JAVA
Universidade de Mogi das Cruzes Tec
TELP: Aplicações Paralelas em Ambientes de Passagem de Mensagens
ARQUITETURA DE COMPUTADORES II
POLIMIG Curso Técnico em Informática Disciplina: Hardware
PROGRAMAÇÃO DISTRIBUÍDA Aula 01 Prof. Henrique Mongelli
Análise e Projeto de Sistemas UNIVERSIDADE DE CRUZ ALTA Ciência da Computação 2010/1.
Processos.
O que é? É o processo de investigação técnica com intuito de identificar a qualidade, a segurança e a exatidão do software desenvolvido. A validação do.
Sistemas Distribuídos
Sistemas Operacionais
Entrada e Saída (E/S).
Troca de Mensagens Programação concorrente
Conceitos de thread Faculdade PITÁGORAS – Outubro de 2012
Back-End Compilação aula-11-back-end.pdf.
Sistemas Distribuidos
Linguagem de Programação IV Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Programação Paralela Simone de Lima Martins Março-Julho/2001 Universidade Federal do Mato Grosso do Sul.
Sistemas de Memória Cache em Multiprocessadores
Mestrando Gabriel G. Detoni Orientador Prof. Dante Barone Controle para Futebol de Robôs Utilizando Processamento Paralelo Seminário de Andamento.
Scalable Grid Application Scheduling via Decoupled Resource Selection and Scheduling VLADIMIR GUERREIRO Publicado em: IEEE International Symposium, 2006.
Sistemas Operacionais Distribuídos
Arquitetura de computadores
Redes e Sistemas Distribuídos II – Cód Prof. MSc. Ronnison Reges Vidal.
Projetar Processos. Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar distribuição | 2 Descrição do Projeto.
TÉCNICAS DE ESTIMATIVAS
Sistemas Distribuídos Introdução a Sistemas Distribuídos São Paulo, 2011 Universidade Paulista (UNIP) Programação.
Transcrição da apresentação:

Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação

Performance em programas paralelos

Existem múltiplas alternativas para a avaliar o desempenho de programas paralelos: Tempo de execução Eficiência Escalabilidade Requisitos de memória Custos de projeto, desenvolvimento e implementação, Portabilidade, Potencial de reutilização Etc. Geralmente o peso de cada um dos elementos anteriores varia de aplicação para aplicação.

Tempo de Execução O tempo de execução de um programa pode ser definido como o tempo que decorre desde que o primeiro processador inicia a execução até o último processador terminar. O tempo de execução pode ser decomposto no tempo de computação, de comunicação e no tempo ocioso: Texec = Tcomp + Tcomn + Tocioso O tempo de computação é o tempo despendido na computação, excluindo o tempo de comunicação e ocioso O tempo ocioso surge quando um processador fica sem tarefas, podendo ser minimizado com uma distribuição de carga adequada ou sobrepondo a computação com a comunicação O tempo de comunicação é o tempo que o algoritmo despende a enviar e receber mensagens

Speedup Speedup: aumento de velocidade observado quando se executa um determinado processo em p processadores em relação à execução deste processo em 1 processador. Então, tem-se: Onde: T1 = tempo de execução em 1 processador Tp = tempo de execução em p processadores Idealmente, o ganho de speedup deveria tender a p, que seria o seu valor ideal 1.

Speedup Amdahl's Law speedup = 1 / ( 1 - f ) A lei de Amdahl's determina o potencial de aumento de velocidade a partir da porcentagem paralelizável de um programa ( f ): speedup = 1 / ( 1 - f ) Num programa, no qual não ocorra paralização, f=0, logo, speedup=1 ( Não existe aumento na velocidade de processamento ); Num programa, no qual ocorra paralelização total, f=1, logo, speedup é infinito ( Teoricamente ).

Speedup (cont.) Três fatores podem ser citados que influenciam essa relação, gerando sobrecargas que diminuem o valor de speedup ideal: sobrecarga da comunicação entre os processadores, nível de paralelismo utilizado (em virtude do uso de granulação inadequada à arquitetura partes do código executável estritamente seqüenciais (Amdahl’s Law)

Lei de Amdahl Numa aplicação existe sempre uma parte que não pode ser paralelizada Se s for a parte de trabalho seqüencial (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 A lei de Amdahl impõe um limite no Speedup que pode ser obtido com P processadores: Mostra que para obter ganhos elevados é necessário reduzir ou eliminar os blocos seqüenciais do algoritmo.

Eficiência Outra medida importante é a eficiência, que trata da relação entre o speedup e o número de processadores. No caso ideal (speedup = p), a eficiência seria máxima e teria valor 1 (100%).

Escalabilidade Um algoritmo paralelo é escalável quando o número de processadores cresce se sua eficiência for constante quando o problema cresce

Balanceamento de Carga ("Load Balancing") A distribuição das tarefas por entre os processadores, deverá ser, de maneira que o tempo da execução paralela seja eficiente; Se as tarefas não forem distribuídas de maneira balanceada, é possível que ocorra a espera pelo término do processamento de uma única tarefa, para dar prosseguimento ao programa.

Granularidade ("Granularity") É a razão entre computação e comunicação: Fine-Grain Tarefas executam um pequeno número de instruções entre ciclos de comunicação; Facilita o balanceamento de carga; Baixa computação, alta comunicação; É posível que ocorra mais comunicação do que computação, diminuindo a performance. Coarse-Grain Tarefas executam um grande número de instruções entre cada ponto de sincronização; Difícil de se obter um balanceamento de carga eficiente; Alta computação, baixa comunicação; Possibilita aumentar a performance.