2. Algoritmo genético Multipopulacional
2.3. Processamento paralelo
2.4.3 Análise temporal do AG paralelo multipopulacional
A execução do código do AG, na versão multipopulacional e estrutura paralela em ilha, realizado com recurso a nc núcleos (“cores”) de processamento (ou “slaves”) de igual capacidade computacional, demorará um tempo T(nc). As exigências computacionais para os cálculos numéricos, nomeadamente nos tempos associados à sua execução por um único núcleo T(1) serão agora repartidos em igual valor pelos nc núcleos. O tempo decorrido será nestas circunstâncias, na melhor das hipóteses, de valor igual ao que decorreria se a execução fosse realizada por um único núcleo, T(1), dividido pelo número de núcleos nc, agora usados. Assim, o valor teórico será de:
𝑻(𝒏𝒄) =𝑻(𝟏) 𝒏𝒄
Todavia a repartição das tarefas, dados, código e comandos de execução e a necessária sincronização dos processos exige a comunicação entre os núcleos decorrendo daí um inevitável dispêndio de tempo de comunicação, Tcomunicação, valor esse geralmente não
34 desprezável. É na prática este tempo de comunicação que penaliza o processo de paralelização, sendo por isso não desprezável, peso este que será um limitador exógeno que degrada o desempenho computacional deste mecanismo.
Inevitavelmente tal degradação ocorre na paralelização do AG, mesmo quando se evita ao máximo a comunicação de dados pela alocação de uma população ilha em cada core ou, indistintamente, nó computacional. A análise que se segue avalia o tempo de execução computacional do AG para um número variável de núcleos tomando como referências tempos padrão de execução das sub-tarefas do AG, particularmente sobre as operações básicas como sejam a de inicialização da população, do calculo de desempenho, das operações de seleção, mutação e cruzamento, da migração bem como renovação da população. Esses tempos de execução são dependentes do problema e codificação do AG. Todavia esses valores são possíveis de serem obtidos pela incorporação no código de marcas temporais associadas a cada rotina ou procedimento ligadas ás tarefas atrás identificadas. Para quem usa o MATLAB, esta contabilização é fornecida pela execução em modo “Run and Time”.
A Tabela 1 resume os tempos associados às várias tarefas na execução da AG multipopulacional, sendo que parte delas podem funcionar em modo paralelo (ou em múltiplos-cores). Estes valores indicativos serviram para a simulação de soluções com um número variável de núcleos/populações, aferindo os benefícios do uso de mais núcleos na execução do AG.
Gerais Tempo Mutação Tempo
Tinit 0,1 Tmutacao 0,1
Tcomunicacao 0,05 Tmutacao_individual 0,01
Tdesempenho 0,01 pmut 0,2
Tdisplay_results 0,1
Selecção Tempo Migração Tempo
Tseleção 0,1 Tmigracao 0,1
Tselectindividual 0,01 Pmigr 0,05
pselect 0,5
Cruzamento Tempo Renovação Tempo
Tcruz 0,1 Trenov 0,1
Tcruz_individual 0,01 Trenov_individual 0,01
pcruz 0,2 prenov 0,5
35 Seja T(i) o tempo de execução do AG por i núcleos de processamento. Este tempo decorre da acumulativa dos tempos de execução das várias tarefas, em NG gerações. Contribuem para esse tempo as seguintes parcelas:
- O número de indivíduos de todas as populações é constante. Neste exemplo de tomado de valor de 1000 indivíduos que são repartidos em igual proporção pelas nc populações.
- Existem tantas populações (nPop) quanto o número de núcleo de processamento, ou seja: nPop = nc. Cada núcleo executa o AG na população local (ilha).
- O código do AG está espelhado pelos nc núcleos, todos apresentando as mesmas capacidades computacionais da qual decorre tempos de execução de valor iguais para códigos semelhantes.
- Um computador central (servidor) gere as comunicações, envio de dados e comando de controlo/execução entre os escravos (núcleos). Cada tarefa executada exige um tempo padrão constante de Tcomunicação.
- Cada núcleo necessita de um tempo inicial, Tinit, para inicializar as populações e as
variáveis. Este tempo é assumido constante, independentemente do número de núcleos nc.
- Tdesempenho é o tempo (em segundos) que demora a calcular o desempenho de cada
indivíduo.
- As operações de Seleção, Cruzamento e Mutação, exigem na sua execução e para cada geração decorrida de um tempo com duas parcelas proporcionais, na primeira, ao número de populações, nPop(nc) e, na segunda, ao produto entre o número de elementos envolvidos e o tamanho da população, PopSize. Os elementos envolvidos são um subconjunto variável da população da ilha associada aos valores de probabilidade pselect, pcruz e pmut, respetivamente de seleção, cruzamento e mutação.
Estes tempos são calculados para a totalidade das NG gerações de acordo com as seguintes expressões:
➢ Tempo associado à tarefa de Seleção:
TSel = (Tseleccao + Tselectindividual pselect) PopSize NG;
➢ Tempo associado à operação de cruzamento genética:
36 ➢ Tempo associado à operação de mutação genética:
Tmut = (Tmutacao + Tmut_indiv pmut) PopSize NG;
- O tempo associado ao processo migratório é proporcional ao tamanho da população local (PopSize) e à probabilidade de ocorrer migração, pmigr. Envolve do outro lado
dois termos, um primeiro Tmigração, de valor constante, que reflete o tempo de seleção
dos migrantes e um segundo termo que decorre das comunicações estabelecidas entre núcleos (ilhas), de valor combinatório de nc2 :
➢ Tempo associado à migração:
Tmigr = (Tmigracao + nc2 Tcomunicacão) PopSize pmigr NG;
- A renovação das populações, tarefa realizada localmente, exige-se um tempo de ➢ Tempo associado à renovação da população:
Trenov = (Trenovacao + Trenov_indiv prenov) PopSize;
onde Trenovacao é o tempo necessário para selecionar os indivíduos a serem substituídos
e Trenov_indiv o tempo despendido a incluir um indivíduo na população local.
- Para uma configuração de mais de um núcleo é necessário haver comunicações entre os AG locais, com troca de informação e indivíduos migrantes, estabelecendo-se com a mediação do servidor. Deste modo é esperado um tempo de comunicação proporcional ao número de núcleos:
Tcom = Tcomunicacao nc;
Em cada ciclo geracional do AG são necessários estabelecer duas ligações ao servidor, no início e no fim do ciclo.
- A apresentação dos resultados do AG exige um tempo computacional de Tdisplay.
O tempo total de execução do algoritmo é dependente do número de núcleos/ populações (ilhas) usadas, calculados do seguinte modo:
i) Para um único núcleo de processamento/uma População, nc =1, ter-se-á:
T(1) = Tinit + Tdesempenho nPop + (TSel + Tcruz + Tmut + Tdesempenho + Trenov) nPop(1) NG +
37 Havendo uma única população, esta agrega todos os indivíduos, isto é:
nPop(1) = PopGlobal, a população global.
Nesta configuração não existe dispêndio de tempo em comunicações.
ii) Para a configuração de nc núcleos de processamento, acresce a exigências que decorre do processo migratório, Tmigracao, e das comunicações, Tcomunicacao. Porém, a polução de
cada núcleo será agora de nPop(nc) = PopGlobal/nc. Desta estrutura resulta um tempo de execução de:
T(nc) = Tinit + (Tdesempenho + (TSel + Tcruz + Tmut + Tdesempenho + Trenov) NG) nPop(nc)
+…
… + 2 Pcom NG + Tdisplay;
Na figura 8 está representado num gráfico de barras o tempo despendido na execução do AG multi-populacional para configurações paralelas com número de núcleos, nc, de 1 a 10. A linha a vermelho, sobreposta à anterior figura, representa a curva de tempos para as condições ideais, reconhecidas anteriormente como de valor inversamente proporcionais a nc. Para melhor se proceder à comparação de resultados, particularmente com a configuração de um único núcleo, os tempos estão normalizados em relação à primeira configuração.
38
Figura 8 - Tempo computacional despendido pelo AG quando executados em paralelos em vários núcleos, tomando como referencia a configuração de 1 núcleo. A linha a vermelho corresponderia à situação ótima teórica.
Resulta da análise da figura que, tendo em conta os parâmetros da Tabela1, não haver vantagem acrescida no uso de mais de quatro núcleos. Esta conclusão diz apenas respeito aos tempos de execução do AG. Todavia, como referido em secções anteriores, o AG multi- populacional, naturalmente da sua forma de execução computacional paralela, goza de outros benefícios que são inerentes ao processo evolução em múltiplas e distintas populações.
39