View
225
Download
0
Category
Preview:
Citation preview
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
Metodo de Leapfrog en el Problema de NCuerpos
Sebastian Bruzzone
30 de mayo de 2011
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
Introduccion
Dos son compania, tres es multitud, diez ya es relajo ...
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
Introduccion
Problema de N cuerpos para N ≥ 3 no presenta solucionanalıtica sin restricciones en el mismo.
De gran interes, se buscaron soluciones a casos particularesy formas de replantear el problema, en primera instanciapara resolver la dinamica del Sistema Solar, primerostrabajos de Newton, Gauss, Jacoby, Halley, et al.
A partir de mediados del siglo XX, se comienza areplantear el problema con el advenimiento de las primerasmaquinas de calculo. (Erik Holmberg, 1941)
En 1963 primer trabajo publicado ’Dynamical Evolution ofClusters of Galaxiers’ por Aarseth empleando un codigo deN cuerpos en un computador para N=25 a N=100 cuerpos.
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
Motivacion
Desarrollar un codigo para representar un fenomeno ya depor sı muy interesante
Verificar resultados presentes en la literatura y sucomparacion con codigos de otros autores.
Experimentar con las posibilidades ofrecidas en losprocesadores Intel Corei7 mediante las directivas deOpenMP.
Tratar realizar un codigo explıcito, donde no se tengadependencia con subrutinas o funciones establecidas porotros autores
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
Algunos Criterios
Dada la necesidad de replantear el problema en un dominiodiscreto, es necesario reformular el concepto de cocienteincremental, en el caso de una funcion unidimensional tenemosal menos tres criterios posibles.
dx
dt=
xi+1 − xih
≡ x′FT (1)
dx
dt=
xi − xi−1
h≡ x′BT (2)
dx
dt=
xi+1 − xi−1
2h≡ x′CT (3)
donde definimos, a primer orden x′FT o Forward Time, x′BT ,Backward Time y x′CT como Center Time
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
Discretizando Derivadas
Tales criterios aparecen como aproximaciones a primerorden mediante un desarrollo de Taylor en la funcion x(t),x(t) ≈ x(ti) + (t− ti)(dx/dt)ti + · · · .Ası podemos considerar que estas aproximaciones estandefiniendo en un punto de partida un error segun O(h) enel abordaje del problema segun dichos criterios.
Podemos hablar de error de truncamiento y error de
redondeo.
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
Metodos de Integracion: Verlet
Criterio centrado en el tiempo para la derivada segunda de laposicion como funcion del tiempo. Se aplica el criterio a lasegunda ley de Newton, ası, dicho desarrollo se iguala a laaceleracion evaluada en el punto medio entre dos puntoscontiguos, xn−1 y xn.
∆2~xn∆t2
=~xn+1−~xn
∆t − ~xn−~xn−1
∆t
∆t
=~xn+1 − 2~xn + ~xn−1
∆t2(4)
= ~an = A(~xn)
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
Metodos de Integracion: Verlet
De esta manera obtenemos:
~xn+1 = 2~xn − ~xn−1 + ~an ∆t2, ~an = A(~xn) (5)
Considerando ahora evaluar la posicion en dos tiempos x±∆t:
~x(t+ ∆t) = ~x(t) + ~v(t)∆t+~a(t)∆t2
2+~b(t)∆t3
6+O(∆t4)
~x(t−∆t) = ~x(t)− ~v(t)∆t+~a(t)∆t2
2−~b(t)∆t3
6+O(∆t4)
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
Metodos de Integracion: Verlet
sumando entonces estos desarrollos encontramos 6
~x(t+ ∆t) = 2~x(t)− ~x(t−∆t) + ~a(t)∆t2 +O(∆t4) (6)
vemos que el metodo Verlet presenta un orden de aproximacionmayor que la integracion por desarrollos de Taylor. En 6estamos considerando la aceleracion proveniente de la solucionreal, mientras que en 5 ~an = A(~xn) corresponde a la aceleracionen el punto central de la iteracion.
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
Metodos de Integracion: Verlet
Metodo Verlet, no puede comenzar por sı mismo. Primer pason = 1, t = t1 = ∆t, para obtener x2 es necesario conocer x1.Esto sugiere un problema y puede resolverse aplicando unaaproximacion para la determinacion de tal posicion. Estaaproximacion involucra realizar un desarrollo de Taylor desegundo orden, desde la posicion inicial x0 hasta esa nuevaposicion como x1 = x0 + v0∆t+ a0 (∆t)2 /2, dado queconocemos v0 y a0.
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
Metodos de Integracion: Leapfrog y Velocidad Verlet
Posiciones y velocidades evaluadas en instantes equiespaciados,pero calculados de manera alternada. Normalmente posicionesen instantes enteros mientras que velocidades en instantes semienteros. Separacion o paso en dominio temporal h.
Figura: Ilustracion del metodo leapfrog. Los valores de velocidad yposicion son calculados de manera alternada
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
Metodos de Integracion: Leapfrog y Velocidad Verlet
Comenzamos por considerar el caso unidimensional para laecuacion de movimiento
dx
dt= v (7)
dv
dt= F (x) = (−dU
dx) (8)
Euler aproximarıa la ecuacion 7 segun x1 = x0 + v0h con h elpaso en el tiempo. Por el contrario, consideramos evaluar lavelocidad en un paso intermedio segun
x1 = x0 + v1/2h (9)
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
Metodos de Integracion: Leapfrog y Velocidad Verlet
La aproximacion en la ecuacion para la velocidad en 8 por elmismo metodo del punto medio serıa
v3/2 = v1/2 + F (x1)h (10)
dado que conocemos el valor x1. Ası, es posible obtener x2
segun x2 = x1 + v3/2h y avanzar en la posicion, para obtener unnuevo valor de F (x2) y ası inferir un nuevo valor para lavelocidad v5/2 = v3/2 + F (x2)h, como se observa en la Figura 1.
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
Metodos de Integracion: Leapfrog y Velocidad Verlet
Las ecuaciones de este metodo podemos escribirlas entoncessegun 11.
xn+1 = xn + vn+1/2h (11)
vn+1/2 = vn−1/2 + a(xn)h
El interes en el metodo leapfrog yace en la simplicidad delcodigo y la conservacion de cantidades fısicas de interes enlos sistemas, como son la energıa y momento angular
unicos de orden 2 que presentan la conservacion de lasmencionadas cantidades fısicas, citando por ejemplo elmetodo de Runge-Kutta de orden 2 que diverge en energıa.
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
Metodos de Integracion: Leapfrog y Velocidad Verlet
Metodo que no puede arrancar por si solo, falta de pasoinicial en velocidadesSe acostumbra en esa situacion realizar un paso segunEuler y computar la primera velocidad segunv1/2 = v0 + a(x0)h2 lo cual agrega un error de orden menor,como el esperado en Euler, pero dado que incursionamos enese metodo solo una vez, no presenta problemas en elmomento de la integracionDebemos tener en cuenta que al momento del computo decantidades como energıa o momento angular, se precisaevaluar las posiciones y velocidades en un mismo instante,por lo tanto es necesario correr los valores de posicion ovelocidad para que esten evaluados en un mismo tiempo.
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
Metodos de Integracion: Leapfrog y Velocidad Verlet
Dado un paso n y una velocidad en vn+1/2, retrasar lavelocidad con los datos conocidos de aceleracion y posicionen el paso n, como vn = vn+1/2 − a(xn)dt/2.
Considerar una variacion del metodo Verlet conocida comoVelocidad Verlet. En este metodo, velocidades y posicionespueden ser conocidas a iguales intervalos de tiempo segun12
vn+1/2 = vn +1
2ha(xn)
xn+1 = xn + hvn+1/2 (12)
vn+1 = vn+1/2 +1
2ha(xn+1)
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
Metodos de Integracion: Leapfrog y Velocidad Verlet
Beneficios del metodo
Metodo simple para resolucion de sistemas conservativos
Preservacion de la energıa o momento angular, veremos queestos oscilan entorno al valor real proveniente de la solucionanalıtica acotados por un error global de orden 2 paranuestros metodos.
Reversibilidad Temporal
Metodo eficiente de orden 2
Descripcion cualitativa del comportamiento del sistema deestudio, util como primera aproximacion al problema.
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
INICIO y preparacion
Las posiciones y velocidades son avanzadas mediante el usode un paso dt y un tiempo de integracion tiempo
introducido por el usuario al comienzo de la integracion.
El paso dt no es modificable luego de esta instancia. Elproblema esta planteado en unidades de masas solares,UAs y dıas solares medios. El tiempo de integracion totalen anos, NT esta definido comoNT=nint(tiempo*365.25/dt) donde dt es el paso en dıasy tiempo es la duracion deseada por el usuario en anos.
Las subrutinas del codigo pueden ordenarse segun suaparicion, como INICIO, ENERGIA, FUERZA,ANGULAR y ORB.
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
INICIO y preparacion
Encargada de definir posiciones y velocidades iniciales,ası como tambien las masas del sistema. Las masas,posiciones y velocidades iniciales provienen del servicio JPLHorizons disponible en la web. Se toma como fecha inicialla fecha 2455659.50 o 2011-4-08T00:00:00. Ası la tareadefine estas posiciones, velocidades y masas en las variablesX(3,10),V(3,10) y M(10).Una vez establecidos los valores se procede a posicionar loscuerpos en un sistema baricentrico. Velocidades yposiciones baricentricas son calculadas respecto a laposicion y velocidad del baricentro rcen(3) y vcen(3)
respectivamente. Pos. y vel.vuelven a ser guardadas comoX(3,10) y V(3,10).
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
INICIO y preparacion
Se utiliza la subrutina ENERGIA para estimar la energıainicial del sistema. Ası, habiendo seleccionado la opcionpara el computo de la energıa total del sistema, se reportaen pantalla en valor (ETOT-ETOTINICIAL)/ETOTINICIAL
Valor guardado en el archivo gia.dat
FUERZA se emplea a continuacion para obtener laaceleracion a(x0) en la posicion inicial x0, en cadacoordenada y ası realizar una aproximacion con el metodode Euler a medio paso dt.
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
INICIO y preparacion
sintaxis para la subrutina es FUERZA(X,M,A,j), ası lasubrutina toma posiciones y un cierto ındice j y devuelve elvector aceleracion (A(1),A(2),A(3)) que siente el cuerpoj debido a los demas objetos. Ası, ya tenemos definidos v1/2
y x0, valores necesarios para comenzar con la integracion.
Con este llamado a la subrutina FUERZA tenemos definidomediante Euler el primer paso en velocidades o v1/2.
Con esta velocidad ya es posible conocer x1 y dar comienzoası a la integracion por el metodo Leapfrog
Ver Codigo.
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
FUERZA y loop principal
Entramos al loop principal en DO k=1,NT, preparando yalas primeras posiciones X(3, 10) gracias a que yaconocemos V (3, 10) por el primer paso en Euler. Con esto,tenemos x1 y podemos ya calcular la aceleracion en estasnuevas posiciones X(3, 10).
Esta subrutina se encarga de computar las aceleracionesque experimenta cada cuerpo j debido a la presencia de losn− 1 cuerpos restantes. Anidada dentro de un loop DO, encada ejecucion devuelve el vector aceleracion(A(1),A(2),A(3)) y se utilizan estos resultados para elcalculo de la siguiente velocidad via Leapfrog. La subrutinapuede dividirse en dos partes
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
FUERZA y loop principal
Calculo del modulo distancia entre el cuerpo j y los demasn− 1 cuerpos como rjn,∀j 6= n.
Calculo de las aceleraciones para cada cuerpo j
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
FUERZA y loop principal
Ambos apartados se encuentran dentro de un loop DO n=1,10
en ındices n, donde las operaciones de ambos son realizadasunicamente si j.ne.n. Esto evita claro modulos de distancianulos. El calculo de las aceleraciones con el siguiente codigo
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
FUERZA y loop principal
Ası, cada componente de la aceleracion A realiza la suma en losındices n 6= j que reproduce la ecuacion
rj =
N∑n=1
k2Mn(rj − rn)
r3nj
con n 6= j (13)
k2 es la constante de gravitacion universal en unidades demasas solares, UA y dias solares medios. Esta constante esconocida como el cuadrado de la constante de Gauss
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
FUERZA y loop principal
En resumen FUERZA(X,A,M,j) toma posiciones X(3,10), masasM(10) y un ındice j y devuelve un vector aceleracion(A(1),A(2),A(3)) para cada planeta j dentro de un loop DO
j=1,10. Notar que cada vez que la subrutina es llamada, losvalores de A son reescritos por lo tanto la manera de poderutilizarlos en considerar dentro de este loop los computos de lasnuevas velocidades mediante Leapfrog y guardalas en V(3,10)
en cada iteracion en j (ver proxima slide)
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
FUERZA y loop principal
Figura: Detalle de codigo empleando la salida de FUERZA
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
FUERZA y loop principal
Al avanzar en el loop DO exterior en k, vemos la necesidad deir guardando los datos para su posterior analisis. Esto lologramos con sentencias logicas cada cierto intervalo de tiempo.Ası, por ejemplo, podemos ir salvando los valores X(3,10) yV(3,10) cada medio ano o el intervalo de tiempo que seconsidere necesario. Estas sentencias logicas obedecenif(k.eq.(z1*(nint(182.6/dt))) ) then lo que respeta una escrituracada aproximadamente medio ano. Por defecto, son salvadas lasposiciones X(3,10) de todos los objetos en el archivo exit.dat,primera salida del programa.
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
FUERZA y loop principal
Se precisa correr las velocidades para poder salvar cantidadesque dependan de la velocidad, evaluada en el mismo instanteque las posiciones. Velocidades corridas como VV(3,10). Sesalvan V(3,10) para proxima entrada al loop k
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
FUERZA y loop principal
Al tener las velocidades VV(3,10) podemos obtener cantidadescomo energıa, momento angular y elementos orbitales. Siguiendola misma logica para la escritura de datos cada medio ano,podemos utilizar las subrutinas ENERGIA, ANGULAR y ORB paraobtener estos datos. En resumen, el loop DO k=1,NT opera lasubrutina FUERZA en cada paso k mientras que cada medio ano,opera las demas subrutinas, creando a su vez las velocidadesVV(3,10) necesarias para las demas subrutinas. La extension deeste loop exterior es hasta el total del tiempo de integracion.
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
ENERGIA,ANGULAR,ORB
ENERGIA: Calculo de las cantidades
Ecin =
N∑i=1
Miv2i
2(14)
Epot =
n−1∑i=1
N∑j=i+1
k2MiMj
rij
empleando X(3,10) y VV(3,10) con N = 10.Ası Etotal = Ecin + Epot. Sintaxis:ENERGIA(X,VV,M,ETOT,Ecin,Epot) con salida al archivogia.dat con columnask,ETOT,(ETOT-ETOTINICIAL)/ETOTINICIAL, Ecin,Epot
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
ENERGIA,ANGULAR,ORB
Figura: Detalle de codigo de la subrutina ENERGIA. Calculo de energıacinetica y potencial.
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
ENERGIA,ANGULAR,ORB
ANGULAR opera realizando ~hj = ~rj ×Mj ~vj para cada j y luegosumado en todo los N cuerpos. Sintaxis,ANGULAR(X,VV,M,htot), con entrada X(3,10), VV(3,10),M(10) y salida del escalar htot o modulo del vector momentoangular total del sistema. Se guardan k y htot en el archivoh.dat para su posterior analisis.
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
ENERGIA,ANGULAR,ORB
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
ENERGIA,ANGULAR,ORB
ORB esta encargada del computo de los elementos orbitalessemieje aj , excentricidad ej , e inclinacion ij para cada planetaj. Estos elementos son obtenidos al considerar las posiciones yvelocidades respecto al Sol, forma de describir una orbita en elproblema de 2 cuerpos.
Se computan las posiciones respecto al Sol en la variabler(8) para cada planeta o rj .Se computan el cuadrado de las velocidades de cadaplaneta respecto a las velocidades del Sol en V2(8) o v2
j
Se estima el semieje aj para el planeta j como
aj =
(2
rj−
v2j
k2(1 +Mj)
)−1
∀j = 1, . . . 9 (15)
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
ENERGIA,ANGULAR,ORB
Se obtiene el vector momento angular por unidad de masapara cada planeta para obtener ası la excentricidad en cadacaso segun 16
exj =vyj+1hzj − vzj+1hyj
k2(1,0 +Mj)− xj+1
rj
eyj =vzj+1hxj − vxj+1hzj
k2(1,0 +Mj)− yj+1
rj(16)
ezj =vxj+1hyj − vyj+1hxj
k2(1,0 +Mj)− zj+1
rj
se estima ej ≡√ex2
j + ey2j + ez2
j como la excentricidad del
planeta j.
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
ENERGIA,ANGULAR,ORB
Las inclinaciones para cada planeta j se estiman segun
ij = arc cos
hzj√hx2
j + hy2j + hz2
j
(17)
la subrutina ORB(X,VV,M,APla,EPla, IPla) toma deentradas X(3,10), VV(3,10), M(10) y otorga salidasAPla(9),EPla(9) e IPla(9) que son guardados en el losarchivos Merc.dat,Venus.dat, Tierra.dat, Marte.dat,
Jup.dat, Sat.dat, Ur.dat y Nep.dat con el formatok,APla, EPla, Ipla en cada caso.
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
ENERGIA,ANGULAR,ORB
Figura: Detalle de codigo de subrutina ORB. Computo de e e i.
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
Resumen de Operacion
El usuario especifica un paso para la integracion ası comotambien de un tiempo total de simulacion para el sistema.Selecciona el computo de Energıa del sistema junto con elmomento angular del sistema o los elementos orbitales a, ee i.El paso seleccionado, la cantidad de pasos, y las seleccionesanteriores se muestran en pantalla al comienzo de laintegracion.Archivos de corridas anteriores se borran automaticamenteal comenzar una nueva integracion.En cada paso de escritura, se devuelve en pantalla,informacion sobre la salida, ası tambien como lasvariaciones en energıa como se explico anteriormente
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
Resumen de Operacion
computo del baricentro del sistema y su velocidad, rcen(3)y vcen(3)
Se inicializa las velocidades para el metodo de Leapfrogsegun un paso en Eulerloop DO k=1,...NT principal del programa donde seemplea una logica para salvar X(3,10),Etot, Error
Relativo en Energia,Ecin, Epot, htot,
APla(9),EPla(9),IPla(9) en archivos exit.dat, salidapor defecto de posiciones X(3,10), gia.dat conteniendoenergıa total, cinetica y potencial del sistema,Merc.dat,Venus.dat,... con semiejes, excentricidades einclinaciones para cada planeta y h.dat que contiene elmomento angular total del sistema.
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
Resultados
Figura: Sistema Solar Interior, Sol, Mercurio, Venus, Tierra y Marte. Efecto por paso deescritura cada medio ano visible en la orbita terrestre. Integracion 300 anos
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
Resultados
Figura: Sistema Solar Exterior. Jupiter, Saturno, Urano, Neptuno yPluton. Integracion: 300 anos.
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
Resultados
Figura: Posicion del Sol en el sistema baricentrico durante 500 anosde simulacion a paso dt = 0,005
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
Resultados
Figura: Energıa total del sistema para un paso dt = 0,005 en 500 anosde simulacion
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
Resultados
Figura: Evolucion del momento angular del sistema. Aunque noestrictamente visible, sugiere la oscilacion entorno a un valor medio
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
Resultados
Estudiamos el comportamiento de los errores relativos en laenergıa, como fue definido en la seccion anterior, en funcion delos pasos utilizados. Probemos con los siguientes valores para elpaso dt=(1.0,0.5,0.3,0.2,0.1,0.05,0.01,0.005).Mantenemos las mismas condiciones iniciales y vemos el errorrelativo promedio en energıas para simulaciones en 500 anos. Enel Cuadro 1 presentamos algunos resultados.
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
Resultados
Cuadro: Evolucion del error relativo en energıa como funcion del pasode integracion
Paso Error Relativo
1 -2.81333e-05
0.5 -7.02201e-06
0.3 -2.53495e-06
0.2 -1.09050e-06
0.1 -2.64227e-07
0.05 -6.18280e-08
0.01 -1.11778e-09
0.005 1.44153e-10
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
Resultados
Figura: Ajuste en el grafico de err como funcion de dt. Notar la bondad de ajuste de orden
2 en el paso dt. Ajuste: err(dt) = 2,8178 × 10−5dt2 + 3,663 × 10−8dt + 6,764 × 10−9 siendoerr el error relativo en energıas y dt el paso en cada simulacion.
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
Resultados
Comparemos el desempeno del codigo con algun integradorde la literatura. Elegimos el integrador Evorb para este finy compararemos los elementos orbitales obtenidos conambos programas.
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
Resultados: Venus
Figura: Semiejes y excentricidades estimados por ambos integradoresen un lapso de 1000 anos
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
Resultados: Tierra
Figura: Semiejes y excentricidades estimados por ambos integradoresen un lapso de 1000 anos
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
Resultados: Jupiter
Figura: Semiejes y excentricidades estimados por ambos integradoresen un lapso de 1000 anos
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
Resultados: Saturno
Figura: Semiejes y excentricidades estimados por ambos integradoresen un lapso de 1000 anos
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
Resultados: Urano
Figura: Semiejes y excentricidades estimados por ambos integradoresen un lapso de 1000 anos
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
Resultados: Neptuno
Figura: Semiejes y excentricidades estimados por ambos integradoresen un lapso de 1000 anos
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
Resultados: Pluton
Figura: Conmensurabilidad de movimientos medios para Neptuno y Pluton. Se observa laresonancia 2:3 entre estos cuerpos. Notar la duracion de aproximadamente 500 anos de cadaciclo.
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
Resultados: Resumen
No es del todo correcto comparar resultados de ambosintegradores debido a su diferente naturaleza. Falta de masintegradores para comparar resultados, en especial, conalguno que ofrezca una mayor similitud con el codigodesarrollado
Tiempos de integracion en LFN10 aproximadamente eldoble de Evorb para igual paso.
Apreciable y notoria diferencia en los elementos orbitalespara los planetas terrestres. Mayor dispersion en a y e. Nose presenta i debido a una distinta resolucion en inclinacionentre ambos integradores
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
Resultados: Resumen
Las diferencias merman a medida que se considera losplanetas Jovianos. Comienza a notarse una menordispersion en los valores de a y e en LFN10.
A partir de Saturno, no hay una apreciable diferencia entrelos valores de a de ambos integradores y se reporta unamenor amplitud en la oscilacion de la excentricidad enLFN10.
¿Error en ORB en la determinacion de elementos orbitales?
¿Error en pasaje de coord. baricentricas a helicentricas?
¿Reduccion del paso en LFN10 para mejorar resultados?
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
LFN10-OMP
OpenMP es una interfase de programacion para aplicaciones dememoria compartida o API. En vez de tratarse de un estandaroficial, cumple la veces de acuerdo entre los miembros delArchitecture Review Board, quienes muestran interes en unacercamiento a la programacion en paralelo para memoriascompartidas que ofrezca un entorno amigable para el usuario,eficiente y portatil. En el 2000, la lista de miembros deOpenMP ARB estaba compuesta por las siguientes companıas
Departamento de Energıa de los EE.UU.
Compaq Computer Corp.
Fujitsu
Hewlett-Packard Company
Intel Corp.
International Business Machines
Silicon Graphics Incorporate
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
Directivas en OpenMP
Permiten al usuario informar al compilador cualesinstrucciones ejecutar en paralelo y como distribuirlas entrelos threads disponibles que ejecutaran el codigo.
Una directiva en OpenMP es una instruccion en unformato especial que es solo interpretada por compiladorescon OpenMP unicamente. El API no posee gran cantidadde directivas pero ofrece una gran versatilidad para cubriruna vasta gama de necesidades.
Las directivas son llamadas desde el compilador usado,C++ o Fortran.
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
Directivas en OpenMP
La directivas son especificadas como un comentario,seguido del sımbolo peso ($) y el nombre de la directiva,comenzando siempre con OMP, es decir !$OMP
Un region en paralelo comprende un bloque de codigo queva a ser ejecutado por multiples threads corriendo enparalelo.
Dos directivas son necesarias definiendo ası el llamado parde directivas !$OMP PARALLEL / !$OMP END PARALLEL.
La compilacion se logra con el comando gfortran
-fopenmp programa.f90 -o programa
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
Directivas en OpenMP
Algunas de las disponibles en !$OMP PARALLEL son lassiguientes:
PRIVATE(list)
SHARED(list)
DEFAULT(PRIVATE | SHARED | NONE)
REDUCTION(operator: list)
IF(scalar logical expresion)
NUM THREADS(scalar integer expresion )
Se especifican como !$OMP PARALLEL clausula 1clausula 2.
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
Directivas en OpenMP
Las directivas empleadas para la distribucion del trabajo entrelos threads fueron las siguientes
!$OMP DO Reparte las operaciones en un loop DO entre losthreads disponibles
!$OMP SECTIONS Reparte las operaciones en los diferentesthreads siendo el usuario en encargado de especificarque tarea sera realizada por thread, siendo esta tareaejecutada un sola vez en cada thread
!$OMP WORKSHARE Reparte de forma automatica el bloquede codigo entre los threads. La forma de asignacion deltrabajo es dependiente del compilador utilizado.
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
Variables de Entorno en OpenMP
OMP SET NUM THREADS Define la cantidad de threadsdisponibles para la ejecucion del codigo
OMP GET THREAD NUM Devuelve en numero de determinadothread
OMP SET NESTED Define si la propiedad de paralelizacionanidada esta activada o no
OMP GET NESTED Devuelve el estado de la paralelizacionanidada
OMP GET NUM PROCS Devuelve la cantidad de procesadoresdisponibles
OMP GET WTIME Una funcion portatil que devuelve eltiempo de computo en una region en paralelo.
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
Utilizando OpenMP
Figura: Detalle de codigo con directivas OpenMP y seteo de variablesde entorno
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
!$OMP DO REDUCTION
Figura: Detalle de codigo con !$OMP DO REDUCTION
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
!$OMP DO
Figura: Detalle de codigo con !$OMP DO
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
!$OMP SECTIONS
Figura: Detalle de codigo con !$OMP SECTIONS
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
!$OMP WORKSHARE
Figura: Detalle de codigo con !$OMP WORKSHARE
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
Desempeno de LFN10-OMP
Luego de varias pruebas sorprendio a primera instancia elpobre desempeno de LFN10-OMP en terminos del tiempotomado en realizar una simulacion
Se estudia el tiempo empleado mediante OMP GET WTIME()
en funcion de la cantidad de threads utilizados para unpaso fijo dt = 0,001dıa.
Integracion por medio ano, requiriendo 182625 pasos paracompletar una integracion.
Se aisla del codigo todas las directivas de OpenMP salvolas directivas en FUERZA
Region en paralelo embebida en loop DO k=1,...NT yloop DO j=1...10
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
Desempeno de LFN10-OMP
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
Desempeno de LFN10-OMP
Figura: Dependencia del tiempo de ejecucion en segundos de LFN10-OMP en funcion de lacantidad de threads empleados. Se utilizo un paso dt = 0,001dıas durante 0.5 anos deintegracion. Se utiliza la funcion OMP GET WTIME
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
Desempeno de LFN10-OMP
¿Por que no es mas rapida la ejecucion del codigo enparalelo comparado con el codigo serial?
¿ Que es lo que sucede?
Fenomeno de overhead. El bloque de codigo paralelizadoesta dentro de una region de loop DO anidados ejecutadosen forma serial.
Ası, cada vez que se toma un valor de k, se toman 10
valores para el computo de FUERZA, o llamadas a !$OMP
PARALLEL/!$OMP END PARALLEL para crear y destruirregiones de ejecucion en paralelo
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
Desempeno de LFN10-OMP
Lo anterior ocurre 10 veces por paso, y en nuestrasimulacion, ocurre 10× 182625 veces.
Genera una demora que se va acumulando en cadaejecucion de loop DO k=1,...182625.
Consideramos
σ ≡ tp − ts10× 182625
(18)
σ = 3,2893× 10−6s para n = 8 threads.
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
Desempeno de FLN10-OMP
Figura: Fenomeno de overhead en las directivas de OpenMP. Tiempoen microsegundos en funcion de la cantidad de threads.
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
Recetas Sugeridas
Paralelizar loop DO mas exteriores para vencer el fenomenode overhead
Minimizar la cantidad de regiones en paralelo, abarcar lamayor cantidad de codigo en pocas regiones !$OMP
PARALLEL/!$OMP END PARALLEL
Evitar el uso de !$OMP DO REDUCTION, directiva ’cara’ enfuncion de su alto overhead
Utilizar con cuidado NOWAIT en la sincronizacion
Verificar que no ocurre el fenomeno de race condition en losdatos, especialmente cuando se usa !$OMP DO REDUCTION
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
Para Seguir...
Utilizar metodos mas sofisticados para integrar el problemade N cuerpos
Mejorar y superar la condicion de overhead
Implementar compiladores con paralelizacion guiada, comoel Intel Parallel Studio XE en fortran
Implementar compiladores en C++, donde la paralelizaciones inclusive mas asistida, como en el Intel Parallel StudioXE para Microsoft Visual Studio 2010.
Implementacion de MPI, Message Protocol Interface
Programacion con GPU
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
Conclusiones
Codigo simple para reproducir la evolucion dinamica delSistema Solar en un referencial baricentrico.
Basado en el metodo de Leapfrog, se realiza elcalentamiento de las velocidades mediante el metodo deEuler y como vimos, no afecta al error global del sistema.
Cada vez que se precisa grabar una cantidad dependientede la velocidad, se realiza un corrimiento en dichasvelocidades para obtener ası posiciones y velocidadesevaluadas en el mismo instante de tiempo.
El programa, basado en el metodo de Leapfrog, verfica queel error en la energıa es del orden del cuadrado del paso dt,o bien err = O(dt2).
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
Conclusiones
Carece de un paso variable, indispensable para un estudiodetallado de un sistema. Evadiendo los encuentroscercanos, el programa reproduce cualitativamente elcomportamiento del sistema.
Se verifica la oscilacion de la energıa entorno a un valormedio para todos los pasos empleados. Propiedadcaracterıstica del metodo Leapfrog y de gran importanciaya que permite conservar dicha cantidad empleando unmetodo de orden 2.
Se infiere tambien la conservacion (oscilacion) del momentoangular del sistema
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
Conclusiones
El movimiento del Sol entorno al baricentro del Sistemaverifica los resultados de la literatura, el baricentro seencuentra en el interior del Sol, cercano a su fotosfera.
El programa carece de eficiencia al compararse con otrosintegradores, como en el caso del Evorb. Presentavariaciones con amplitudes mayores en energıa, donde loselementos orbitales de los cuerpos mas cercanos al Sol.
a partir de Saturno, los elementos orbitales, en especial laexcentricidad, presenta una menor amplitud de oscilacioncomparada con la provista por Evorb.
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
Conclusiones
Basados en el ıtem anterior, se busca estudiar la evolucionorbital de Pluton. Con un paso de dt = 1,0dias, se analizael sistema Neptuno-Pluton, encontrando la esperadaconmensurabilidad entre los movimientos medios de ambos.Se verifica la presencia de Pluton en la 2:3 con Neptuno yla duracion aproximada de 500 anos del ciclo.
El codigo es facilmente modificable para incorporar mascuerpos o cambiar el caracter del sistema a estudio. Unsistema estelar es perfectamente reproducible por elprograma. Se deben tomar las precauciones necesarias paraasegurar la conservacion de la energıa y momento angulardel sistema.
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
Conclusiones
Introducimos nociones basicas sobre las directivas deOpenMP, su ejecucion, configurar las variables del entornoası como tambien su uso en LFN10-OMP.
Vemos la necesidad de utilizar compiladores con asistenciapara la creacion de codigo en paralelo, como por ejemplo elIntel Parallel Studio XE.
Verificamos la presencia del fenomeno de overhead enLFN10-OMP lo que plantea un problema de mayor calado.
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
Referencias
Aarseth, J., 1963, ’ Dynamical evolution of clusters ofgalaxies’, MNRAS
Chapman B., Van der Pas R., Jost G., Using OPenMP,Portable Shared Memory Parallel Programming , 2008,The MIT Press, Cambridge, M.
S. A. Teukolsky, W. T. Vetterling and B. P. Flannery,Numerical Recipes, 2nd Ed., Vol. 1 (Cambridge Univ.Press, 1992).
Rubido N.,Difusion Numerica en Soluciones 1D NoEstacionarias, notas del Curso Modelacion Numericas delas Ecuaciones de Navier-Stokes, 2010
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
Referencias
A. Brunini, T. Gallardo, ’Integrador SimpleticoEvorb’,http://www.fisica.edu.uy/~gallardo/evorb.html
OpenMP:An API for multi-platform shared-memoryparallel programming in C/C++ and Fortran,http://www.openmp.org/
Hermanns, M. Parallel Programming in Fortran 95 usingOpenMP, http://www.fisica.edu.uy/~sbruzzone/OMP/F95_OpenMPv1_v2.pdf
Sebastian Bruzzone Curso Fısica Computacional 2010
IntroduccionDiscretizando DerivadasDescribiendo el Codigo
ResultadosOpenMP
Desempeno en OpenMPTrabajos a Futuro
Conclusiones
... Pero la Cosa Sigue
¿ Que sucede con el calentamiento? Las orbitas y elementosorbitales se ven afectados por este primer paso?
¿ Otra forma de calentamiento? ¿ Que es eso del programaE?
¿ Que sucede con el paso de integracion y los elementosorbitales? ¿ Donde defino un ’buen’ paso?
¿ Hay problemas con ORB ?
¿ El movimiento del Sol sufre del cambio del tamano de lospasos?
Sebastian Bruzzone Curso Fısica Computacional 2010
Recommended