• Nenhum resultado encontrado

4.4 Modelos de Degradac¸˜ao Instantˆanea

5.2.7 Paralelismo H´ıbrido

Como mencionado anteriormente, AGs tendem a se tornar computacionalmente ca- ros quando o processo de avaliac¸˜ao dos indiv´ıduos se torna complexo e, portanto, mais fiel `a realidade. No caso particular da otimizac¸˜ao estrutural usando o MEF, a avaliac¸˜ao dos indiv´ıduos se torna a parcela do algoritmo que demanda mais tempo de processamento. Tal fato ´e ainda mais acentuado quando metodologias de an´alise n˜ao-linear s˜ao usadas. Por´em, a avaliac¸˜ao de um indiv´ıduo depende apenas dos valores de suas pr´oprias vari´aveis e, portanto, pode ser prontamente implementada em paralelo.32,119

V´arias t´ecnicas de paralelizac¸˜ao podem ser utilizadas em AGs.32 Neste trabalho, duas t´ecnicas distintas, a Paralelizac¸˜ao Global e a t´ecnica Coarse-Grained, ser˜ao combinadas para formar um algoritmo com paralelizac¸˜ao h´ıbrida.

O esquema de Paralelizac¸˜ao Global ´e a forma mais simples de paralelizar um AG. ´

E tamb´em a forma que mais se assemelha a um AG sequencial. Tal t´ecnica mant´em o conceito de populac¸˜ao ´unica, na qual os indiv´ıduos podem cruzar com quaisquer outros da populac¸˜ao.32 Consequentemente, todos os indiv´ıduos da populac¸˜ao competem entre si, ocupando o mesmo espac¸o evolutivo. Tal configurac¸˜ao ´e tamb´em chamada de panm´ıtica, o que indica que todos os indiv´ıduos est˜ao livres para cruzar entre si sem restric¸˜oes adicionais.119

Figura 53 – Paralelizac¸˜ao Global.

(a) Arranjo (b) Arquitetura do Sistema

Fonte: Elaborada pelo autor.

Em sua forma mais simples, a Paralelizac¸˜ao Global consiste em paralelizar apenas a avaliac¸˜ao dos indiv´ıduos. Neste trabalho, outras operac¸˜oes s˜ao tamb´em paralelizadas, como a aplicac¸˜ao dos operadores gen´eticos, o c´alculo da func¸˜ao objetivo penalizada e o c´alculo da func¸˜ao aptid˜ao. A Figura 53 mostra a ideia b´asica da Paralelizac¸˜ao Global em um ambiente de mem´oria compartilhada.

Neste algoritmo, tal n´ıvel de paralelismo ´e realizado utilizando a biblioteca OpenMP,114 idealizada para uso em ambientes de mem´oria compartilhada. ´E importante ressaltar que a Paralelizac¸˜ao Global foi originalmente criada para uso em ambientes de mem´oria distribu´ıda. Nesse caso, um dos processadores ´e eleito o mestre (Master Thread) e distribui os indiv´ıduos para os outros processadores (Slave Threads), posteriormente recebendo os resultados das ava- liac¸˜oes. Por´em, tais operac¸˜oes demandariam um esforc¸o de implementac¸˜ao consideravelmente maior e introduziriam um tempo de comunicac¸˜ao adicional entre os computadores (commu- nication overhead). Com o advento de computadores com m´ultiplos n´ucleos (multi-core) de mem´oria compartilhada e o surgimento do OpenMP, o tempo de comunicac¸˜ao foi eliminado e a divis˜ao de tarefas ´e realizada automaticamente, facilitando a implementac¸˜ao.

Neste ˆambito, conv´em ressaltar que muito embora todos os computadores atuais possuam arquitetura multi-core, poucos programadores exploram seu potencial, deixando de utilizar a maior parte do poder de processamento dispon´ıvel. Portanto, ´e de grande importˆancia o estudo de t´ecnicas de computac¸˜ao paralela, particularmente em aplicac¸˜oes computacional- mente pesadas.

A paralelizac¸˜ao de granularidade grossa, ou Coarse-Grained, ´e tamb´em chamada de Modelo de Ilhas (Island Model). Nesta estrat´egia, a populac¸˜ao original ´e dividida em uma s´erie de subpopulac¸˜oes denominadas ilhas ou demes.32Tais ilhas evoluem em paralelo e perma- necem isoladas umas das outras durante a maior parte do tempo. Desta forma, a caracter´ıstica panm´ıtica do algoritmo ´e perdida, pois indiv´ıduos de uma ilha podem cruzar apenas com ou- tros indiv´ıduos da mesma ilha. Um ponto chave nesta abordagem ´e que as ilhas se comunicam periodicamente atrav´es de um operador denominado Migrac¸˜ao.

Figura 54 – Paralelizac¸˜ao Coarse-Grained.

(a) Arranjo (b) Arquitetura do Sistema

Fonte: Elaborada pelo autor.

Em processos naturais de evoluc¸˜ao, a Teoria do Equil´ıbrio Pontuado diz que, du- rante a maior parte do tempo, uma populac¸˜ao n˜ao exibir´a mudanc¸as gen´eticas significativas e se manter´a em um estado de equil´ıbrio ou estase, mas mudanc¸as ambientais bruscas tˆem a ca- pacidade de causar um r´apido processo evolutivo.32 Isso ´e especialmente v´alido em pequenas populac¸˜oes, onde mudanc¸as evolutivas n˜ao s˜ao dilu´ıdas por um grande n´umero de indiv´ıduos. Em AGs, uma configurac¸˜ao em ilhas com pouca comunicac¸˜ao tende a apresentar um compor- tamento similar, com a inserc¸˜ao brusca de indiv´ıduos atrav´es da migrac¸˜ao ocasionando r´apidas mudanc¸as gen´eticas na populac¸˜ao.

Tal ligac¸˜ao com a gen´etica evolutiva, apesar de fornecer uma forte base te´orica para o uso de configurac¸˜oes em ilhas, n˜ao foi a motivac¸˜ao original para sua criac¸˜ao. Tais algoritmos foram inicialmente idealizados com o objetivo de reduzir o tempo de comunicac¸˜ao em sistemas de mem´oria distribu´ıda a partir do isolamento de parcelas da populac¸˜ao.32

O desempenho de um AG coarse-grained ´e diretamente afetado por trˆes fatores principais: o intervalo de migrac¸˜ao, que representa a frequˆencia com a qual as migrac¸˜oes ocor- rem, a topologia, que governa a direc¸˜ao das migrac¸˜oes e a taxa de migrac¸˜ao, que representa o n´umero de indiv´ıduos movidos em uma migrac¸˜ao. A Figura 54 mostra um AG com 6 ilhas arranjadas em uma topologia de anel.

Algoritmos baseados no modelo coarse-grained foram desenvolvidos tendo em mente configurac¸˜oes de mem´oria distribu´ıda e tˆem como objetivo regular o processo de migrac¸˜ao de modo que sua eficiˆencia se torne igual ou melhor do que a de um AG panm´ıtico com o mesmo n´umero total de indiv´ıduos, buscando tamb´em a minimizac¸˜ao do tempo (overhead) de comunicac¸˜ao. Neste trabalho, tais comunicac¸˜oes foram realizadas utilizando a biblioteca MPI (Message Passing Interface).115

Figura 55 – Paralelizac¸˜ao H´ıbrida.

(a) Arranjo (b) Arquitetura do Sistema

Fonte: Elaborada pelo autor.

mente em um arranjo h´ıbrido. Em um n´o de um cluster ou em um computador convencional com arquitetura multi-core, cada subpopulac¸˜ao evolui utilizando o esquema da Paralelizac¸˜ao Global. Quando m´ultiplos n´os de um cluster s˜ao usados ou quando v´arios computadores pes- soais s˜ao ligados em rede (Network of Workstations), as m´ultiplas subpopulac¸˜oes (ilhas) s˜ao executadas em paralelo (abordagem coarse-grained) e realizam migrac¸˜oes utilizando uma to- pologia em malha completa (fully connected), onde todas as ilhas est˜ao ligadas entre si. O AG resultante, mostrado na Figura 55, combina as melhores caracter´ısticas do OpenMP e do MPI e pode ser executado em qualquer computador com arquitetura multi-core.

Aproveitando o arranjo em ilhas, os parˆametros gen´eticos (tc, pm, ps, pa, pe) podem variar de uma ilha para a outra, inspirado no que foi feito no trabalho de Tanese (1987).33 As- sim, ao inv´es de definir valores fixos para os parˆametros, o usu´ario define faixas para cada um deles e os valores em cada ilha s˜ao sorteados dentro das faixas fornecidas. Isso efetivamente cria m´ultiplos ambientes evolutivos, o que ajuda a evitar problemas de convergˆencia prema- tura, melhora a explorac¸˜ao do espac¸o de projeto e evita a necessidade de ajustar os parˆametros gen´eticos para cada problema analisado.