TerraME HPA Saulo Henrique Cabral Silva BCC391 - Monografia II

Slides:



Advertisements
Apresentações semelhantes
IFTO ESTRUTURA DE DADOS AULA 05 Prof. Manoel Campos da Silva Filho
Advertisements

Programa das Aulas 20/09/05 - Apresentação da disciplina
1 ANÁLISE E PROJETO NO PROCESSO DE DESENVOLVIMENTO DE SOFTWARE PROCESSO: CONCEITO MODELOS DE PROCESSO PROCESSO UNIFICADO HISTÓRIA CARACTERÍSTICAS AS QUATRO.
Introdução a Engenharia de Software de Sistemas Multi-Agentes
Amintas engenharia.
Palestras, oficinas e outras atividades
Noções de Sistemas Operacionais
Vamos contar D U De 10 até 69 Professor Vaz Nunes 1999 (Ovar-Portugal). Nenhuns direitos reservados, excepto para fins comerciais. Por favor, não coloque.
Introdução à Programação usando Processing Programação Gráfica 2D Animações Exercício Animações 14/10/09 Bruno C. de Paula 2º Semestre 2009 > PUCPR >
14/10/09 Uma animação possui: Início; Passo; Fim; 1.
Nome : Resolve estas operações começando no centro de cada espiral. Nos rectângulos põe o resultado de cada operação. Comprova se no final.
Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 2.
Ludwig Krippahl, 2009 Programação para as Ciências Experimentais 2008/9 Teórica 6.
João Carlos Porto Orientadora: Prof.ª Dr.ª Junia Coutinho Anacleto 26/03/2010 Projeto de interceo.
Introdução à Informática
MC542 Organização de Computadores Teoria e Prática
Arquiteturas Diferentes
MC542 Organização de Computadores Teoria e Prática
Chapter 4: Threads.
1 Complexidade de Algoritmos Complexidade de pior caso Complexidade de melhor caso de uso bem menos freqüente em algumas situações específicas Complexidade.
1º SEMINÁRIO DO PROJETO MULTIGRID
FUNÇÃO MODULAR.
Curso Sistemas de Informação I Disciplina: Arquitetura de Software
Auditoria de Segurança da Informação
Aula 4 Nomes, Vinculações, Tipos e Escopos
Aula 8 Orientação à Objetos
Aula 6 Subprogramas Universidade do Vale do Rio dos Sinos
1 Aula 7 ImplementandoSubprogramas Universidade do Vale do Rio dos Sinos
Experiments with Strassen’s Algorithm: from sequential to parallel
Programação Baseada em Objectos Desenho de TAD
1 Felipe L. SeverinoPOD XtremWeb Felipe L. Severino Programação com Objetos Distribuídos paralela e.
Listas Encadeadas.
Classes e objetos Modelagem
Classes e objetos P. O. O. Prof. Grace.
Introdução a Programação Orientada a Objetos
Provas de Concursos Anteriores
APRESENTAÇÃO Está prevista a utilização de 6 aulas (6 blocos de 90 minutos) para o ensino do Subtema das Funções Quadráticas. Todas as aulas servirão.
Semana 03: Comandos de desvio de fluxo. Expressões lógicas.
MECÂNICA - DINÂMICA Exercícios Cap. 13, 14 e 17. TC027 - Mecânica Geral III - Dinâmica © 2013 Curotto, C.L. - UFPR 2 Problema
PROGRAMAÇÃO I UNIDADE 1.
Cinética Plana de uma Partícula: Força e Aceleração Cap. 13
Object Oriented Software Construction (MEYER, Bertrand)
1 António Arnaut Duarte. 2 Sumário: primeiros passos;primeiros passos formatar fundo;formatar fundo configurar apresentação;configurar apresentação animação.
SISTEMAS OPERACIONAIS
Salas de Matemática.
MINISTÉRIO DO PLANEJAMENTO Projeto de Lei Orçamentária 2010 Ministro Paulo Bernardo Silva Brasília, 31 de agosto de 2009.
Coordenação Geral de Ensino da Faculdade
Coordenação Geral de Ensino da Faculdade
Plataforma Brasil – Submissão de pesquisa
Momentos de Hu e Zernike para o Reconhecimento de Linguagem de Sinais
Sistemas Operacionais
Desenvolvimento de um Telefone IP Baseado em um Processador Blackfin
O título deve ser curto e objetivo
Semana 03 Comandos de desvio de fluxo. Expressões lógicas.
É u m e l e m e n t o f u n d a m e n t a l
Técnicas de Modelagem para Aplicações em Computação Gráfica
Projeto de Banco de Dados
ENGA78 – Síntese de Circuitos Digitais
1 2 Observa ilustração. Cria um texto. Observa ilustração.
Grupo A – Azul Claro, Marrom, Laranja
PROGRAMAÇÃO MATEMÁTICA MÉTODO GRÁFICO
Universidade Federal de Pernambuco Centro de Informática Aluno: Erica Sousa – Orientador: Paulo Maciel – Modelagem de.
MATRICIAL CONSULTORIA LTDA. PREFEITURA MUNICIPAL DE GARIBALDI 23/10/ : ATENÇÃO Os locais descritos nas planilhas anexas não correspondem ao total.
TRANSFORMAÇÕES DE TENSÕES
CALENDÁRIO SEXY Ele & Ela. CALENDÁRIO SEXY Ele & Ela.
Olhe fixamente para a Bruxa Nariguda
Diagramas de Venn e de Carroll Não se chamam propriamente ferramentas/instrumentos estatísticos mas ajudam a organizar de uma forma simples alguns tipos.
Rio Verde - Goiás - Brasil
Máquina de Turing Universal
Módulo Compras Relatórios e Relações 1. Objetivo 2 Conhecer os relatórios e as relações do sistema disponibilizadas no módulo Compras.
Transcrição da apresentação:

