• Nenhum resultado encontrado

1 Introdução 1.1 Motivação Histórica

Definição 5.1. (Monte Carlo) A operação de seleção de Monte Carlo é uma função

5.2.6 Algoritmo genético para resolver o problema de Sudoku em GPU

Na proposta de Sato (2011), apresenta-se um modelo de processamento paralelo que aborda algoritmo genético de múltiplas populações para resolver o enigma de

Sudoku13. Esta abordagem de algoritmo genético baseado no modelo de Holland (1975)

tem como objetivo combater a dependência do valor inicial sobre a condição de um número limitado de indivíduos na manipulação genética acelerada pelo processamento paralelo de threads.

O autor (SATO,2011) argumenta que ao assumir um processador de único núcleo o tempo de processamento para algoritmos genéticos torna-se muito mais elevado do que para algoritmos de backtracking14. O aumento do número de núcleos na GPU (GTX

460), pode tornar o tempo de processamento de algoritmos genéticos iguais ou menores do que para os algoritmos de backtracking. A computação genética usando GPU prevê esse fato na concepção de desenvolvimento de um programa de processamento paralelo, o qual é dependente do número de núcleos e da capacidade de memória na GPU. Isso significa que o algoritmo se adapta devido ao grau de paralelização e à quantidade de processamento alocado para cada tarefa de acordo com especificações de GPU (SATO,2011). Muitos algoritmos genéticos foram desenvolvidos para resolver o enigma de Sudoku e que o fracasso na maioria dos projetos de desenvolvimento está relacionado à operação de cruzamento, que tende a destruir a principal característica dos schematas15.

Para evitar este tipo de problema, são definidas matrizes 9x9 bidimensionais do AG na GPU na formação do cromossomo que propõem uma operação de cruzamento, e, assim, levam à construção de blocos de ligação.

Na arquitetura de algoritmo genético de Sato (2011), o modelo do algoritmo é definido da seguinte forma: na máquina host, todos os indivíduos são gerados aleatoriamente e, em seguida, enviados para memória global da GPU. Em cada cópia da streaming multiprocessors (SMs), os indivíduos correspondentes na memória global são direcionados para a memória compartilhada e o processo geracional é repetido até que os critérios de parada sejam satisfeitos. Todos os SMs copiam os indivíduos que evoluíram a partir da memória compartilhada para memória global, o que pode ser visto na figura 5.22.

O autor argumenta que o procedimento geral vem através da definição de 81 bits unidimensional de cromossomos, os quais, por sua vez, consistem em sub-cromossomos unidos para representar regiões; em seguida, realiza-se o cruzamento. Como os pontos de cruzamento são limitados, é definido um cromossomo bidimensional e a construção de blocos de ligação na GPU. O processo de cruzamento realiza atribuição de uma pontuação para cada linha ou coluna, composta por blocos de região. O efeito de paralelização de AGs, pelo uso de GPUs, poderá aumentar o número de indivíduos, fator que não afeta diretamente o tempo de processamento do algoritmo genético(SATO,2011) .

Segundo Sato (2011) para aumentar o paralelismo é necessário limitar os números de threads e streaming para melhor processamento do algoritmo genético. As principais desvantagens do algoritmo destacam-se: a limitação do número de blocos para realização do processo de cruzamento trabalha apenas com ponto fixo.

13 Um quebra-cabeça baseado na colocação lógica de números, conforme enciclopédia Wikipedia (2015). 14Tipo de algoritmo que representa um refinamento da busca por força bruta, conforme enciclopédia Wikipedia 15 Padrão genético que descreve um conjunto encontrado no estudo de Kamber (2000).

Por esta falta de precisão o mesmo não pode ser aplicado a qualquer tipo de problema. O algoritmo realiza uma única operação de cruzamento o que limita o número de indivíduos a ser processado pelo algoritmo genético.

Figura 5.22 - Modelo de Algoritmo Genético em GPU. Fonte: SATO,2011.

