Você está na página 1de 46

Soluo das equaes de Bloch para um sistema atmico de dois nveis utilizando GPUs

Soluo das equaes de Bloch para


um sistema atmico de dois nveis
utilizando GPUs
Teo Victor Resende da Silva
Prof. Dr. Marco Polo Moreno de Souza
Projeto: Efeitos Coerentes em Vapor de Rubdio
XXV Seminrio Final PIBIC - 2015/2016
Departamento de Fsica
Universidade Federal de Rondnia - Campus de Ji-Paran

3 de Agosto de 2016

Soluo das equaes de Bloch para um sistema atmico de dois nveis utilizando GPUs

Contedo
1 Apresentao terica do problema
2 Resultados obtidos
3 Publicaes
4 Concluses

Soluo das equaes de Bloch para um sistema atmico de dois nveis utilizando GPUs
Apresentao terica do problema

Contedo
1 Apresentao terica do problema
2 Resultados obtidos
3 Publicaes
4 Concluses

Soluo das equaes de Bloch para um sistema atmico de dois nveis utilizando GPUs
Apresentao terica do problema
Tpicos de estudo

Transies de um sistema atmico de dois nveis


(5S 5P) interagindo com um trem de pulsos
ultracurtos
Populao fracionria 22 aps a interao com
com um nmero definido de pulsos
Distribuio Maxwell-Boltzmann das velocidades
no vapor atmico

Soluo das equaes de Bloch para um sistema atmico de dois nveis utilizando GPUs
Apresentao terica do problema
Tpicos de estudo

Efeito Doppler na interao com o trem de


pulsos
Paralelizao do problema utilizando GPUs
Otimizao do cdigo na GPU

Soluo das equaes de Bloch para um sistema atmico de dois nveis utilizando GPUs
Apresentao terica do problema
Equao de Liouville-Neumann

Populaes fracionrias e respectivas coerncias so


expressas na matriz densidade, cuja evoluo
temporal dada pela equao de Liouville-Neumann:

i h i
= H,
t
~

(1)

Soluo das equaes de Bloch para um sistema atmico de dois nveis utilizando GPUs
Apresentao terica do problema
Equaes de Bloch

Da equao de Liouville-Neumann temos as equaes


de Bloch, que descrevem a evoluo temporal da
matriz densidade devido interao com campos
eletromagnticos. Para um sistema de dois nveis,
11 = i0 (t)12 + c.c. + 22 22
22 = i0 (t)12 + c.c. 22 22
12 = (i 12 )12 + i0 (22 11 )

(2a)
(2b)
(2c)

Soluo das equaes de Bloch para um sistema atmico de dois nveis utilizando GPUs
Apresentao terica do problema
Campo eltrico de um trem de pulsos

O mdulo do campo eltrico de um trem de pulsos


dado pela expresso
E (t) =

n1
X

E0 (t nTR )e i(c tnc TR +n)

(3)

n=0

E0 a envoltria do pulso, que representamos com


uma curva secante hiperblica:


1,76t
(4)
E0 (t) = E0 sech
Tp

Soluo das equaes de Bloch para um sistema atmico de dois nveis utilizando GPUs
Apresentao terica do problema
Campo eltrico de um trem de pulsos

Representao grfica para um trem de pulsos e sua


envoltria:

Soluo das equaes de Bloch para um sistema atmico de dois nveis utilizando GPUs
Apresentao terica do problema
Distribuio Maxwell-Boltzmann

Para a considerao do efeito Doppler, identificamos


a frao de tomos em um vapor atmico com
velocidades no intervalo v a v + dv atravs da
expresso:
r


M
Mv 2
exp
dv
(5)
f (v )dv =
2kB T
2kB T

Soluo das equaes de Bloch para um sistema atmico de dois nveis utilizando GPUs
Apresentao terica do problema
Distribuio Maxwell-Boltzmann

Distribuio das velocidades do istopo


= 300K

85

Rb, em T

