A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

TerraME HPA Apresentado por: Saulo Henrique Cabral Silva 1 Relatório de Atividades BCC390 - Monografia I.

Apresentações semelhantes


Apresentação em tema: "TerraME HPA Apresentado por: Saulo Henrique Cabral Silva 1 Relatório de Atividades BCC390 - Monografia I."— Transcrição da apresentação:

1 TerraME HPA Apresentado por: Saulo Henrique Cabral Silva 1 Relatório de Atividades BCC390 - Monografia I

2 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. 2

3 Justificativa - Nosso Problema 3 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.

4 Justificativa - Nosso Problema 4 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.

5 Objetivo 5 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.

6 Resolvendo o PROBLEMA 6

7 Primeiros Passos 7 Trabalhos Correlatos. Busca por técnicas paralelas que possam auxiliar na paralelização do Kernel TerraME. Bibliotecas utilizadas no Kernel TerraME.

8 Primeiros Passos – Trabalhos Correlatos 8 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).

9 Podemos paralelizar a execução dos modelos ??? O que temos Hoje. Modelo (.lua) TerraME SO 9

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

11 Pontos fundamentais do TerraME 11 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).

12 Primeiros Passos - Bibliotecas 12 Utilizando de recursos das Bibliotecas QT e de integração Lua to C. Co-routine, para resolver em nível Lua(fora do Kernel).

13 Estratégia Co-routine 13 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 threads (não é concorrente). Elas cooperam entre si.

14 Primeiros Passos - Bibliotecas 14 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

15 Primeiros Passos – Técnicas Paralelas 15 A técnica utilizada deve reduzir ao máximo o tempo de inatividade do processador. Utilizar estratégia de Bag of Tasks. Restrição de quantidade de Threads (processos) executando em uma máquina.

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

17 Desenho da solução em que estamos trabalhando atualmente - questões 17 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.

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

19 Desenho da solução em que estamos trabalhando atualmente 19 Modelo Original passado pelo modelador Bag of Tasks Parser

20 Desenho da solução em que estamos trabalhando atualmente 20 Modelo Original passado pelo modelador Bag of Tasks Parser Tarefas encapsuladas por Lua_States

21 Desenho da solução em que estamos trabalhando atualmente 21 Modelo Original passado pelo modelador Bag of Tasks Parser Um Modelo será meu master

22 Desenho da solução em que estamos trabalhando atualmente 22 Bag of Tasks Z Waikup() Sleep() Modelo master

23 Desenho da solução em que estamos trabalhando atualmente 23 Inserção da API TerraME HPA. Comandos HPA FUNCTION PARALLEL JOIN function JOINALL HPA VAR SET var GET var

24 Exemplo 24 --HPA LIST VAR k = 10; c = saulo; --HPA END LIST VAR --HPA FUNCTION function A() --HPA END FUNCTION --HPA FUNCTION function B() --HPA END FUNCTION --HPA PARALLEL result = A(); --HPA PARALLEL result 1 = B(); -- --HPA JOIN A --HPA JOIN B print(result.... result1);

25 Exemplo 25 --HPA LIST VAR k = 10; c = saulo; --HPA END LIST VAR --HPA FUNCTION function A() --HPA END FUNCTION --HPA FUNCTION function B() --HPA END FUNCTION --HPA PARALLEL result = A(); --HPA PARALLEL result 1 = B(); -- --HPA JOIN A --HPA JOIN B print(result.... result1); Cada uma destas funções estão encapsuladas por um Lua_State e armazenadas no Bag of Tasks.

26 Cronograma para o próximo Semestre 26 AtividadesAGOSETOUTNOVDEZ 1XX 2X 3X 4XX 5X 6XX 7XXX 8X 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

27 Perguntas??? 27

28 28 Caso sobre algum tempo apresentar o que foi feito anteriormente.

29 Outro Problema Atualmente o modelador leva muito tempo para calibrar um modelo. Isso pode piorar!!! Se o modelador necessitar de uma calibração mais pre- cisa, é necessário aumen- tar o número de execu- ções do algoritmo (consumindo ainda mais tempo). 29

