RoteiroIntrodução
Desempenho Medidas de desempenho Técnicas de avaliação
SimulaçãoFerramentas/Linguagens de simulaçãoAvaliação de resultados de simulaçãoConclusões
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
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.
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
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
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
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.
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
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
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
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
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
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?
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)
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)
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
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
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
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
Pacotes de SimulaçãoBiblioteca com estruturas de dados,
rotinas e algoritmosGrande economia de tempoInflexível Simplificação
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
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
Verificação X Validação
Verificar DepurarValidar Modelo = Mundo
Real
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)
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
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
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
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)
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
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
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
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
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