Avaliação de Desempenho de Sistemas Análise de Resultados de Simulação Paulo Adeodato Departamento de Informática Universidade Federal de Pernambuco © 2000 Paulo Adeodato Conteúdo Introdução Técnicas de Verificação do Modelo Técnicas de Validação do Modelo Remoção de Transientes Critério de Parada: Estimativa da Variância © 2000 Paulo Adeodato Introdução Passos no desenvolvimento do modelo: • Verificação do Modelo: assegura que o modelo está corretamente implementado • Validação do Modelo: assegura que o modelo é representativo do sistema real • Remoção de Transientes: elimina observações iniciais (transitórias) para garantir que o sistema atingiu o regime estável (permanente) • Critério de Parada: determina quanto deve durar a simulação © 2000 Paulo Adeodato Verificação x Validação do Modelo Verificação do modelo: • Depuração (debugging) do programa • Atividade do programador Validação do modelo: • Modelo = Mundo Real ? • Atividade do modelador Resultam em quatro possibilidades: • 1. Não-verificado, Inválido • 2. Não-verificado, Válido • 3. Verificado, Inválido • 4. Verificado, Válido © 2000 Paulo Adeodato Técnicas de Verificação do Modelo Simulações são programas longos e nelas se aplicam técnicas gerais de programação: de desenvolvimento, depuração e manutenção de programas de modularidade em procedimentos e interfaces de estruturação top-down Simulações são programas que tratam de processos estocásticos que dificultam a verificação ampla e algumas restrições facilitam o processo restrições a casos determinísticos restrições às mesmas sementes para os geradores de números aleatórios © 2000 Paulo Adeodato Técnicas de Verificação do Modelo-1 1. Projeto Modular Top Down 2. Medidas Antibugs 3. Varrida Estruturada 4. Modelos Determinísticos 5. Execução de Casos Simplificados 6. Trace 7. Apresentação de Gráficos On-Line 8. Teste de Continuidade 9. Testes Degenerativos 10. Testes de Consistência 11. Independência das Sementes © 2000 Paulo Adeodato Técnicas de Verificação do Modelo-2 1. Projeto Modular Top Down • Dividir para Conquistar: Modularidade • Módulos = Subrotinas, Subprogramas, Procedimentos. • Módulos têm interfaces bem definidas. • Podem ser desenvolvidos, depurados e mantidos independentemente. • Projeto Top-down estrutura hierárquica Módulos e submódulos (decomposição recursiva do problema) © 2000 Paulo Adeodato Técnicas de Verificação do Modelo-3 2. Medidas Antibugs: Inclusão de verificações • Probabilidades = 1 • Jobs remanescentes = Gerados - Servidos • Contagens de packets, nós e conexões gerados e destruídos 3. Varrida Estruturada: • Explique o código a outra pessoa ou grupo de pessoas. • Funciona pela simples explicação a terceiros 4. Modelos Determinísticos: • Uso de valores constantes em vez de aleatórios © 2000 Paulo Adeodato Técnicas de Verificação do Modelo-4 5. Execução de Casos Simplificados: restringir a simulação a casos analisáveis na teoria • Apenas um pacote • Apenas uma fonte • Apenas um nó intermediário 6. Trace = Lista de eventos e variáveis ordenada no tempo • Diversos níveis de detalhes: Trace de eventos Trace de procedimentos Trace de variáveis • O usuário seleciona o nível de detalhes • Inclui chave de ligar e desligar © 2000 Paulo Adeodato Técnicas de Verificação do Modelo-5 7. Apresentação de Gráficos On-Line • Torna a simulação interessante • Ajuda a vender os resultados • Mais compreensível do que o trace 8. Teste de Continuidade • Se baseia no fato de que pequena mudança na entrada deve produzir pequena mudança na saída (diferente de sistemas dinâmicos com bifurcação) • Executar para diferentes valores de parâmetros de entrada © 2000 Paulo Adeodato Técnicas de Verificação do Modelo-6 Teste de Continuidade (continuação) Antes © 2000 Paulo Adeodato Depois Outras Técnicas de Verificação do Modelo 9. Testes Degenerativos: Tente usar configurações e cargas extremas: uma CPU nenhum disco ou qualquer combinação 10. Testes de Consistência: • Resultados semelhantes para entradas que têm o mesmo efeito: Quatro usuários a 10OMbps x Dois a 20OMbps. • Construa uma biblioteca de testes de continuidade, degeneração e consistência 11. Independência das sementes: • Resultados semelhantes para sementes diferentes © 2000 Paulo Adeodato Técnicas de Validação do Modelo-1 Técnicas de validação: asseguram que as hipóteses do modelo são razoáveis As técnicas para um problema podem não se aplicar a outro problema (dependem do modelo) © 2000 Paulo Adeodato Técnicas de Validação do Modelo-2 Aspectos a serem validados: • 1. Hipóteses • 2. Valores dos parâmetros de entrada e distribuições • 3. Valores de saída e conclusões Técnicas: • 1. Intuição do especialista • 2. Medidas de um sistema real • 3. Resultados teóricos 3 aspectos x 3 técnicas = 9 testes de validação © 2000 Paulo Adeodato Técnicas de Validação do Modelo-3 1. Intuição do especialista • Forma mais prática e comum • Especialistas = envolvidos no projeto, arquitetura, implementação, análise, marketing ou manutenção do sistema Seleção = função do estágio do ciclo de vida do sistema Apresentar e discutir hipóteses, entradas e saídas Validar uma parte de cada vez ao longo do processo Observar se os especialistas conseguem distinguir as medições reais dos resultados do modelo. Exemplo: © 2000 Paulo Adeodato Técnicas de Validação do Modelo-4 2. Medidas de um Sistema Real • Comparar as hipóteses, entradas e saídas com o mundo real (utilizar as técnicas vistas na aula de comparação entre 2 sistemas) • Freqüentemente é inviável ou muito caro • Mesmo uma ou duas medidas contribuem para a validação (diagrama) © 2000 Paulo Adeodato Técnicas de Validação do Modelo-5 3. Resultados Teóricos • Fazer Análise = Simulação sob hipóteses simplificadas em: y = ax2 + bx + c ou fazer: b = c = 0 ou x1 = x2 = 0, não a = 0 y = k (x - x1) (x - x2) • Usados tanto para validar as análises quanto as simulações • Cautela: ambos podem ser inválidos (não representam o comportamento do sistema real) • Usar teoria em conjunto com a intuição de um especialista ou medições de um sistema real • Aplicar a teoria para uma configuração maior • Um "modelo completamente validado" é um mito. • Pode-se mostrar que o modelo não é inválido para algumas das situações comparadas. Tentar cobrir os casos mais importantes. © 2000 Paulo Adeodato Remoção de Transientes-1 Geralmente estamos interessados no desempenho do sistema em regime permanente Ao iniciar a operação, o sistema passa por um regime transitório até se estabilizar. Transientes de um circuito linear de 2a ordem (RLC) superamortecido subamortecido © 2000 Paulo Adeodato Remoção de Transientes-2 No caso geral, não há uma definição exata do que seja o regime transitório. Assim, teremos soluções heurísticas: • 1. Execuções longas • 2. Inicialização apropriada • 3. Truncamento • 4. Descarte dos dados iniciais • 5. Média móvel de replicações independentes • 6. Médias de lotes (Batch) © 2000 Paulo Adeodato Técnicas de Remoção de Transientes-1 1. Execuções Longas: • Consiste em realizar simulações longas o suficiente para assegurarem que as condições iniciais não afetem os resultados • Desperdiçam recursos • É difícil assegurar que são longas o bastante 2. Inicialização Apropriada: • Consiste em iniciar a simulação num estado próximo ao do regime permanente esperado • Reduz o comprimento e o efeito do regime transiente. • Exemplo: Considerar jobs na fila em vez de fila vazia. Partir de uma análise simples ou de simulação anteriores. Nas técnicas seguintes se supõe que a variabilidade é menor no regime permanente que no transitório. © 2000 Paulo Adeodato Técnicas de Remoção de Transientes-2 3. Truncamento • Plote o máx-min (range) de n - l observações para l = 1, 2, ... • Quando a (l + 1)-ésima observação não for nem um mínimo nem um máximo encerrou o regime transiente. Exemplo:1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 10, 9, 10, 11, 10, 9, 10, 11, 10, 9,... Para l = 9, Range = (9, 11), próxima observação = 10 Algumas vezes pode produzir resultados incorretos (se tiver máximo ou mínimo no transiente) © 2000 Paulo Adeodato Técnicas de Remoção de Transientes-3 4. Descarte dos dados iniciais • • • • Descartar algumas observações iniciais Calcular a média Nenhuma mudança Regime permanente Usar diversas replicações para suavizar a média • m replicações cada uma de tamanho n • xij = j-ésima observação da i-ésima replicação • Passos: 1. Obtenha a trajetória média, tomando a média entre as replicações: 2. Obtenha a média global © 2000 Paulo Adeodato 1 m x j xij , j 1,2,...n m i 1 1 n x xj n j 1 Técnicas de Remoção de Transientes-4 Descarte dos dados iniciais (continuação) faça l = 1 e prossiga para o próximo passo 3. Descarte as primeiras l observações e obtenha uma média global a partir dos restantes n - l valores: n 1 xl nl 4. Calcule a mudança relativa: x j l 1 j xl x mudança relativa x 5. Repita os passos 3 e 4 variando l de l a (n - l) 6. Plote a média global e a mudança relativa 7. Valor de l no joelho = comprimento do intervalo transiente © 2000 Paulo Adeodato Técnicas de Remoção de Transientes-5 Descarte dos dados iniciais (continuação) © 2000 Paulo Adeodato Técnicas de Remoção de Transientes-6 5. Média Móvel de Replicações Independentes (Média dentro de uma janela de tempo móvel) • 1. Obtenha uma trajetória média tomando a média entre replicações: Faca k = 1 e prossiga para o próximo passo. • 2. Plote uma trajetória da média móvel de 2k + 1 valores • 3. Repita o passo 2, com k = 2,3, ... até que a curva fique suave. • 4. O valor de j no joelho corresponde ao comprimento da fase transiente. © 2000 Paulo Adeodato Técnicas de Remoção de Transientes-7 © 2000 Paulo Adeodato Técnicas de Remoção de Transientes-8 6. Médias de Lotes (Batch) • Execute uma simulação longa e divida-a em partes (batches ou lotes ) de igual duração • Estude a variância das médias dos lotes em função do comprimento do lote • Passos: 1. Para cada lote, calcule a média do lote: 1 n xi xij , j 1,2,...m n i 1 © 2000 Paulo Adeodato Técnicas de Remoção de Transientes-9 Médias de Lotes (Batch) (continuação) • Passos: (continuação) • 2. Calcule a média total: 1 m x xi m i 1 • 3. Calcule a variância das médias dos lotes: 1 m 2 Var ( x ) ( x x ) i m 1 i 1 • 4. Repita os passos 1 e 3, para n = 3, 4, 5,... • 5. Faca um gráfico da variância em função do comprimento n do lote. • 6. O valor de n no qual a variância definitivamente começa a decrescer, corresponde ao intervalo transiente. © 2000 Paulo Adeodato Técnicas de Remoção de Transientes-10 Médias de Lotes (Batch) (continuação) Motivação: Comprimento do lote << transiente média global = média inicial Menor variância Comprimento do lote >> transiente média global = média do estado permanente Menor variância Ignore os picos seguidos por uma nova subida. © 2000 Paulo Adeodato Critério de Parada: Estimativa da Variância-1 Execute até que o intervalo de confiança seja estreito o bastante (a, b) x z(1 2)Var( x ) Para observações independentes: Var ( x) Var ( x ) n Independência não é aplicável a muitas simulações. Grande tempo de espera para o i-ésimo job Grande tempo de espera para o (i +1)-ésimo job © 2000 Paulo Adeodato Critério de Parada: Estimativa da Variância-2 Para observações correlacionadas: Var ( x) Variância real n Soluções: • 1. Replicações Independentes • 2. Médias de Lotes (batches) • 3. Método Regenerativo © 2000 Paulo Adeodato Técnicas de Estimativa da Variância 1-Replicações Independentes Supõe que as médias de replicações independentes são independentes Conduza m replicações de tamanho n +n0 cada • 1. Calcule a média para cada replicação: • 2. Calcule a média geral para todas as replicações: © 2000 Paulo Adeodato Técnicas de Estimativa da Variância-1 Replicações Independentes (Continuação) • 3. Calcule a variância das médias das replicações: • 4. O intervalo de confiança para a resposta média é: Mantenha as replicações longas para evitar desperdícios Normalmente bastam dez replicações © 2000 Paulo Adeodato Técnicas de Estimativa da Variância-2 Médias de Lotes (batches)-1 Também chamado de método das subamostras Execute uma simulação por um tempo longo • Descarte o intervalo transiente inicial e divida as observações restantes em diversos lotes ou subamostras 1. Calcule a média para cada lote: 2. Calcule a média geral: © 2000 Paulo Adeodato Técnicas de Estimativa da Variância-2 Médias de Lotes (batches)-2 3. Calcule a variância das médias dos lotes: 4. O intervalo de confiança para a resposta média é: Menos desperdício do que replicações independentes Mantenha os lotes longos para evitar correlações Verificação: Calcule a autocovariância de médias de lotes sucessivos: Dobre n até que a autocovariância seja pequena. © 2000 Paulo Adeodato Médias de Lotes (batches)-2 Estudo de Caso: Redes de Interconexão Redes n-cubo binárias indiretas: Usadas para a interconexão entre processadores e memórias Rede de dois estágios com fan-out completo. • Comprimento do lote • 1 • 2 • 4 • 8 • 16 • 32 • 64 • 128 • 256 • 512 • 1024 Autocovariância -0,18792 0,02643 0,11024 0,08979 0,04001 0,01108 0,00010 -0,00378 0,00027 0,00069 0,00078 Variância 1,79989 0,81173 0,42003 0,26437 0,17650 0,10833 0,06066 0,02992 0,01133 0,00503 0,00202 Com comprimento 64, auto-covariância < 1% da variância da amostra © 2000 Paulo Adeodato Técnicas de Estimativa da Variância-3 Método Regenerativo-1 O comportamento após o período ocioso não depende da história passada Sistema tem um novo nascimento Ponto de regeneração Ciclo de regeneração: Entre dois pontos sucessivos de regeneração © 2000 Paulo Adeodato Técnicas de Estimativa da Variância-3 Método Regenerativo-2 Usar as médias dos ciclos de regeneração Problemas: • Nem todos os sistemas são regenerativos • Comprimentos diferentes Cálculo mais complexo • Média geral Média das médias dos ciclos As médias dos ciclos são dadas por: © 2000 Paulo Adeodato Técnicas de Estimativa da Variância-3 Método Regenerativo-3 Média geral: 1. Calcule as somas dos ciclos: 2. Calcule a média geral: © 2000 Paulo Adeodato Técnicas de Estimativa da Variância-3 Método Regenerativo-4 3. Calcule a diferença entre as somas esperada e observada dos ciclos: 4. Calcule a variância das diferenças: © 2000 Paulo Adeodato Técnicas de Estimativa da Variância-3 Método Regenerativo-5 5. Calcule o comprimento médio dos ciclos: 6. O intervalo de confiança para a resposta média é dado por: 7. Não há necessidade de remover observações do período transiente. © 2000 Paulo Adeodato Técnicas de Estimativa da Variância-3 Método Regenerativo-5 Problemas: • 1. Os comprimentos dos cicios são imprevisíveis. Não dá para planejar o tempo de simulação antecipadamente. • 2. Encontrar o ponto de regeneração pode demandar um monte de verificações após cada evento. • 3. Muitas das técnicas de redução da variância não podem ser utilizadas devido ao comprimento variável dos ciclos. • 4. Os estimadores da média e da variância são polarizados © 2000 Paulo Adeodato Simulações Terminais Temos interesse no desempenho do transiente Exemplo, Tráfego de redes Sistemas que são desligados Não é necessária a remoção de transientes. Condições finais: Pode ser necessário excluir dos resultados a parte final da simulação Técnicas semelhantes às de remoção de transientes. © 2000 Paulo Adeodato Tratamento de Entidades Abandonadas Tempo médio de serviço: Tempo total de serviço Número de jobs que completaram o serviço Tempo médio de espera: Soma do tempo de espera Número de jobs que receberam serviço Comprimento Médio da Fila: Comprimento da fila no evento j Número de eventos n Comprimento-da-fila(t)dt © 2000 Paulo Adeodato Referências Bibliográficas Raj Jain (1991) The Art of Computer Systems Performance Analysis: Techniques for Experimental Design, Measurement and Modeling John Wiley & Sons Capítulo 25 © 2000 Paulo Adeodato © 2000 Paulo Adeodato © 2000 Paulo Adeodato © 2000 Paulo Adeodato Redução da Variância Reduza a variância através do controle das cadeias de números aleatórios Introduz correlação em observações sucessivas Problema: O uso sem o devido cuidado pode não dar certo, levando a aumentar a variância. Apenas para analistas com conhecimentos sofisticados de estatística Não é recomendado para iniciantes © 2000 Paulo Adeodato Redução da Variância: Exercício 25.1 Imagine que você foi chamado como um especialista para rever um estudo de simulação. Quais dos seguintes resultados de simulação você consideraria como nãointuitivo e gostaria de tê-los validado cuidadosamente: 1. A vazão de um sistema aumenta à medida que a sua carga aumenta. 2. A vazão de um sistema diminui à medida que a sua carga aumenta. 3. O tempo de resposta aumenta à medida que a carga aumenta. 4. O tempo de resposta de um sistema diminui à medida que a carga aumenta. 5. A taxa de perda de um sistema diminui à medida que a carga aumenta. © 2000 Paulo Adeodato