m etodo de leapfrog en el problema de n cuerpossbruzzone/flexpaper_1.4.2_flash/defensa.pdf ·...

85
Introducci´on Discretizando Derivadas DescribiendoelC´odigo Resultados OpenMP Desempe˜ no en OpenMP Trabajos a Futuro Conclusiones etodo de Leapfrog en el Problema de N Cuerpos Sebasti´ an Bruzzone 30 de mayo de 2011 Sebasti´ an Bruzzone Curso F´ ısica Computacional 2010

Upload: hoangcong

Post on 11-Nov-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

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