Soluo das equaes de Bloch para um sistema atmico de dois nveis utilizando GPUs
Apresentao terica do problema
Programao paralela com CUDA

A soluo do problema em estudo para a faixa


de velocidades anterior pode ser custosa
computacionalmente
GPUs, as unidades de processamento grfico,
atendiam a um propsito especfico
A Nvidia desenvolveu a plataforma CUDA, um
conjunto de ferramentas para se aproveitar o
poder computacional de suas GPUs para
paralelizar programas

Soluo das equaes de Bloch para um sistema atmico de dois nveis utilizando GPUs
Apresentao terica do problema
Programao paralela com CUDA

A paralelizao como forma de otimizar


programas custosos tm sido usada em diversas
reas do conhecimento como Fsica,
Computao e Biologia
Como aplicao em Fsica, podemos citar
Simulaes de Monte Carlo do modelo de Ising
Simulaes de modelos de spin
ptica no-linear
Simulao de colises

Soluo das equaes de Bloch para um sistema atmico de dois nveis utilizando GPUs
Apresentao terica do problema
Programao serializada

Programao serializada tradicional:


O processador trabalha buscando e executando
instrues na memria sequencialmente
Geralmente possui uma hierarquia de memria
de diferentes capacidades de armazenamento e
frequncias de operao
Processadores recentes podem ter mltiplos
ncleos e executar tarefas em paralelo

Soluo das equaes de Bloch para um sistema atmico de dois nveis utilizando GPUs
Apresentao terica do problema
GPUs

Uma GPU Nvidia atual da microarquitetura


Kepler possui centenas de streaming
multiprocessors (SMs), cada um com cache
prprio, chamados ncleos CUDA
O gargalo de um modelo de execuo na GPU
a velocidade de troca de dados com o sistema
host

Soluo das equaes de Bloch para um sistema atmico de dois nveis utilizando GPUs
Apresentao terica do problema
GPUs

Conceitos principais:
Sistema host - CPU, memria e demais
recursos da mquina que suporta a GPU
Dispositivo - GPU, memria global da GPU,
ncleos e demais recursos da placa grfica

Soluo das equaes de Bloch para um sistema atmico de dois nveis utilizando GPUs
Apresentao terica do problema
GPUs

Conceitos principais:
Kernel - rotina de cdigo que ser paralelizada
Thread - cada uma das execues paralelas do
kernel
Block - conjunto de threads
Grid - conjunto de blocos com at trs
dimenses

Soluo das equaes de Bloch para um sistema atmico de dois nveis utilizando GPUs
Apresentao terica do problema
GPUs

Esquema simplificado de uma GPU

Soluo das equaes de Bloch para um sistema atmico de dois nveis utilizando GPUs
Resultados obtidos

Contedo
1 Apresentao terica do problema
2 Resultados obtidos
3 Publicaes
4 Concluses

Soluo das equaes de Bloch para um sistema atmico de dois nveis utilizando GPUs
Resultados obtidos

Resolvemos as equaes de Bloch com os


parmetros compatveis com vapor atmico do
istopo 85 Rb
Parmetros do laser compatveis com laser
comercial de Ti:safira pulsado
A soluo tem a forma de picos de excitao

Soluo das equaes de Bloch para um sistema atmico de dois nveis utilizando GPUs
Resultados obtidos

Distribuio da populao 22 por velocidade

Soluo das equaes de Bloch para um sistema atmico de dois nveis utilizando GPUs
Resultados obtidos

A distribuio anterior envolve a soluo das


equaes de Bloch utilizando o mtodo
numrico Runge-Kutta de 4a ordem (RK4) para
cada velocidade
Para uma faixa muito grande (ou muito precisa)
de velocidades a soluo se torna demorada
Como o problema obviamente paralelizvel, a
soluo do problema usando GPUs prometia
maior eficincia

Soluo das equaes de Bloch para um sistema atmico de dois nveis utilizando GPUs
Resultados obtidos

Teste de execuo em trs processadores


(CPUs) e cinco placas grficas (GPUs) distintas
Comparaes baseadas principalmente em
tempo de execuo