Na figura 5.23, apresenta-se à arquitetura unificada proposta por Oiso (2011), ilustra-se o modelo de processamento paralelo de uma stready-state de AGs no ambiente GPU (GTX 480). O modelo apresentado executa todas as operações genéticas utilizando o algoritmo MGG (Generation Gap Minimal) em um único núcleo de função, considerando uma camada de função do kernel no host e de nos SMs (streaming multiprocessors), para receber dois indivíduos (pais) na população e na memória global. Em seguida, todos os processos são executados pelos operadores de seleção, cruzamento e classificação nos SMs. Os dois indivíduos selecionados são enviados de volta à memória, e a rotina é repetida até que o critério de encerramento seja satisfeito. Salienta-se que os processos de função do kernel são executados em paralelos (OISO,2011).

As operações do AGs são definidas como funções do kernel em GPU, e o kernel de funções por códigos da CPU (host) sendo usado na transferência de dados do host. O autor argumenta que este processo pode ser lento, considerando a transferência de dados on-chip em memória.

Figura 5.23 - Arquitetura paralela steady-state AG em GPU. Fonte: OISO,2011 .

Nessa perspectiva, para que a velocidade seja melhorada, é necessário que as transferências sejam diminuídas; assim, o kernel aloca uma operação de um gene no sentido de posicionar, de forma paralela, as operações de esconder à latência nos processos (OISO,2011). Este processo acelera o algoritmo em até 6x utilizando apenas um único kernel na implementação. As principais desvantagens desta arquitetura aborda a utilização de dados aleatórios e fictícios as operações genéticas são realizadas com aritmética de ponto fixo não sendo assim aplicado a problemas que requeiram alta precisão e como as operações genéticas que representam alta latência e são tratadas dentro do algoritmo.

5.3 Considerações Finais

Os algoritmos vistos na literatura (Anexo I - Mapa Comparativo dos Trabalhos Relacionados), que abordam métodos de DSP têm como objetivo realizar a filtragem em de sinais ECG, em geral, realizam apenas a limpeza do sinal e a remoção de ruídos, sem muita precisão, acarretando com isso perda de informação e comprometendo o diagnóstico de arritmias cardíacas. Também, em função do tratamento da dimensionalidade dos dados, o processamento do sinal de ECG quase sempre exige a combinação de vários algoritmos para seu processamento, tornando o processo lento e

inviável para diagnóstico rápido de anomalias. Como forma alternativa na resolução dos problemas apresentados pelos métodos tradicionais de DSP, os algoritmos genéticos têm apresentado novas abordagens computacionais por trabalhar com um único algoritmo para o processamento de sinais. A principal desvantagem do uso de algoritmos genéticos tradicionais está relacionada ao custo computacional para realizar operações de otimização de funções, acelerar as operações genéticas de cruzamento e mutação.

As arquiteturas de alto desempenho apresentadas no anexo I, implementam apenas uma ou duas funcionalidades dos operadores genéticos dos AGs, visando apenas à otimização de funções como se este fosse, o principal motivo do esforço computacional do algoritmo, sem avaliar as operações genéticas realizadas no processamento dos AGs.

Os cromossomos geralmente são binários, por muitas vezes não se aplicando a qualquer tipo de problemas. Observa-se, que na maioria dos modelos apresentados, apenas os cromossomos mais adaptados são usados nas aplicações, descartando parte da população menos adaptada. Isto implica que durante esse processo de descarte, poderá ocorrer perda da informação, por não agregar ao sistema novo processo de adaptação aos cromossomos menos adaptados, principalmente quando se trata de sinais de ECG, os quais poderão esconder ondas específicas nos cromossomos mortos.

Às arquiteturas expostas visam, apenas à paralelização do cálculo de adaptação, buscando a otimização de funções, como forma de melhoria de desempenho dos AGs. Porém, não se vislumbra os principais motivos que afetam diretamente no desempenho funcional dos algoritmos genéticos apresentados.

Nesta tese, apresenta a implementação de todo o material genético do AG, a partir do modelo de alto desempenho inspirado em algoritmo genético baseado em tipos abstratos de dados, maiores detalhes serão vistos no capítulo 6.

ALGORITMOS OBJETIVOS CPU FPGA GPU TIPO F C P D P Q R S T U