6 Resultados Estratégias Consideradas

Documentos relacionados
5 Sistema Proposto Simulação Integração Numérica

3 Sistema de Partículas na CPU

5 Resultados Experimentais

5 Comparação e Resultados

6 Implementação e Resultados

Os testes foram efetuados em um processador Intel i7 de 2.8 GHz com 12Gb de memória RAM utilizando uma Nvidia GeForce GTX 480.

5 Resultados Experimentais

Visualização Interativa de Modelos Massivos de Engenharia na Indústria de Petróleo com o Algoritmo de Voxels Distantes

Figura 29 - Simulação de dois fluidos imiscíveis utilizando a biblioteca de Nakamura (2007)

Processamento de áudio em tempo real utilizando dispositivos não convencionais:

5 Qualidade dos Resultados

1 Introdução. I know because I must know. It's my purpose. It's the reason I'm here. (The Matrix) 1.1 Objetivos do trabalho

Figura 4.1: Organização de hardware da nossa solução.

Técnicas de Processamento Paralelo na Geração do Fractal de Mandelbrot

LEAPFROG EDGE Página 1

Computação científica utilizando placas gráficas

A IMPORTÂNCIA DE THREADS NO DESEMPENHO DE APLICAÇÕES

Visualização de terrenos em GPU

Modelos de Computadores

Paradigmas de Processamento Paralelo na Resolução do Fractal de Mandelbrot

Introdução Introdução

Um pouco de história. SketchPad Tese de Doutorado de Ivan Sutherland (MIT) Conceito de comunicação com o computador

Paralelização do Detector de Bordas Canny para a Biblioteca ITK usando CUDA

Um Algoritmo Genético com Aprendizado por Reforço Simples aplicado ao problema do Mundo de Grid

4 Implementação em CPU

Implementação de um escalonador de processos em GPU

Leapfrog Geo 3.1. Notas técnicas da versão

Comparando, Distribuindo e Ordenando

é a saida do melhor individuo. A configuração de parâmetros da

3.1 Linha de Produção Utilizada

Conceitos sobre Computadores

Limite assintótico para a ordenação, Ordenação em tempo linear

4 Resultados. 4.1 Análise de desempenho

Análise empírica de algoritmos de ordenação

5 Resultados. 5.1 Modelos usados nos testes

de petróleo. Um novo domínio chamado computação de propósito geral em processadores gráficos (GPGPU) surgiu quando os pipelines de gráficos de

GPU (Graphics Processing Unit) Bruno Padilha Gregory De Bonis Luciana Kayo

Componentes de Hardware. Alberto Felipe FriderichsBarros

4 Testes e experimentos realizados 4.1. Implementação e banco de dados

Sparse Matrix-Vector Multiplication on GPU: When Is Rows Reordering Worthwhile?

Trabalho de Arquitetura de Computadores (ADC)

Ordenação. Prof. Jonas Potros

Aplicação de Tags em Objetos de Sistemas de Visualização em Tempo Real

3 Extensões dos modelos matemáticos

Organização e Arquitetura de Computadores I

Projeção de Células baseada em GPU para Visualização Interativa de Volumes

Hardware. Organização Funcional de um. Computador. Arquitetura de Multiprocessadores. UCP Unidade Central de Processamento AMD. Sistema Central CPU

Quick Sort. Considerações Sobre Algoritmos de Ordenação. Estagiário PAE: Jesimar da S. Arantes Professor: Claudio Quick F. M.

3 Modelo de Reservatórios Naturais de Petróleo

5 Frustum culling em GPU

Aplicação de Processamento Paralelo com GPU a Problemas de Escoamento Monofásico em Meios Porosos. Bruno Pereira dos Santos Dany Sanchez Dominguez

Geração Procedural de Terrenos em GPU

Requisitos do Sistema

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES PARALELISMO: SMP E PROCESSAMENTO VETORIAL. Prof. Dr. Daniel Caetano

Visualização Distribuída utilizando Agrupamentos de PCs 10

5 Unidades de Processamento Gráfico GPUs

3 Computação de Propósito Geral em Unidades de Processamento Gráfico

6 Estudo de Casos: Valor da Opção de Investimento em Informação por Aproximação com Números Fuzzy 6.1. Introdução

MJ3I- PA - AMBIENTE VIRTUAL 3D PARA VISUALIZAÇÃO DE BRAÇOS ARTICULADOS NO IOS

Sob medida para seu sistema de segurança!

Programação de Computadores Ordenação de Arranjos

4 Impostores com Relevo

Complexidade Computacional do Algoritmo de Detecção de Energia

6 Estudos de Casos Porta Lógica OU de 4 Entradas

5 Protótipo e Resultados Obtidos

Algoritmos Genéticos

ORDENAÇÃO EXTERNA DE ARQUIVOS: GERAÇÃO DE PARTIÇÕES CLASSIFICADAS. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos

3. MODELOS MATEMÁTICOS PARA FORÇAS DE CONTATO E DE REMOÇÃO

Sistema de Aquisição de Dados em Tempo Real Utilizando Software Livre e Rede Ethernet para Laboratório de Controle

