Dinâmica de N-corpos com interação gravitacional - LIEF

Propaganda
Dinâmica de N-corpos com
interação gravitacional
Fernanda Pereira da Cruz Benetti
Tópicos em Física Computacional:
Introdução à linguagem CUDA
30/06/2014
IF-UFRGS
Dinâmica
●
Evolução de N corpos
●
Interação gravitacional entre corpo i e j:
30/06/2014
IF-UFRGS
Dinâmica
●
●
Aceleração de um corpo:
N*N operações a cada passo de tempo
30/06/2014
IF-UFRGS
Etapas do programa
●
●
Gerar distribuição inicial (posição r e
velocidade v para cada partícula)
Iniciar evolução:
Calcular forças (~N*N)
➔ Integrar equações de movimento
(~N)
➔ Fazer medidas
➔ Repetir
➔
30/06/2014
IF-UFRGS
Etapas do programa
●
●
Gerar distribuição inicial (posição r e
velocidade v para cada partícula)
Iniciar evolução:
Calcular forças (~N*N)
➔ Integrar equações de movimento
(~N)
➔ Fazer medidas
➔ Repetir
➔
30/06/2014
IF-UFRGS
Paralelização
●
Livro (online) GPU Gems 3 da Nvidia: Fast NBody Simulation with CUDA (capítulo 31)
http://http.developer.nvidia.com/GPUGems3/gpugems3_pref01.html
●
Paralelização simples:
30/06/2014
➔
Paralelo: a_i
➔
Serial: soma sobre j
IF-UFRGS
Paralelização
➔
Paralelo: a_i
➔
Serial: soma sobre j
Soma sobre j eficiente → vetor das posições (tamanho N) na
memória compartilhada
Problema de memória limitada
30/06/2014
IF-UFRGS
Paralelização
●
●
Divide-se N*N em blocos de tamanho p*p (com p<N)
Após somar sobre p, carrega-se próximo vetor posição
de tamanho p, até somar sobre os N corpos
30/06/2014
IF-UFRGS
Paralelização
30/06/2014
IF-UFRGS
30/06/2014
IF-UFRGS
30/06/2014
IF-UFRGS
30/06/2014
IF-UFRGS
Download