TerraME HPA Saulo Henrique Cabral Silva BCC391 - Monografia II Proposta de Monografia BCC391 - Monografia II TerraME HPA Saulo Henrique Cabral Silva Orientador: Joubert de Castro Lima Co-orientador: Tiago Garcia de Senna Carneiro

Introdução - TerraME Simulador espaço-temporal para problemas da Geo- Ciência. Ele pode ser usado para simular problemas espaciais e não espaciais. O TerraME tem suporte para autômatos celulares, para modelos baseados em agentes e modelos de rede rodando em espaços celulares regulares e irregulares . Ele apresenta duas inovações, são elas: Espaços Anisotrópicos e automatos Híbridos. Desenvolvido em parceria com o INPE, no laboratório TerraLAB Software Livre pesquisadores, empresários, e governos forneçam respostas aos desafios científicos e tecnológicos ligados ao entendimento do funcionamento dos sistemas terrestres, mas para isso eles precisam de ferramentas de modelagem que sejam confiáveis e capazes de capturar a dinâmica e os resultados das dinâmicas das ações da sociedade humana.

Justificativa - Nosso Problema Mudanças ambientais. Modelos ficaram muito complexos. Mais processos começaram a influenciar na dinâmica do modelo. Complexidade de execução dos modelos aumentou muito. A simulação de processos ambientais ou a simulação das interações humano-ambiente são instrumentos de pesquisa de impacto e predição.

Justificativa - Nosso Problema Os modelos passaram a levar muito tempo para serem executados. Muitas iterações e rotinas precisam ser efetuadas. O usuário aguarda muito tempo para obter o resultado. O poder computacional dos novos har- dwares não é utilizado. Os modelos agora devem considerar mais variáveis, mais processos passam a interferir na dinâmica do fenômeno e mais dados são necessários.

Objetivo Reduzir o tempo de execução dos modelos. Tirar o máximo de proveito do hardware. Criar uma API que auxilie o usuário a realizar a paralelização do modelo. As modificações feitas no código, não po- dem impedir que ele seja executado em paralelo. Deve ser rápido, fácil de usar

Resolvendo o PROBLEMA