Soluo das equaes de Bloch para um sistema atmico de dois nveis utilizando GPUs
Resultados obtidos

Parmetros constantes: Durao dos pulsos


Tp = 200fs, tempo entre pulsos TR = 10ns,
passo temporal dentro do pulso tp = 5fs e passo
temporal fora do pulso tp = 2,5ps.
Parmetros variveis: Nmero de pulsos (40
a 100), tamanho (normalmente
600 v 600 m/s) e preciso (1 a 103
m/s) da faixa de velocidades.

Soluo das equaes de Bloch para um sistema atmico de dois nveis utilizando GPUs
Resultados obtidos

Hardware testado: CPUs


Processador
Clock (GHZ) L2 (MB) L3 (MB)
Core2Duo E2200
2,2
1
i5 M 480
2,66
1
3
i5 4460
3,2
1
6

Soluo das equaes de Bloch para um sistema atmico de dois nveis utilizando GPUs
Resultados obtidos

Harware testado: GPUs


Modelo

Clock
Mem Ncleos
Grfico Processador (GB)
GT 210
589MHz
1,4GHz
1
16
GT 310 M
?
1,1GHz
1
16
GTX 850 M 876MHz
936MHz
4
640
GTX 560
950MHz
1,9GHz
1
336
GTX 760 Ti 925MHz
1,6GHz
2
1344

Soluo das equaes de Bloch para um sistema atmico de dois nveis utilizando GPUs
Resultados obtidos

O RK4 um algoritmo de complexidade de


tempo linear
A GPU mantm a complexidade do tempo
A diferena no tempo de execuo se d pela
eficincia da paralelizao

Soluo das equaes de Bloch para um sistema atmico de dois nveis utilizando GPUs
Resultados obtidos

Tempo de execuo: CPUs x GPUs

Soluo das equaes de Bloch para um sistema atmico de dois nveis utilizando GPUs
Resultados obtidos

Alguns fatores definem um volume mnimo de


dados para execuo para o qual a GPU se torna
vantajosa sobre a CPU
Principalmente, esses itens so o tempo de
trfego de dados entre sistema host e dispositivo
grfico e a diferena nas frequncias de clock de
CPU e GPU

Soluo das equaes de Bloch para um sistema atmico de dois nveis utilizando GPUs
Resultados obtidos

Tempo de execuo: CPUs x GPUs

Soluo das equaes de Bloch para um sistema atmico de dois nveis utilizando GPUs
Resultados obtidos

Tamanho do problema, no caso o array de


velocidades, para a GPU se tornar vantajosa
Dimenso do array
Hardware
Core2Duo x GT 210
27
i5 M 580 x GT 310 M
28
i5 4460 x GTX 760 Ti
55

Soluo das equaes de Bloch para um sistema atmico de dois nveis utilizando GPUs
Resultados obtidos

Comparamos diferentes configuraes para a


execuo na GPU buscando uma melhor
otimizao
Variamos principalmente a relao
blocos/threads

Soluo das equaes de Bloch para um sistema atmico de dois nveis utilizando GPUs
Resultados obtidos

O tempo de execuo na GPU constante para


algumas faixas de tamanho do array de
velocidades
Isso claramente visvel em grficos em forma
de escada do tempo de execuo em funo do
nmero de threads
O tempo constante em funo do nmero de
unidades de cache utilizadas, e cresce conforme
novas unidades so necessrias

Soluo das equaes de Bloch para um sistema atmico de dois nveis utilizando GPUs
Resultados obtidos

O tempo constante quando o nmero de unidades


de cache usadas constante
G

l s o

l o

c k

2 2 0 0

1 8 0 0
1 6 0 0
1 4 0 0
1 2 0 0
1 0 0 0
8 0 0

x e

c u

( m

s )

2 0 0 0

6 0 0
0

1 2 8

2 5 6
N

3 8 4

r o

5 1 2
d

t h

6 4 0
r e

7 6 8

8 9 6

