• Nenhum resultado encontrado

Conclus˜ oes

No documento Dissertação (páginas 118-121)

Esta disserta¸c˜ao abordou trˆes estrat´egias de implementa¸c˜ao paralela do algoritmo PSO em arquiteturas paralelas de alto desempenho. A primeira estrat´egia considera o fato de que as computa¸c˜oes realizadas pelas part´ıculas s˜ao quase independentes e portanto, podem ser realizadas em paralelo. A segunda estrat´egia considera o fato de que as opera¸c˜oes internas aos processos que implementam as part´ıculas tamb´em podem ser paralelizadas, proporci- onando uma decomposi¸c˜ao das opera¸c˜oes realizadas em cada dimens˜ao do problema que esta sendo otimizado. A terceira estrat´egia ´e baseada no algoritmo serial CPSO-Sk, de-

senvolvido por Van den Bergh em (BERGH et al., 2002), cuja ideia principal ´e subdividir o vetor de dimens˜oes do problema original em v´arios subproblemas que ser˜ao otimizados por v´arios subenxames atuando em paralelo. Os subenxames colaboram entre si na solu¸c˜ao do problema original.

Este estudo foi motivado pelo baixo desempenho do algoritmo PSO sequencial quando aplicado na solu¸c˜ao de problemas complexos que envolvam um grande n´umero de dimens˜oes e part´ıculas. Seu objetivo foi investigar e desenvolver estrat´egias paralelas para o PSO visando `a redu¸c˜ao do tempo de execu¸c˜ao, assim como a manuten¸c˜ao ou melhoria da eficiˆencia na otimiza¸c˜ao.

7.1 Conclus˜oes 117 Inicialmente, o algoritmo PPSO foi implementado diretamente em hardware uti- lizando uma Xilinx Virtex 6 FPGA (xcvlx75t). A arquitetura explora o paralelismo atualizando as posi¸c˜oes e as velocidades e calculando a fun¸c˜ao objetivo de modo indepen- dente, considerando as part´ıculas do enxame. Os resultados de s´ıntese demonstram que a escalabilidade do hardware depende do n´umero de part´ıculas usadas e da complexidade da fun¸c˜ao objetivo. A arquitetura do HPSO foi validada usando at´e 10 part´ıculas operando em paralelo na solu¸c˜ao de problemas de otimiza¸c˜ao de 2 dimens˜oes. O melhor desempenho alcan¸cado foi de 135 vezes e o menor de 20 vezes comparado ao processador MicroBlaze—.

Devido `a limita¸c˜ao de ´area da FPGA, os resultados obtidos pelo HPSO n˜ao puderam ser comparados com as outras arquiteturas paralelas.

Em seguida, as trˆes estrat´egias paralelas do PSO foram transformadas nos algo- ritmos PPSO, PDPSO e CPPSO e implementadas em trˆes diferentes arquiteturas de alto desempenho: multiprocessador, multicomputador e GPU. Os algoritmos foram avaliados utilizando diferentes arranjos de part´ıculas e dimens˜oes, proporcionando diferentes custos e complexidades, na otimiza¸c˜ao de 4 fun¸c˜oes de benchmark. O hardware utilizado para executar as implementa¸c˜oes em OpenMP e MPICH foi o SGI Octane III, composto de 4 n´os conectados via uma rede Gigabit-Ethernet. Cada n´o contˆem 2 processadores Intel Xeon de 2,4 GHz, sendo dotados de 4 n´ucleos HT cada. A implementa¸c˜ao em GPU ex- plorou a GPU NVIDIA GTX 460, que proporciona 7 SM, onde cada SM inclui 48 n´ucleos de 1,3 GHz.

