Simulação de Sistemas Computacionais Por: Carlos Cordeiro {[email protected]}

34
Simulação de Sistemas Computacionais Por: Carlos Cordeiro {[email protected]}

Transcript of Simulação de Sistemas Computacionais Por: Carlos Cordeiro {[email protected]}

Page 1: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}

Simulação de Sistemas Computacionais

Por:Carlos Cordeiro

{[email protected]}

Page 2: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}

RoteiroIntrodução

Desempenho Medidas de desempenho Técnicas de avaliação

SimulaçãoFerramentas/Linguagens de simulaçãoAvaliação de resultados de simulaçãoConclusões

Page 3: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}

IntroduçãoDesempenho é um critério chaveTodo profissional em Ciência da

Computação deve: Enumerar os requisitos de performance

de seus sistemas Comparar diferentes alternativas até

encontrar a que melhor se adequa à seus requisitos

Page 4: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}

O que é “Desempenho”?Webster’s:

The manner in which a mechanism performs.

Aurélio: Mil. Conjunto de características ou de

possibilidades de atuação de uma aeronave, tais como velocidade de cruzeiro, velocidade de pouso, capacidade de carga, autonomia de vôo, etc.

Page 5: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}

Avaliação de DesempenhoObjetivo:

Enfatizar técnicas que resolvam os problemas do dia-a-dia

Exemplos problemas: Especificar requisitos de desempenho Comparar dois ou mais sistemas Determinar o valor ótimo de um parâmetro Encontrar o gargalo de um sistema Caracterizar a carga de um sistema

Page 6: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}

Medidas de desempenho de um automóvel

Velocidade máxima Aceleração (tempo para ir de 0 a 100

km/h)Espaço de frenagem a uma dada

velocidade

Page 7: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}

Medidas de desempenhoVelocidade

tempo de resposta, vazão e utilizaçãoConfiabilidade

Probabilidade de erro Intervalo entre erros

Disponibilidade Duração da falha Intervalo entre falhas

Page 8: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}

Medidas de desempenho de sistemas computacionais

Vazão/Taxa (Throughput) Taxa na qual os pedidos são atendidos

(servidos) pelo sistema.Utilização:

Fração do tempo em que o recurso permanece ocupado atendendo os pedidos dos usuários

Tempo de resposta: tempo decorrido entre o pedido e o

início/conclusão da realização do serviço.

Page 9: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}

Técnicas de AvaliaçãoCritério Modelagem

analíticaSimulação Medição

Estágio Qualquer Qualquer Protótipo

Temponecessário

Pouco Médio Variado

Ferramentas Analistas Linguagens deProgramação

Instrumentação

Precisão Pouca Moderada Variada

Avaliação deCompromissos

Fácil Moderada Difícil

Custo Baixo Médio Alto

Saleability Baixa Média Alta

Page 10: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}

ModelosNos deparamos todos os dias com

vários os tipos de modelos Ex: Brinquedos são modelos de objetos

do mundo realUm modelo é um tipo de abstração

Page 11: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}

ModelosO que são Modelos?

Um modelo é a descrição de algum sistema com o objetivo de prever o que acontece quando determinadas ações são tomadas

É uma aproximação de um sistema existente ou hipotético

Page 12: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}

Modelos como AbstraçõesUm modelo é uma simplificação do objeto

do mundo real (sistema, processo, ...)Perda de propriedades do sistema realContudo, simplificações:

custam menos são mais rápidas

Simulação X Modelos Simular é estudar um modelo no tempo

Page 13: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}

SimulaçãoTécnica muito útil para ADSEspecialmente:

se sistema não disponível para prever o desempenho de diversas

alternativas facilidade de efetuar comparações para

uma maior variedade de cargas e de ambientes

Page 14: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}

Simulação: perguntas e respostas...

Quais os erros mais comuns?Como está caracterizado uma simulação de

um sistema computacional?Qual linguagem devo usar para simular?Como posso avaliar os resultados da minha

simulação? Por quanto tempo devo executar minha

simulação?Quais são as dicas mais importantes?

Page 15: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}

Erros ComunsNível de abstração inadequado

Modelo inadequadoLinguagem inadequadaModelos não verificados ou inválidosTratamento inadequado das condições

iniciaisSimulações muito curtasGeradores de número aleatórios ruins

(semente inadequada Correlação)

Page 16: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}

Modelo de Sistemas Computacionais

Tempo contínuo (estado definido em todos os instantes)