30 Método de Monte Carlo O método de Monte Carlo é um dos muitos métodos que realizam análise de propagação de incerteza. Pode-se dizer que o Método de Monte Carlo é semelhan- te a uma amostragem de população real. Os dados gerados para a calibração podem ser represen- tados como distribuições de probabilidade ou converti- dos em barras de erro. 30

31 Como é a execução do algoritmo de Monte Carlo??? Gerar um conjunto de entradas aleatórias, y = f(X1,X2,...,Xn). X1 X2 X3 31

32 Como é a execução do algoritmo de Monte Carlo??? Gerar um conjunto de entradas aleatórias, y = f(X1,X2,...,Xn). Execute o modelo e avalie as respostas, Y1,Y2,...,Ym. X1 X2 X3 Y1 MODELO 32

33 Como é a execução do algoritmo de Monte Carlo??? Gerar um conjunto de entradas aleatórias, y = f(X1,X2,...,Xn). Execute o modelo e avalie as respostas, Y1,Y2,...,Ym. Repita os passos 1 e 2 para i = 1 até n. X1 X2 X3 MODELO Temos que salvar os resultados de cada execução. 33 Y1

34 Como é a execução do algoritmo de Monte Carlo??? Gerar um conjunto de entradas aleatórias, y = f(X1,X2,...,Xn). Execute o modelo e avalie as respostas, Y1,Y2,...,Ym. Repita os passos 1 e 2 para i = 1 até n. Análise os resultados usando histogramas, estatísticas de resumo, intervalos de confiança e etc. (Mínimo e Máximo). X1 X2 X3 MODELO 34 Y1

35 Como paralelizar o algoritmo??? Para executar o algoritmo de Monte Carlo, é necessário primeiramente saber, quantas vezes iremos executar (quantos experimentos, vamos realizar ???). X1 X2 X3 MODELO 35 Y1

36 Como paralelizar o algoritmo??? Para executar o algoritmo de Monte Carlo, é necessário primeiramente saber, quantas vezes iremos executar (quantos experimentos, vamos realizar ???). Para identificar a variável de número de repetições vamos precisar instrumentar o código LUA, para isso o usuário deve inserir um comentário, X1 X2 X3 MODELO 36 Y1

37 O processo de Paralelização Precisamos inicialmente descobrir a quantidade de experimentos que deve ser feita na Calibração do modelo (quantos vezes executar o loop). 1 37

38 2 O processo de Paralelização Precisamos inicialmente descobrir a quantidade de experimentos que deve ser feita na Calibração do modelo. Cada Thread (instância do TerraME), deve executar um número X de experimentos. (número de execuções passadas / número de cores) * Supondo que no modelo original, foi passado como parâmetro 10 experimentos e temos uma máquina com 2 cores, vamos ter 2 modelos cada um com 5 experimentos. 1 38

39 O processo de Paralelização Precisamos inicialmente descobrir a quantidade de experimentos que deve ser feita na Calibração do modelo. Cada Thread (instância do TerraME), deve executar um número X de experimentos. Ao final da calibração (todas as instâncias terminadas), é preciso escolher o melhor resultado geral (solução que proporciona o menor erro)

40 Como identificar os parâmetros??? É feita uma varredura no Modelo (arquivo.lua), a pro- cura do seguinte comentário Esse comentário identifica qual a quantidade de execuções (testes), devemos realizar para calibrar o modelo usando o Método de Monte Carlo. Para encontrar essa instrumentação utilizamos o método StringTokenizen tunado, estamos procurando um padrão. 40

41 Instâncias Criamos Modelos auxiliares. Onde cada um destes novos modelos serão executados por uma instância do TerraME (thread), são iniciadas K Threads. O valor da variável correspondente ao número de experimen- tos é alterado em cada um dos novos modelos. (N/K), onde N é a quantidade de testes passado no modelo original e K é a quantidade de cores da máquina onde esta sendo realizada a calibração. O melhor resultado (menor erro) de cada thread é armazena- do. É gerado um arquivo de saída para cada modelo que esta sendo executado (cada thread gera um arquivo). 41

42 Instâncias 42 Modelo Original 10 execuções Modelo A 5 execuções Modelo B 5 execuções