Implementados em OpenMP, os algoritmos PPSO e CPPSO obtiveram os melhores desempenhos nos casos que envolveram um grande n´umero de part´ıculas e dimens˜oes, alcan¸cando at´e 1,43 e 2,6 vezes respectivamente, em rela¸c˜ao `a implementa¸c˜ao sequencial. Portanto, para a arquitetura de multiprocessador, os melhores resultados foram obtidos utilizando um particionamento com uma granularidade mais grossa.

Implementados em MPICH, o algoritmo PPSO obteve o melhor desempenho nos casos que apresentaram um grande n´umero de part´ıculas e dimens˜oes, alcan¸cando at´e 39,67 vezes em rela¸c˜ao `a implementa¸c˜ao sequencial. A utiliza¸c˜ao de um arranjo otimizado de part´ıculas por processo e n´umero de processos levou a um aumento significativo no desempenho. Portanto, como a arquitetura de multiprocessadores, a arquitetura de mul- ticomputadores obteve os melhores resultados utilizando um particionamento com uma granularidade mais grossa.

7.1 Conclus˜oes 118 Implementados em OpenMP com MPICH, o algoritmo CPPSO obteve o melhor desempenho nos casos com grande n´umero de part´ıculas e dimens˜oes, alcan¸cando at´e 14,75 vezes em rela¸c˜ao `a implementa¸c˜ao sequencial. Logo, os melhores resultados foram obtidos utilizando um particionamento com uma granularidade mais grossa.

Implementados em CUDA, os algoritmo CPPSO e PDPSO obtiveram os melhores desempenhos nos casos com grande n´umero de part´ıculas e dimens˜oes, alcan¸cando at´e 61,97 e 53,81 vezes respectivamente, em rela¸c˜ao `a implementa¸c˜ao sequencial.

Conforme esperado, devido principalmente as caracter´ısticas de cada arquitetura, a GPU obteve os melhores resultados com os algoritmos que utilizaram uma granulari- dade mais fina, enquanto as outras arquiteturas tiveram bons desempenhos utilizando um particionamento com uma granularidade mais grossa.

As estrat´egias de paraleliza¸c˜ao do algoritmo PSO utilizaram basicamente a de- composi¸c˜ao de dom´ınio. Esta caracter´ıstica foi uma das causas para que a arquitetura de GPU superasse em aproximadamente 60% o desempenho da implementa¸c˜ao em MPICH, que obteve o segundo melhor desempenho utilizando um hardware que ´e cerca 9 vezes mais caro. De outra forma, uma aplica¸c˜ao que utilize decomposi¸c˜ao funcional, ou seja, threads ou processos realizando diferentes tarefas, certamente obteria melhor desempenho implementada na arquitetura de multiprocessadores e/ou multicomputadores. De um modo geral, a ado¸c˜ao da verifica¸c˜ao da condi¸c˜ao de parada a cada 20 itera¸c˜oes contribuiu para reduzir o sincronismo e a comunica¸c˜ao entre os processos ou threads, incrementando o desempenho das aplica¸c˜oes em todas as arquiteturas em aproximadamente 90%. Nos casos de enxames com poucas part´ıculas e dimens˜oes, a implementa¸c˜ao serial apresentou o melhor desempenho.

Em rela¸c˜ao `a eficiˆencia na otimiza¸c˜ao, os trˆes algoritmos propostos apresentaram eficiˆencia na maioria das otimiza¸c˜oes de modo semelhante e at´e melhor que o algoritmo sequencial. Esta eficiˆencia fica bem evidenciada nos casos em que foram obtidos supers- peedups positivos em fun¸c˜ao da redu¸c˜ao do n´umero de itera¸c˜oes pelas implementa¸c˜oes paralelas, especialmente pelo CPPSO. Apesar disso, a probabilidade de localizar o ´otimo global decresce significantemente com o aumento do n´umero de dimens˜oes do problema (ENGELBRECHT, 2006), uma vez que o n´umero de pontos do espa¸co de busca cresce expo- nencialmente. Assim, pode ser observado que para todas as implementa¸c˜oes da fun¸c˜ao f2

7.2 Trabalhos Futuros 119

No documento Dissertação (páginas 118-121)

Documentos relacionados