Estados discretos ( eventos discretos)Probabilístico (resultados imprevisíveis)Dinâmico (tempo é uma variável)Não-Linear (Saída = f(Entrada))Aberto ou Fechado (entrada externa)Estável ou Instável (estado permanente)

Page 17: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}

Selecionando uma Linguagem para Simulação

Linguagem de simulaçãoLinguagem de propósito geralExtensão de uma linguagem de

propósito geralPacote de simulação

Page 18: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}

Linguagens de SimulaçãoEconomizam tempo de desenvolvimentoRecursos:

avançar no tempo escalonar (programar) eventos geração de valores aleatórios coleta de dados estatísticos (probes)

Foco no problemaCódigo modular e legível

Page 19: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}

Linguagem de Propósito GeralFamiliaridade do analistaInício imediatoOverhead no desenvolvimento de

rotinas típicas de simulação Tratamento de eventos Geração de valores aleatórios

Eficiência e Flexibilidade

Page 20: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}

Extensão de uma Linguagem de Propósito Geral

Bibliotecas que contém funções de simulação

Sistema hospedeiroCompromisso entre

Eficiência Flexibilidade Portabilidade

Page 21: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}

Pacotes de SimulaçãoBiblioteca com estruturas de dados,

rotinas e algoritmosGrande economia de tempoInflexível Simplificação

Page 22: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}

Ferramentas para SimulaçãoMétodos Formais

Z-eves e Z-ansIA

Prolog JEOPS (http://www.di.ufpe.br/~csff/jeops)

Redes de Computadores SMPL BONeS NS - Network Simulator

Simscript

Linguagens Funcionais

Page 23: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}

Avaliação dos Resultados de Simulação

Técnicas de verificação do modeloTécnicas de validação do modeloRemoção de transientesCritério de parada: estimativa da

variânciaRedução da variância

Page 24: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}

Verificação X Validação

Verificar DepurarValidar Modelo = Mundo

Real

Page 25: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}

Técnicas de Verificação do Modelo

Projeto Modular Top-Down Dividir para Conquistar

Medidas Antibugs Inclusão de verificações (Probabilidades=1)

Varrida Estruturada Explicação do código

Trace Lista de eventos e variáveis (níveis de trace)

Page 26: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}

Técnicas de Verificação do Modelo

Teste de continuidade Pequena mudança na entrada

pequena mudança na saídaTestes degenerativos

Configurações e cargas extremasIndependência das sementes

Resultados semelhantes para sementes diferentes

Page 27: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}

Técnicas de Validação do ModeloAspectos a serem validados

Hipóteses Valores dos parâmetros de entrada e

distribuições Valores de saída e conclusões

Técnicas Intuição do especialista Medidas de um sistema real Resultados teóricos

Page 28: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}

Técnicas de Validação do ModeloUm modelo completamente válido é

um MITOPodemos mostrar apenas que um

modelo não é inválido para algumas situações

Page 29: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}

Remoção de TransientesGeralmente estamos interessados no

desempenho do sistema em estado permanente Remover a parte inicial

Heurísticas Execuções longas Inicialização apropriada Médias (várias iterações)

Page 30: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}

Executar até que o intervalo de confiança seja estreito o bastante (5%, 10%, ...) x ± z1-/2Var(x)

Para observações independentes Var(x) = Var(x)/n

Independência não é aplicável a muitas simulações

Para observações correlacionadas Variância real >> Var(x)/n

Critério de parada: estimativa da variância

Page 31: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}

Critério de parada: estimativa da variância

Soluções Replicações Independentes (~10

replicações) Médias de Lotes (batches) Método Regenerativo (ciclos de

regeneração)Métodos para determinar a variância de

de sistemas com eventos dependentes

Page 32: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}

Redução da VariânciaReduza a variância através do controle

da cadeia de números aleatórios Introduz correlação em observações

sucessivasProblema

O uso sem o devido cuidado pode não dar certo, levando a aumentar a variância

Não é recomendado para iniciantes

Page 33: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}

Algumas Dicas para SimulaçãoDefina o sistema a ser modeladoDefinir as propriedades importantes do

sistemaDeterminar que propriedades ignorar no

modelo (conhecer o problema)Decidir que método usar e porqueDevida o modelo em sub-problemasVerificar e Validar os sub-modelos com o

sistema real

Page 34: Simulação de Sistemas Computacionais Por: Carlos Cordeiro {cmc@cin.ufpe.br}

ConclusõesADS é uma ArteSimulação é um dos métodos mais

aplicados e eficazes para ADSApenas simulação não é suficiente.

Valide os resultados de simulação: Modelagem analítica Medição