Abordagem Paralela da Evolução Diferencial em GPU Filipo Novo Mó Omar Andres Carmona Corte César Augusto Missio Marco ERAD 2015 XV Escola Regional de Alto Desempenho 22 a 24 de Abril de 2015 Gramado – RS - Brasil www.filipomor.com
Abordagem Paralela da Evolução Diferencial em GPU
Filipo Novo MórOmar Andres Carmona CortesCésar Augusto Missio Marcon
ERAD 2015XV Escola Regional de Alto Desempenho22 a 24 de Abril de 2015Gramado – RS - Brasil www.filipomor.com
O Algoritmo de Evolução Diferencial
• Faz parte do grupo de algoritmos evolutivos.• Adequado a problemas de natureza continua e NP Completo.• O objetivo é encontrar um vetor tal que se minimize ou maximize
uma função ( função objetivo ).• A principal vantagem da ED é que o algoritmo pode tratar funções
objetivo que são descontinuas, não-diferenciáveis, não-lineares ou dependente de muitas variáveis.
www.filipomor.com
2/11
O Algoritmo de Evolução Diferencial1 Inicializa População 2 Avalia(População) 3 Enquanto critério de parada não alcançado 4 Para cada individuo i na população (Pop) faça 5 Selecionar três individuos 6 V individuo3 + F * (individuo1 – individuo2) 7 Novo_individuo cruzamento entre V e Popi 8 Se o fitness(Novo_individuo) < fitness(Popi) 9 Substitui Popi por Novo_individuo 10 Fim-se 11 Fim-para 12 Fim-Enquanto
www.filipomor.com
3/11
O Algoritmo de Evolução Diferencial
Inicializa População
AvaliaInovo
Seleciona I1, I2, I3
Mutação Recombi-nação
Novo Individuo é
melhor?
AtualizaPopulação
SIM
NÃOInovo < Pop() ?
V = I1 + F (I3 – I2) Inovo = V comb Pop()
Pop() = Inovo
Para cada Indivíduo na População , faça
Repetir por gerações
chamada à Função
Objetivo
4/11
O Algoritmo de Evolução Diferencial
População
dimensão
tam
anho
Cada linha representa um indivíduo (ou solução proposta). A dimensão representa a discretização do problema.
A função objetivo avalia o Individuo a partir do valor das suas células (dimensão), gerando um resultado escalar.
Função Objetivo
Indivíduo Valor Fitness (escalar)
www.filipomor.com
5/11
O Algoritmo de Evolução Diferencial
• Para avaliar a implementação, foi utilizada a função de benchmark de Schwefel.
• Possui vários mínimos locais. • Dimensão: • O mínimo global é conhecido:• , com
www.filipomor.com
6/11
Implementação e Testes
• Parallel Computing Toolbox para GPU no MatLab.• Equipamento:
• Placa de Video (GPU) NVIDIA GTS 450.• CPU Intel i7 com 3.4Ghz.• 64Gb RAM.• Windows 7 64 bits.
• Testadas variações em:• Tamanho da população• Dimensão (quantidade de colunas)• Quantidade de chamadas a função objetivo.
• Cada experimento foi executado 30 vezes.
www.filipomor.com
7/11
Dim Calls Pop Speedup Dim Calls Pop Speedup -1 -1 -1 2.242328005 -1 -1 +1 4.402031153 +1 -1 -1 2.631392488 +1 -1 +1 3.59878617 -1 +1 -1 2.139425192 -1 +1 +1 4.246680717 +1 +1 -1 2.571705205 +1 +1 +1 3.604751521
4.0
3.5
3.0
2.5
2.0
1-1
4.0
3.5
3.0
2.5
2.01-1
Dim * Calls
Dim * Pop
Dim
Calls * Pop
Calls
-11
Calls
-11
Pop
Mea
n o
f Sp
eedup
Interaction Plot for SpeedupFitted Means
1-1
4.00
3.75
3.50
3.25
3.00
2.75
2.50
1-1 1-1
Dim
Mea
n of
Spe
edup
Calls Pop
Main Effects Plot for SpeedupFitted Means
Valores testados:• Dimensão: {500, 2000}• Chamadas: {105, 106}• População: {100, 2000}Nas legendas:• baixo = -1• alto = +1
www.filipomor.com
8/11
Conclusões• Para a função objetivo utilizada, os maiores speedups foram obtidos
com as maiores populações (maior do que 4).• A dimensão (quantidade de colunas) parace ter pouco impacto no
speedup da implementação paralela.• Considerando que os parâmetros de entrada são definidos pelo
problema a ser processado, a identificação deste tipo de relação serve de insumo ao dimensionamento de novas aplicações baseadas em ED.
www.filipomor.com
9/11
Próximos Passos• Implementação do algoritmo em CUDA C.• Generalização do Algoritmo para uso de Funções Objetivo diversas.• Geração modulo de visualização.
www.filipomor.com
10/11
Abordagem Paralela da Evolução Diferencial em GPU
Filipo Novo MórOmar Andres Carmona CortesCésar Augusto Missio Marcon
ERAD 2015XV Escola Regional de Alto Desempenho22 a 24 de Abril de 2015Gramado – RS - Brasil
OBRIGADO!
www.filipomor.com