Soluo das equaes de Bloch para um sistema atmico de dois nveis utilizando GPUs
Resultados obtidos

A relao blocos threads tambm tem um


efeito direto e visvel no tempo de execuo
O uso de muitas threades por bloco ou de
muitos blocos com poucas threads
notoriamente ineficiente

Soluo das equaes de Bloch para um sistema atmico de dois nveis utilizando GPUs
Resultados obtidos

Tempo de execuo em funo do nmero de threads


por bloco

Soluo das equaes de Bloch para um sistema atmico de dois nveis utilizando GPUs
Resultados obtidos

x e

c u

( m

s )

Tempo de execuo em funo do nmero de threads


por bloco

2 6 0
2 4 0
2 2 0
2 0 0
1 8 0
1 6 0
1 4 0
1 2 0
1 0 0
8 0
6 0
4 0

l s o

l s o

t h

r e

t h

r e

0
0
0
0
0
0
0
0
0
0
0
0
0

2 5 6

5 1 2
N

r o

7 6 8
t h

r e

1 0 2 4

Soluo das equaes de Bloch para um sistema atmico de dois nveis utilizando GPUs
Resultados obtidos

H uma faixa onde a relao blocos threads


de eficincia semelhante
A tendncia de subida entre Nb 32 e Nb 512
no se confirma integralmente, com mximos
locais distintos
seguro dizer que entre o desempenho se
mantm prximo de uma faixa tima entre Nb
64 e Nb 256

Soluo das equaes de Bloch para um sistema atmico de dois nveis utilizando GPUs
Resultados obtidos

O ganho com o uso de uma GPU superior para


problemas maiores
Para tanto, utilizamos uma faixa de 106
velocidades
Numa comparao GTX 760 Ti i5 4460, a
GPU resolveu o problema 980 vezes mais rpido

Soluo das equaes de Bloch para um sistema atmico de dois nveis utilizando GPUs
Resultados obtidos

Tempo de execuo para uma faixa de 106


velocidades

Soluo das equaes de Bloch para um sistema atmico de dois nveis utilizando GPUs
Resultados obtidos

A populao fracionria tem uma diferena


relativa mxima de 2,2 105 nas solues na
GPU e na CPU.
Tal fato decorre de diferentes implementaes de
funes matemticas como a exponencial nas
bibliotecas padro C e CUDA C

Soluo das equaes de Bloch para um sistema atmico de dois nveis utilizando GPUs
Publicaes

Contedo
1 Apresentao terica do problema
2 Resultados obtidos
3 Publicaes
4 Concluses

Soluo das equaes de Bloch para um sistema atmico de dois nveis utilizando GPUs
Publicaes

Resumo baseado no trabalho aceito para


apresentao no Encontro de Fsica de 2016 em
Natal
Apresentao na forma de banner sob o ttulo
Density matrix calculations o Doppler
broadened atomic systems implemented
on GPUs

Soluo das equaes de Bloch para um sistema atmico de dois nveis utilizando GPUs
Concluses

Contedo
1 Apresentao terica do problema
2 Resultados obtidos
3 Publicaes
4 Concluses

Soluo das equaes de Bloch para um sistema atmico de dois nveis utilizando GPUs
Concluses

A GPU se destaca em ganho de tempo para o


problema em estudo mesmo com o uso de placas
de entrada e baixo custo em comparao com
CPUs de desempenho intermedirio
O uso cuidadoso do cache e da configurao de
grids e threads tem relao direta com o
desempenho e com o ganho de tempo em
relao CPU
Diferenas na implementao de funes
matemticas das bibliotecas CUDA C e Padro
C podem dificultar a comparao em problemas
que demandam maior preciso ou acurcia

Soluo das equaes de Bloch para um sistema atmico de dois nveis utilizando GPUs
Concluses

Possveis trabalhos posteriores:


Comparao cuidadosa com multithreading na
CPU
Uso de mltiplas GPUs, distribudas na mesma
mquina ou em rede
Soluo das equaes de Bloch em problemas
mais realistas

Você também pode gostar