BARRAMENTOS DO SISTEMA FELIPE G. TORRES

Seequent Central 2.2 NOTAS DE LANÇAMENTO. Seequent Limited Snippet_312BDBF20.idms

Survey de técnicas. detalhadas: Análise e Comparação

Microprocessadores II - ELE 1084

Simulação Dinâmica de Corpos Rígidos com Uso de GPU

4 Implementação Computacional

Brilliant Solutions for a Safe World

ALGORITMOS DE ORDENAÇÃO

Um Calculador de Capacidade de Computação para Nós de Máquinas Virtuais LAM/MPI

5.1. Caso 1 Cálculo da Energia e Estrutura de Bandas de Nanotubos

4.1. Validação da análise de fluxo e transporte de soluto no meio fraturado

Sistema Operacionais II. Aula: Virtualização

4 Resultados 4.1. possui um processador Intel Core i5 2.8 GHz. Sua placa gráfica é uma GeForce GTX 550 Ti.

8 Conclusão 8.1 Contribuição

Arduino Lab 08 Banco de teste para memória RAM HM6116 de 16k

Detecção Hierárquica de Colisão em Ambientes 3D

Comparação das Características de Simuladores de Arquiteturas Heterogêneas

INE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUIDA PROVA 2 13/11/2017 ALUNO

Emparelhamento de Objectos Representados em Imagens usando Técnicas de Optimização

4 Testes Breve Descrição da Aplicação

Figura 1.1: Um reservatório natural de petróleo típico: dificuldade para investigar áreas de interesse.

1.1(a): Malha de triângulos aproximando a forma de um golfinho. 1.1(b): Barco modelado com superfícies paramétricas (neste caso, NURBS).

Versão 15.1 Outubro Contato: Atualização do pacote de otimização Xpress para versão 8.5

BCC202 - Estrutura de Dados I

vértices dessas células. Exemplos de malhas estruturadas e não-estruturadas são apresentados na Figura 2.

5 Resultados e Aplicações

4 Processamento Paralelo

Transcrição:

Resultados 38 6 Resultados Este capítulo mostra algumas estratégias consideradas antes de chegarmos ao sistema proposto, mostra também os resultados obtidos ilustrados por diversos experimentos computacionais, além de fazer uma breve comparação entre o sistema proposto em diversas plataformas gráficas e a comparação entre o sistema proposto implementado na GPU e na CPU. 6.1. Estratégias Consideradas Antes de considerar o uso da estratégia proposta, alguns outros métodos foram testados. A primeira estratégia se baseou no trabalho de Kipfer et al. [9] que propôs fazer uma ordenação para detectar colisão. Sua estratégia ordena as células e a colisão é testada com base nesta ordenação. A coerência entre os quadros era aproveitada e a ordenação era distribuída ao longo de vários quadros. Adotando esta estratégia, o conjunto de potenciais colisores a cada quadro é muito impreciso. Como nossa proposta inclui colisão em ambientes confinados, a ordenação completa deveria ser feita a cada quadro. Para testar esta idéia, optouse por implementar um bubble sort, ao invés do bitonic merge sort. Esta implementação parecia razoável porque se pode verificar através de consultas de oclusão (occlusion queries) se a lista já está ordenada. Com isso esperava-se que mesmo fazendo a ordenação completa a cada passo, um bom desempenho seria obtido. Após fazer a ordenação, uma busca binária seria feita para criar uma lista que mapeasse as células em sua posição de início e fim neste conjunto ordenado. Com posse disso, o módulo de detecção de colisão poderia verificar em qual célula o centro da partícula está e acessar todos os seus vizinhos. Porém, mesmo existindo uma forte coerência entre os quadros, uma mudança na ordenação pode ser muito grande, o que implicaria em muitas passadas em um só quadro para fazer a ordenação. Como o número de partículas é elevado, esta mudança se torna constante tornando esta implementação ineficiente.

Resultados 39 Outra estratégia considerada foi fazer a implementação da montagem da estrutura de grid no programa de fragmentos, e não no programa de vértices. Para isso, um grid com as posições iniciais das partículas era montado na CPU. A cada quadro seguinte, um programa de fragmentos verificava para cada célula se suas partículas ainda estavam dentro daquela mesma célula. Verificava ainda se alguma partícula das células vizinhas teria passado para aquela célula. Com isso, numa passada, todas as células do grid seriam atualizadas. Esta estratégia não se encaixou bem à representação do grid, exigindo que um número máximo de partículas por célula fosse definido a priori. Além disso, o shader necessário para fazer as atualizações, possui muitas operações de branch, o que faz com que o processador gráfico perca eficiência. Por também exigir muitas operações de branch, usar os quatro canais de cores para armazenar as partículas no grid se mostrou ineficiente. Uma solução híbrida de CPU e GPU também foi testada. A montagem do grid era feito na CPU e o resto da simulação na GPU. Esta solução também se mostrou ineficiente. 6.2. Experimentos Computacionais Uma série de experimentos computacionais foram feitos para ilustrar o sistema proposto e descrito no Capítulo 5. As taxas medidas são referentes a uma renderização com pontos opacos, não sendo portanto necessário a ordenação das partículas para visualização. Os experimentos foram executados em uma placa de vídeo modelo NVIDIA GeForce 8800 GTX 768 Mb. 6.2.1. Vulcão de Partículas Neste experimento um vulcão é representado através de um terreno digital. Um emissor de partículas é instanciado, emitindo partículas em posições aleatórias dentro do vulcão. Um total de 32K partículas são emitidas ao longo de mil quadros. As partículas fluem montanha abaixo, como ilustra a Figura 13. Após todas as partículas serem emitidas, o experimento é executado a 109 fps.

