• Nenhum resultado encontrado

8.3 Comparativo de Desempenho e Escalabilidade

8.3.2 Execução Paralela

Nesta primeira análise, o problema avaliado é a geração de malha do modelo Ar-madillo utilizando uma octree com 11 níveis de profundidade. O número de octantes obtidos após o refinamento é de 24.253.825.

Com uso da ferramenta TAU [101] foram extraídos os tempos de execução em cada núcleo de processamento nas várias etapas de geração de malha dos dois algo-ritmos. A Figura 8.8 apresenta o gráfico dos tempos de execução do algoritmo de geração de malha não-conforme e a Figura 8.9, do algoritmo de geração de malha conforme, ambas utilizando 8 núcleos de processamento. O código das etapas de refinamento, particionamento e balanceamento é o mesmo nos dois algoritmos, e por isso observa-se comportamento idêntico. Como na execução serial, uma pe-quena diferença é observada nos tempos da função de obtenção de nós e a maior discrepância é identificada na etapa de criação dos elementos.

Figura 8.8: Gráfico do tempo de execução de cada etapa do algoritmo de geração de malha sem conformação

Figura 8.9: Gráfico do tempo de execução de cada etapa do algoritmo de geração de malha com conformação

A Tabela 8.3 apresenta um comparativo entre as etapas nas quais o algoritmo de geração conforme foi alterado. Nota-se que a diferença relativa na etapa de obtenção de nós se mantém no mesmo nível da execução serial (em torno de 24%). Já na etapa de criação dos elementos, essa diferença é bastante reduzida.

Tabela 8.3: Tempos da execução paralela para o modelo Armadillo com octree de 11 níveis de profundidade.

Etapa não-conforme conforme diferença Obtenção dos Nós 89,047 110,636 24,2%

Criação dos Elementos 5,646 42,776 657%

Conforme exposto na Seção 3.4.1, a análise de escalabilidade forte mede o in-cremento de desempenho da solução de um problema de tamanho fixo de acordo com o aumento no número de núcleos de processamento (cores). A comparação da escalabilidade forte foi realizada primeiramente utilizando o modelo Armadillo e uma octree de 9 níveis de profundidade. O número de octantes da octree refinada, para os dois casos, chega a 1.912.485. O número de hexaedros da malha final na geração da malha não-conforme é de 893.139 e o número de tetraedros resultantes da geração da malha conforme chega a 8.180.304.

A Figura 8.10 mostra as curva do tempo de execução em relação ao número de cores para os dois algoritmos. Nota-se uma redução da diferença dos tempos entre

os dos dois algoritmos de acordo com o aumento no número de cores utilizados.

1 2 4 8 16 32 64

N m. de cores 0

50 100 150 200 250 300

Tempo de Execuo (seg.)

malha no-conforme malha conforme

Figura 8.10: Gráfico do tempo de execução da geração de malha não-conforme e geração de malha conforme

O gráfico da Figura 8.11 apresenta os índices de eficiência para as duas execuções.

Pode se observar valores bastante semelhantes, indicando a manutenção da escalabil-idade na geração da malha conforme. A redução da diferença nos tempos de acordo com o aumento no número de cores observada no gráfico da Figura 8.10 reflete-se em um índice de eficiência levemente melhor na geração da malha não-conforme.

Pode ser observado também uma queda mais acentuada na eficiência entre 8 e 16 cores, causada pelo uso da interconexão de rede utilizada para troca de mensagens nas execuções com mais de 12 cores.

1 2 4 8 16 32 64

Figura 8.11: Gráfico do índice de eficiência da geração de malha não-conforme e geração de malha conforme

Os valores das curvas da Figura 8.10 são apresentados na Tabela 8.4, além do acréscimo percentual no tempo de execução da geração de malha não-conforme em relação à geração de malha conforme. Na execução serial, este acréscimo atinge 11,8%, declinando para 1,93% utilizando-se 64 núcleos de processamento.

Tabela 8.4: Tempos de execução e índice de eficiência da geração de malha com algoritmo original e sua extensão.

Um segundo comparativo foi realizado com o modelo Armadillo, mas este com uma octree de 11 níveis de profundidade. Como a execução serial deste problema não é possível devido à limitação de memória, um mínimo de 8 cores foi utilizado.

A Tabela 8.5 apresenta os tempos obtidos em cada execução e o acréscimo per-centual, que alcança 9,1% na execução com 8 processos e diminui para 5,4% com 128 processos.

A Figura 8.12 apresenta o gráfico de eficiência em relação ao número de cores para os dois algoritmos. Assim como no comparativo anterior, há uma queda de

Tabela 8.5: Tempos de execução e acréscimo de tempo obtido com a conformação para geração de malha com modelo Armadillo, octree de 11 níveis.

cores não-conforme conforme acréscimo

eficiência mais acentuada entre 8 e 16 cores causada pelo uso de interconexão de rede para troca de mensagens.

Figura 8.12: Gráfico do índice de eficiência da geração da malha não-conforme e geração de malha conforme

Um terceiro comparativo foi realizado com a geração de malha conforme e não-conforme para o modelo Viggen e octree com 12 níveis de profundidade. O número de octantes resultantes após o refinamento e balanceamento da octree é de 50.191.100.

O comportamento observado é semelhante aos comparativos utilizando o modelo Armadillo. O gráfico da Figura 8.13(a) também apresenta uma redução na diferença dos tempos de execução entre os dois algoritmos de acordo com o aumento no número decores utilizados. O gráfico de eficiência da Figura 8.13(b) apresenta índices muito próximos entre os dois algoritmos, com uma leve vantagem para geração de malhas conformes.

Para investigar a diminuição da diferença dos tempos de execução com o aumento no grau de paralelismo, realizou-se uma análise de escalabilidade forte para cada

8 16N m. de cores32 64

Figura 8.13: Análise de escalabilidade forte do modelo Viggen, octree com 12 níveis:

Tempo de Execuçã (a) e Eficiência (b)

etapa do processo de geração. A Tabela 8.3 apresenta um comparativo dos tempos de execução dos dois algoritmos, por etapa, para 8 e 128 processos. Como era esperado, os tempos para as etapas de refinamento, particionamento e balanceamento tem pequenas diferenças.

Para as etapas de obtenção dos nós e criação dos elementos, que apresentaram as maiores diferenças, foi realizado cálculo dos índices de escalabilidade forte. A Tabela 8.7 apresenta o speed-up e a eficiência baseados nos tempos da Tabela 8.6.

Destaca-se que a eficiência das etapas no algoritmo de geração de malhas conformes é bastante elevada: a obtenção de nós mantém índice próximo a 1, enquanto o algoritmo de criação dos elementos tem o dobro de eficiência da implementação original, explicando assim a amortização do tempo destas etapas de acordo com o aumento no número de processos.

Tabela 8.6: Tempos de execução por etapas (Armadillo, octree de 11 níveis).

8 processos 128 processos Etapa não-conforme conforme não-conforme conforme

Refinamento 44,76 44,72 11,87 11,80

Particionamento 214,46 216,99 27,26 27,88

Balanceamento 209,54 206,33 33,99 33,51

Obtenção dos Nós 88,327 110,636 5,823 7,219

Criação dos Elementos 5,646 42,776 1,046 3,708

Tabela 8.7: Índices de escalabilidade por etapas (Armadillo, octree de 11 níveis).

Speed-up Eficiência

Etapa não-conforme conforme não-conforme conforme

Obtenção dos Nós 15,17 15,33 0,95 0,96

Criação dos Elementos 5,40 11,54 0,34 0,72