Protocolo CMB em simulação distribuída Davi N. Sousa 6445400 Edgar T. Hirama 6445518 Henrique T. P. Jayme 6443547 Rodrigo P. R. e Silva 6445331 Vitor Jordão 6445373
Roteiro da Apresentação Introdução Simulação Simulação distribuída Protocolo conservativo CMB Deadlock Resolução Detecção Recuperação Lookahead Pacotes e linguagens para simulação
Introdução Avaliação de desempenho Técnicas de aferição Complexidade de modelos Protocolo CMB
Simulação Realizar experimentos Avaliar mudanças Reduzir custos e riscos Utilização abrangente Métodos para sincronização Otimistas Conservadores Simulação Distribuída
Simulação Distribuída Aumento da complexidade das simulações sequenciais – solução inviável Particionar algoritmos Ambientes paralelos Capacidade de comunicação Reduzir o tempo de execução
Protocolo CMB Para simular um sistema físico, constrói-se um sistema lógico que simule ações do sistema físico Problema da simulação distribuída: garantir coerência temporal
Protocolo CMB Uma abordagem: único clock em todo sistema Gera gargalo no sistema Outra abordagem: um clock por processo Sem sincronismo global Comunicação via troca de mensagens
Protocolo CMB Primeiros algoritmos para simulação distribuída desenvolvidos por Chandy, Misra e Bryant Protocolo CMB CMB: protocolo conservativo Só trata eventos se puder garantir que não chegará outro com marca de tempo menor
Protocolo CMB Problema básico: determinar quando é seguro processar um evento Problema de causa e efeito Deadlock Idéia do Protocolo: incluir o tempo de envio na mensagem Mensagem do tipo (T, m)
Protocolo CMB Valor do clock do canal (vcc): Simula seguramente até o tempo 7
Deadlock Conjunto de processos em Deadlock: cada um deles espera a execução de um evento por outro Principal enfoque de protocolos conservativos
Resolução de Deadlock Mensagens Nulas: indica que o processo físico não envia mensagem no instante t Mensagem do tipo (T, nula) Garante que qualquer mensagem futura terá marca de tempo maior que t Tratamento: atualiza valor do clock do canal
Resolução de Deadlock Objetivo: sistema todo com clock igual a T mesmo que nem todos os processos enviem mensagem até o tempo T Problema: sobrecarga devido ao envio de mensagens nulas
Detecção de Deadlock Baixa Ocorrência de Deadlocks Técnica das Mensagens Nulas -> Sobrecarga Abordagem Alternativa Técnica do Marcador (Chandy e Misra)
Detecção de Deadlock Técnica do Marcador Mensagem especial “Marcador” Circula por todos os canais Rede deve ser fortemente conectada Enviado sozinho e em tempo finito Contém informações para detecção Flag (Branco ou Preto) Deadlock -> últimos N processos são brancos Sucesso garantido com ordem correta
Recuperação de Deadlock Técnica do Marcador Recuperação de Deadlocks Armazena tempo do próximo evento Deadlock Tempo do próximo evento Processo Lógico responsável pelo evento Mensagens Nula (p/ PL responsável) Avanço de Clock (todos os PLs) Outra opção: Marcador arbitrário Diminuição de Overhead
Lookahead Intervalo em que processos não podem agendar novos eventos (Chandy e Misra) Redução do Tempo de Execução do CMB Duas definições: Inferir o futuro com certeza Prever o que [não] acontecerá na simulação Processo prevê o que pode gerar em T + L “Lookahead L” L pequeno -> Sincronizações e baixo desempenho L grande -> Erros e incoerência
Desvantagem do Protocolo Conservativo Não explora totalmente o paralelismo Pessimista -> Exige execução sequencial Desempenho ligado à capacidade de “olhar à frente”
Pacotes e Linguagens para Simulação Ambiente de Simulação Representação de tempo Emissão de Relatórios Coleta de dados estatísticos . . . Transcrição em programa de simulação Programas de simulação automática Ambiente de simulação fornecido Usuário livre da transcrição
Pacotes e Linguagens para Simulação Linguagens de Programação Convencionais Programador utiliza conhecimento próprio da linguagem de preferência Flexibilidade Ferramentas do ambiente de simulação não são fornecidas, devem ser implementadas
Pacotes e Linguagens para Simulação Linguagens de Simulação Projetadas para diversos tipos de modelos Não é necessária implementação das ferramentas do ambiente de simulação Classificadas em: ( de acordo com modelo ) Orientadas a Evento Orientadas a Atividade Orientadas a Processo
Pacotes e Linguagens para Simulação Pacotes de Uso Específico Voltados a aplicações particulares Pouca flexibilidade Ex.: ARENA Ambiente gráfico para simulação Não necessita código ( programação ) Simulações de transporte de gás natural, manufatura
Pacotes e Linguagens para Simulação Extensões Funcionais Inserção de bibliotecas a linguagens convencionais Fornecimento das ferramentas de um ambiente de simulação Ex.: SMPL
SMPL (Simulation Language Program) Extensão funcional da linguagem C Simulação discreta orientada a eventos Enfoque a eventos fica invisível ao programador
SMPL entidades básicas: Recursos Tokens Eventos barramento(rede local) CPU(sistema computacional) requisição, liberação e preempção de eventos Tokens Eventos
SMPL entidades básicas: Recursos Tokens Eventos Representa uma entidade ativa do sistema pacote em uma rede de comunicação tarefa em sistema computacional Eventos
SMPL entidades básicas: Recursos Tokens Eventos Qualquer mudança de estado em qualquer entidade do sistema CPU ocupada -> disponível Processo terminou de ser executado SMPL escalona e seleciona pela ordem dos tempos de ocorrência
SMPL Programa de simulação com este recurso: Rotinas: Uma de iniciação Uma de controle Indica o número do próximo evento Uma ou mais de eventos Escalona um ou mais eventos Ações para coleta de dados estatísticos
SMPL Primitivas: smpl: facility: request: inicia o sistema cria um descritor para cada recurso do modelo request: requisita atendimento a um dos servidores do recurso
SMPL Primitivas: release: schedule: cause: libera um servidor de um dado recurso schedule: faz o escalonamento dos eventos cause: remove o primeiro elemento da lista de eventos futuros
SMPL Primitivas para a fila de eventos para a lista de eventos futuros para análise estatística
Conclusão A construção de modelos para a simulação de sistemas reais é uma ferramenta aplicável em diversas áreas simulação em sistemas distribuídos (complexidade) simulação na engenharia, ciência da computação, economia e aplicações militares
Conclusão Protocolo CMB O grande problema da simulação em um sistema distribuído é garantir a coerência temporal uma vez que cada parte do sistema estará executando em uma unidade diferente promover a troca de mensagens utilizando uma marca de tempo garantia que apenas o evento com menor marca de tempo pode ser executado em todo o ambiente de simulação.
Fim