Resultados 40 6.2.2. Globo de Neve Figura 13 Imagens do Vulcão. Este experimento demonstra a criação de formas não esféricas feitas com o agrupamento de partículas. Um boneco de neve é modelado dentro de um globo combinando diferentes obstáculos (5 esferas, 1 cilindro, e 1 plano). Um emissor gera 21K flocos de neve. Cada floco é composto por três partículas conectadas por barras rígidas: cada partícula possui duas restrições. A Figura 14 ilustra o experimento que é executado a 54 fps. 6.2.3. Galão com um Furo Figura 14 Imagens do globo de neve. Neste experimento um galão cilíndrico com 128K partículas de tamanhos diferentes é modelado. O raio das partículas varia uniformemente de 1 a 2 unidades. Um pequeno cilindro é usado como condição para criar o furo na parte

Resultados 41 de baixo do cilindro maior, como ilustrado na Figura 11. As partículas caem numa caixa, esvaziando o galão. A Figura 15 ilustra o experimento, que é executado a 22 fps. 6.2.4. Barragem de Partículas Figura 15 Imagens do experimento do galão. Neste experimento é montada uma pilha com 1024K partículas confinadas numa barragem, como mostrada na primeira imagem da Figura 16. No início da simulação, as partículas são liberadas, mas continuam confinadas numa caixa com um cilindro como obstáculo adicional. A simulação é executada a 6 fps. Figura 16 Simulação de 1 milhão de partículas liberadas de uma barragem em um ambiente confinado sendo executada a 6fps.

Resultados 42 6.2.5. Sumário e Discussão A Tabela 2 resume o desempenho obtido em uma GeForce 8800 GTX nos experimentos computacionais. Experimento # de Partículas Desempenho Vulcão 32K 109 fps Globo de Neve 64K 54 fps Galão 128K 22 fps Barragem 1024K 6 fps Tabela 2 Desempenho alcançada na GeForce 8800 GTX. O sistema proposto também pode ser executado em outras placas gráficas. O gráfico da Figura 17 mostra o experimento Barragem de Partículas, implementado com 32K partículas e com 128K partículas, em diversas plataformas gráficas. Este gráfico mostra a tendência de evolução das GPUs, reforçando a idéia de que soluções baseadas na GPU são cada vez mais promissoras. 200 FPS 199 150 100 50 0 22 27 5 8 9 6800 GT (2004) 7800 GT (2005) 38 7800 GTX (2005) 43 8800 GTX (2006-2007) 128K 32K Figura 17 Desempenho do sistema proposto em várias plataformas gráficas Para grandes números de partículas, soluções baseadas na GPU são facilmente superiores às soluções baseadas na CPU. Para comparação, foi implementado um sistema de partículas correspondente na CPU. A configuração das CPUs testadas eram um AMD Opteron com 2 processadores Dual-Core 2.41GHz e um Pentium Core2Duo 1.8Ghz. O gráfico mostrado na Figura 18 revela que para experimentos com mais de 32K partículas, o sistema proposto baseado na plataforma gráfica 6800 GT é superior a mesma solução baseadas em uma CPU com quatro núcleos, e quando a plataforma

Lg(FPS) Resultados 43 gráfica é a 7800 GTX, experimentos com mais de 1K partículas já possuem melhor desempenho na GPU. 10000 1000 100 10 1 1024 2048 4096 8192 16384 32768 65536 Numero de partículas AMD Opteron - 4 Threads Pentium Core2Duo - 1 Thread GeForce 7800 GTX Pentium Core2Duo - 2 Threads GeForce 6800 GT GeForce 8800 GTX Figura 18 Desempenho do sistema proposto em diversas plataformas Para comparação com outros trabalhos, em um passo do método de relaxação a resposta à colisão foi computada apenas com a partícula mais próxima. Com isso, houve a necessidade de um número muito maior de iterações em um passo de integração para manter a mesma estabilidade, afetando drasticamente a performance do sistema. Para testar a estabilidade do sistema, o experimento do Galão foi repetido com distribuições de raio variadas. O número de passadas de rendering necessárias para a construção do grid aumenta quando a variação dos raios

Resultados 44 aumenta. O desempenho do sistema diminui, porém o sistema continua numericamente estável, mesmo com apenas uma iteração do método de relaxação. Para partículas do mesmo tamanho, o número de partículas mapeadas em uma única célula não ultrapassa oito. Com isso, pode-se usar a construção do grid como proposto por Purcell et al. [6]. Porém, a quantidade de memória usada para armazenar o grid se torna proibitiva, já que precisaríamos alocar espaço para oito partícula em cada célula.