Primeiros Passos Trabalhos Correlatos. Busca por técnicas paralelas que possam auxiliar na paralelização do Kernel TerraME. Bibliotecas utilizadas no Kernel TerraME. Bibliotecas de Bind entre C++ e LUA. Antes de tudo é preciso saber o que é e o que já foi feito parecido, quais tecnologias temos disponíveis.

Primeiros Passos – Trabalhos Correlatos Estudo da documentação da Plataforma TerraME. Busca pelas principais plataformas de simulação existentes atualmente. Comparação das plataformas analisadas com o TerraME. Soluções de um problema semelhante ao nosso, que utilize conceito de processos sendo executados em paralelo (lingu. R). Quais plataformas de simulação mais utilizadas hoje. Como de fato o TerraME Funciona quais principais pontos fortes que podem nos auxiliar.

Podemos paralelizar a execução dos modelos ??? O que temos Hoje. Modelo (.lua) TerraME Depois de estudar a construção e os pontos fortes do TerraME, chegamos na seguinte questão como paralelizar esse monstrinho SO

Módulo entre o Modelo e o TerraME O que precisamos. Modelo (.lua) Input: arquivo Lua sequencial Parser Output: arquivo Lua paralelo TerraME Vamos inserir um Parser entre o modelo e o TerraME. SO

Pontos fundamentais do TerraME O TerraME é uma plataforma que corresponde a um conjunto de módulos escritos em C++. Para a implementação do TerraME foram utilizados recursos da biblioteca QT e da biblioteca de integração LUA to C. Uma das partes fundamentais do TerraME é o seu interpretador. O interpretador é responsável por ler um programa escrito na linguagem TerraME (extendida da linguagem LUA). O que realmente nos ajudou a encontrar a solução, foi as ferramentas disponíveis e alguns conceitos desse interpretador

Primeiros Passos - Bibliotecas Utilizando de recursos das Bibliotecas QT e de integração Lua to C. Co-routine, para resolver em nível Lua(fora do Kernel). Primeira solução, vamos tentar não manipular nada em C++, Lua é mais fácil, a literatura me dizia isto

Estratégia Co-routine Gerar novos sub-modelos (.lua auxiliares). Executar cada sub-modelo por uma co-routine. Ao final vamos agrupar os resultados de cada co-routine. Mas co-routine não executam como thread’s (não é concorrente). Elas cooperam entre si. Co-Routine é só um nome bunitinho que enventaram para não fazer nada :p (kkkk). Linguagem de brinquedo.

Primeiros Passos - Bibliotecas Utilizando de recursos das Bibliotecas QT e de integração Lua to C. Co-routine, para resolver em nível Lua(fora do Kernel). QThread Lua_State Lua_Globals O conjunto Qthread e Lua_State. Agora já temos uma forma de manipular thread’s de forma mais fácil e uma forma de encapsular meu código a ser executado em paralelo.

“Carrinho de Rolimã” (Versão paralela 0) Primeira proposta paralelizar os métodos de calibração disponíveis no TerraME. Os métodos de calibração São um grande incoveniente para os modeladores que utilizam o TerraME. Os métodos de calibração consomem muito tempo para concluir a calibração do modelo em questão. O que ganhamos ao paralelizar os métodos de calibração??? Temos maior conhecimento do Kernel TerraME E um primeiro contato com as tecnológias utilizadas para concepção do TerraME.

Resultados para método de calibração Monte Carlo Teste extremo com 100000 experimentos. Melhora de 46,75 % para 2 Cores e para 4 Cores 58%. É importante salientar que em todos os testes realizados, o resultado final da calibração em paralelo foi o mesmo da serial. Calibração Seqüencial Calibração Paralelo (2 cores) (4 cores) 01:38:50 00:51:07 00:39:14 Tabela do tempo de execução, 100000 experimentos

Gráfico Speedup Calibração de Monte Carlo

Resultados para método de calibração Genético Calibração Seqüencial Calibração em Paralelo (2cores) Paralelo (4cores) 05:28:03 03:01:09 02:10:37 Tempo da execução de um teste extremo Bom, conseguimos paralelizar a parte das calibrações, mas ninguém vive de paralelizar calibrações. Melhora de 46,38% para 2 Cores e 60% para 4 Cores.

