ESTUDO PRELIMINAR SOBRE A ESCALABILIDADE DE UM
ALGORITMO GENÉTICO
PARALELIZADO COM OPENMP
Mateus Fontoura Gomes da Rosa Márcia C. Cera
Roteiro
Introdução
Problema de Roteamento de Veículos
Objetivos da Pesquisa
Algoritmos Genéticos
Paralelização do AG
Apresentação dos Resultados Preliminares
Considerações Finais
2
Problema de Roteamento de Veículos
Consiste de uma derivação do Problema do Caixeiro Viajante
Foi utilizado Algoritmo Genético para solucionar o problema
Fonte: Gressler (2012)
Objetivos da Pesquisa
Objetivo Geral:
Analisar a escalabilidade do Algoritmo Genético Paralelo conforme o número de threads e núcleos de processamento aumenta
Objetivos Específicos:
Analisar o desempenho do AG Paralelo conforme aumenta-se o grau de paralelismo;
Analisar a escalabilidade do AG Paralelo.
4
Roteiro
Introdução
Algoritmos Genéticos
Definição
Fluxograma do Algoritmo Genético
Paralelização do AG
Apresentação dos Resultados Preliminares
Considerações Finais
Algoritmos Genéticos - Definição
Consiste de uma proposta baseada no modelo evolutivo de Darwin
Possui funções que simulam a genética, como funções de avaliação do indivíduo, cruzamento e mutação
Essas funções podem ser facilmente adaptadas a qualquer escopo de problema, visto que o Algoritmo Genético trata soluções parciais como indivíduos e as melhora gradativamente a cada evolução
6
Fluxograma do Algoritmo Genético
Gressler (2012)
Fluxograma do Algoritmo Genético
8 Gressler
(2012)
Técnicas de cruzamento:
Cruzamento 1 ponto;
Cruzamento 2 pontos;
Cruzamento uniforme;
Técnica Híbrida 1;
Técnica Híbrida 2;
Fluxograma do Algoritmo Genético
Gressler (2012)
Técnicas de Mutação:
Troca;
Inversão;
Inserção;
Técnica Híbrida;
Fluxograma do Algoritmo Genético
10 Gressler
(2012)
Roteiro
Introdução
Algoritmos Genéticos
Paralelização do AG
Apresentação dos Resultados Preliminares
Considerações Finais
Paralelização do AG
Paralelização foi feita da seguinte maneira (GRESSLER, 2012):
Foram definidas duas regiões paralelas:
Na perpetuação dos melhores indivíduos
Diretiva sections/section
Nas chamadas às funções Cruzamento e Avaliação na concepção de uma nova geração
Diretiva parallel for
12
Roteiro
Introdução
Algoritmos Genéticos
Paralelização do AG
Apresentação dos Resultados Preliminares
Especificação dos Parâmetros
Verificação do Impacto das Políticas de Escalonamento de Iterações
Análise Preliminar da Escalabilidade do Algoritmo Genético Paralelo
Comparação entre os Resultados Obtidos nas Arquiteturas
Considerações Finais
Especificação dos Parâmetros
Foram testadas instâncias do Benchmark de Christofides
c50 – instância com 50 cidades
c100 – instância com 100 cidades
Parâmetros utilizados nos testes (GRESSLER, 2012):
Tamanho da população: N x 10;
Número de Evoluções: N x N x 10;
Técnica de cruzamento: 1 ponto;
Taxa de mutação: variação entre 4 a 10%;
Técnica de mutação: randômica;
14
Especificação dos Parâmetros - i7
Possui um processador Intel® Core™ i7-3517U 1.90GHz com dois núcleos físicos e dois lógicos;
Para cada configuração foi executado 30 repetições;
Parâmetros do teste:
Número de threads: de 2 a 8;
Valores da política de escalonamento de iterações: Static
Especificação dos Parâmetros - Xeon
Possui dois processadores Intel® Xeon E5-2650 com frequência de 2.80 GHz, cada um com 8 núcleos físicos e Hyper-threading;
A coleta foi repetida 30 vezes para cada configuração;
Parâmetros dos testes:
Número de threads: 2, 4, 8, 16, 32 e 64;
Valor da política de escalonamento de iterações: Static;
16
Xeon: c50 - Análise preliminar da
escalabilidade do Algoritmo Genético
5,3
4,4
3,2 2,6 3,1 3,7
13,6
0 1 2 4 8 16 32 64
0,0 2,0 4,0 6,0 8,0 10,0 12,0 14,0 16,0
Número de Threads
Tempo (s)
1,6
Xeon: c50 - Análise preliminar da
escalabilidade do Algoritmo Genético
18 5,3
4,4
3,2 2,6 3,1 3,7
13,6
0 1 2 4 8 16 32 64
0,0 2,0 4,0 6,0 8,0 10,0 12,0 14,0 16,0
Número de Threads
Tempo (s)
1,2
1,6 2,0 1,6 1,4
0,3
Xeon: c100 - Análise preliminar da
escalabilidade do Algoritmo Genético
320
231
152
125 121 126
349
1 2 4 8 16 32 64
0 50 100 150 200 250 300 350 400
Número de Threads
Tempo(s)
Xeon: c100 - Análise preliminar da
escalabilidade do Algoritmo Genético
20 320
231
152
125 121 126
349
1 2 4 8 16 32 64
0 50 100 150 200 250 300 350 400
Número de Threads
Tempo(s)
1,3
2,1
2,5 2,6 2,5
0,9
Comparação entre os Resultados Obtidos nas Arquiteturas
c50:
1,43 1,45
0,55 1,21
1,63
2,04
1,69
1,42
0,38
2 4 8 16 32 64
0,00 0,50 1,00 1,50 2,00 2,50
Número de Threads
Speedup
i7 Xeon
Comparação entre os Resultados Obtidos nas Arquiteturas
c100:
22
1,56 1,71
0,93 1,39
2,11
2,56 2,64
2,54
0,92
2 4 8 16 32 64
0 0,5 1 1,5 2 2,5 3
Número de Threads
Speedup
i7 Xeon
Roteiro
Introdução
Algoritmos Genéticos
Paralelização do AG
Apresentação dos Resultados Obtidos
Considerações Finais
Conclusões e Trabalhos Futuros
Cronograma de Atividades
Publicações Aceitas Durante a Elaboração do Trabalho
Conclusões e Trabalhos Futuros
Foi observado um aumento no desempenho quando o AG foi executado numa arquitetura mais robusta;
Da mesma forma, é possível ver a influência do overhead de paralelização nas execuções;
Para trabalhos futuros:
Serão realizados testes com as demais instâncias do benchmark
Análise da escalabilidade e de possibilidades de melhoria do desempenho
24
Referências
CHAPMAN B; JOST B; VAN DER PASS R; Using OpenMP. Cambridge, MA, Estados Unidos: Massachusetts Institute of Technology, 2008.
ROSA. M. F. G. ; CERA, Márcia C. Análise do desempenho do Algoritmo Genético paralelizado com OpenMP. Anais do XXVI Congresso Regional de Iniciação Científica e Tecnologica em Engenharia, 2014, Alegrete - RS. p. 1-4.
LINDEN, R. Algoritmos Genéticos. Rio de Janeiro, RJ, Brasil: Ciência Moderna, 3ª Edição, 2012. Citado 4 vezes nas páginas 17, 20 e 27.
GRESSLER, H. O. ; CERA, Márcia C. O Impacto da paralelização com OpenMP no desempenho e na qualidade das soluções de um algoritmo genético.
Revista Brasileira de Computação Aplicada, Passo Fundo, v. 6, n. 2, p. 35-47, 2014.
Muito obrigado pela atenção!
Perguntas?
Mateus Fontoura Gomes da Rosa, Márcia Cristina Cera [email protected], [email protected]