43 Finalizando Precisamos resumir todos os resultados. Compara-se os resultados finais de todas as instâncias do TerraME finalizadas e seleciona-se o menor erro. 43

44 Resultados Experimentos Calibração Seqüencial Calibração Paralela (2 cores) Calibração Paralela (4 cores) :09:5800:05:0200:04: :19:4500:10:0500:08: :29:2800:15:1500:12: :39:3100:20:0400:16: :49:1900:25:4400:19:53 Tabela do tempo de todos os testes realizados 44

45 Resultados 45

46 Resultados 46

47 Resultados Teste extremo com 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) Calibração Paralelo (4 cores) 01:38:50 00:51:0700:39:14 Tabela do tempo de execução, experimentos 47

48 Algoritmo Genético Baseado na idéia de seleção natural. Uma nova geração guarda caracte- rísticas da anterior. Um indivíduo é considerado uma solução para o problema. Para testar se um indivíduo é bom ou não para a solução, é neces- sário determinar o seu nível de aptidão de sobrevivência. Os Genes de cada individuo, são números binários. Entre os Genes pode ocorrer processos de cruzamento ou de mutação. 48

49 Como Paralelizar a Calibração do Algoritmo Genético Os passos para a paralelização do Método de calibração Genético segue basicamente os mesmos passos da calibração de Monte Carlo. A varredura do Modelo (.lua) é feita, e o padrão a ser procurado é a instrumentação AlgoritmoGenetico(X1, X2, X3, X4, X5, X6, X7). Estamos procurando pelo parâmetro 7, ele indica a quantidade de gerações que serão testadas pelo Método de calibração. 49

50 Como Paralelizar a Calibração do Algoritmo Genético Após efetuar a identificação do padrão, e encontrar o valor da quantidade de gerações. Vamos iniciar K instancias do TerraME. (K é o número de cores que o processador da máquina possui). Cada máquina executa (X7 / K) gerações. (lembrando que X7 é a quantidade de gerações passada como parâmetro no modelo original). Ao término da execução das K instâncias do TerraME, devemos retornar o melhor resultado das execuções (temos que comparar todos os resultados). 50

51 Como Paralelizar a Calibração do Algoritmo Genético AlgoritmoGenetico(estocastico, matriz, tamPrecisao, Npop, pc, pm, MaxGeracoes) Temos que dividir essa variável 51

52 Como Paralelizar a Calibração do Algoritmo Genético AlgoritmoGenetico(estocastico, matriz, tamPrecisao, Npop, pc, pm, MaxGeracoes) Threads iniciadas (Instâncias TerraMEs). Cada instância, que esta rodando, deve executar, (MaxGeracoes/K) gerações. MaxGeracoes = número de gerações passadas no modelo original. K = número de cores da máquina utilizada. 52 Temos que dividir essa variável

53 Como Paralelizar a Calibração do Algoritmo Genético AlgoritmoGenetico(estocastico, matriz, tamPrecisao, Npop, pc, pm, MaxGeracoes) Threads iniciadas (Instâncias TerraMEs). Cada instância, que esta rodando, deve executar, (MaxGeracoes/K) gerações. MaxGeracoes = número de gerações passadas no modelo original. K = número de cores da máquina utilizada. Ao término da execução de todas as threads temos que encontrar o melhor resultado (menor erro). Temos que dividir essa variável 53

54 Resultados Experimentos Calibração Seqüencial Calibração Paralela (2 cores) Calibração Paralela (4 cores) :32:5000:16:5200:13: :05:2800:35:4400:25: :44:5700:53:2700:39: :16:0001:15:1800:52: :43:1701:30:3701:05:14 Tabela do tempo de todos os testes realizados 54

55 Resultados 55

56 Resultados 56

57 Teste Extremo Calibração Seqüencial Calibração em Paralelo (2cores) Calibração em Paralelo (4cores) 05:28:0303:01:0902:10:37 Tempo da execução de um teste extremo Melhora de 46,38% para 2 Cores e 60% para 4 Cores. 57

58 Perguntas 58


Carregar ppt "TerraME HPA Apresentado por: Saulo Henrique Cabral Silva 1 Relatório de Atividades BCC390 - Monografia I."

Apresentações semelhantes


Anúncios Google