Gráfico Speedup Calibração de Genética

Primeiros Passos – Técnicas Paralelas A técnica utilizada deve reduzir ao máximo o tempo de inatividade do processador. Utilizar estratégia de Bag of Task’s. Restrição de quantidade de Thread’s (processos) executando em uma máquina. Precisamos de uma técnica que nos auxiliasse na paralelização.

Desenho da solução em que estamos trabalhando atualmente Modelo Original passado pelo modelador TerraME

Desenho da solução em que estamos trabalhando atualmente - questões Como identificar o que deve ser executado em paralelo ? A solução deve rodar em qualquer versão TerraME(seja paralelo ou seqüencial). A paralisação do modelo deve ser feita de forma fácil e bem intuitiva. O usuário precisa de me ajudar, mas esta ajuda tem que vim de forma a não complicar o seu modelo e de forma que seu modelo executate normalmente ao se aplicado a um kernel paralelo.

Desenho da solução em que estamos trabalhando atualmente Parser Master Bag of Task’s … Modelo Original passado pelo modelador Após a divisão dos Lua_State’s utilizamos a estrutura de Bag of Task’s para armazenar todas estas tarefas e distribuilas da melhor forma ppossível de modo a reduzir o tempo de inatividade do processador.

Desenho da solução em que estamos trabalhando atualmente Tarefas encapsuladas por Lua_State’s Parser Master Bag of Task’s … Modelo Original passado pelo modelador Um dos Lua_State’s será meu Master o que faz as chamadas para os outros Lua_State’s executarem.

Desenho da solução em que estamos trabalhando atualmente Bag of Task’s Sleep() Waike_up() Z Z Z Z Comandos de Waikup e Sleep são definos nas thread’s de modo que essas thread’s sempre tenham tarefas quando estiverem executando e que nenhuma fique parada sendo que o Bag tem tarefa para ser executada.

Desenho da solução em que estamos trabalhando atualmente Inserção da API TerraME HPA. Comandos HPA FUNCTION PARALLEL JOIN function JOINALL HPA VAR Funções que tiveram que ser definidas na API TerraME HPA, para auxiliar o usuário na paralelização de seu modelo.

Exemplo --HPA LIST VAR for i=1,10 do k = 10 --HPA PARALLEL c = {1,2,5,7,9} --HPA END LIST VAR --HPA FUNCTION function A() . end --HPA END FUNCTION function B() -- for i=1,10 do --HPA PARALLEL result = A(i); End result 1 = B(); --HPA JOINALL print(result .. ” ” .. result1);

Exemplo --HPA LIST VAR for i=1,10 do k = 10 --HPA PARALLEL c = {1,2,5,7,9} --HPA END LIST VAR --HPA FUNCTION function A() . end --HPA END FUNCTION function B() for i=1,10 do --HPA PARALLEL result = A(i); End result 1 = B(); --HPA JOINALL print(result .. ” ” .. result1); Cada uma destas funções estão encapsuladas por um Lua_State e armazenadas no Bag of Task’s.

O que falta??? Tornar o TerraME HPA ROBUSTO!!! 1 - Meio de Acesso à pilha LUA utiliza uma biblioteca em C. 2 – As variáveis devem ser empilhadas e desempilhadas. 3 – Estruturas de dados complexas podem ser definidas pelo modelador. THROLL 4 -Modelo THROLL, leva 90 dias para ser executado. 5 - Consome 40 GB de RAM. 6 - É um modelo reconhecido Internacionalmente. Pilha LUA

Cronograma para o próximo Semestre Atividades AGO SET OUT NOV DEZ 1 O.K X 2 3 4 5 6 7 8 1. Implementar a interface do sistema; 2. Teste comparativo de rendimento; 3. Teste do módulo; 4. Teste integrado do sistema; 5. Elaboração da documentação do sistema; 6. Elaboração do Manual do Usuário; 7. Redigir a Monografia; 8. Apresentação do Trabalho

Perguntas???