SlideShare uma empresa Scribd logo
1 de 31
Baixar para ler offline
Programación y Computación
         paralela (4)
  Integración, Monte Carlo,
         Metropolis
         Glen D. Rodríguez R.
    Basado en material de J. Demmel




                                      1
Links
• Capítulo 4 del libro de Pacheco
• Ver http://www.old-
  npac.org/users/gcf/slitex/CPS615NI95/index.html
• Ver http://www.old-
  npac.org/projects/cps615spring00/presentations-
  html/cps615nic95/
• Ver http://www.old-
  npac.org/projects/cpsedu/summer98summary/examples/mpi-
  c/mpi-c.html




                                                           2
Integración
• Se puede integrar en n dimensiones, pero por ahora
  discutiremos sólo en una dimensión.
   • Para n mayor de 2, el método Monte Carlo y similares tiene
     muchas ventajas
• Se desea calcular la integral de la función f(x) de x=a
  hasta x=b
                      b
               I=
                  ∫a
                       f(x) dx

• Implícitamente se asume que f(x) es relativamente
  suave, se determina un conjunto de puntos de
  “interpolación” o de malla xi en la región a ≤ x ≤ b y se
  calcula la integral en término de los valores de f(x) y los
  puntos de la malla.
                                                                  3
Regla trapezoidal
            • Se asume que f)x= es “o constante o lineal” en un
              intervalo entre dos puntos
            • I = 0.5*(b-a)*(f(a)+f(b)), o si no (menos preciso)
            • I = (b-a)*f((a+b)/2)

    f(a)

                                      f(b)




0     X=a                         X=b                   x
                                                            4
Regla de Simpson
•   Se asume que f(x) es una función cuadrática
•   I = (b-a)*(f(a)+ 4f(xc)+f(b))/6




                                        f(Xc)


      f(a)                                          f(b)




             X=a           xc = (a+ b)/2          X=b      x5
Reglas iterativas
      • Hay ciertas reglas (Newton-Cotes y Gaussiana) que
        hacer aproximaciones de mayor orden de f(x)
          • Son difíciles de programar y no muy “robustas” (funcionan mal
            si f(x) varía muy rápido de forma no polinomial)
      • En la práctica se usa Simpson o Trapezoidal iterativo –
        Uar un número impar de puntos para aplicar simpson
        de forma iterativa

     ej.: Aplicar Simpson sobre cada uno de los 18 sub intervalos indiados por
     Las flechas abajo. Trapezoidal iterativo involucraría 36 integrales



x0        x4       x8       x12      x16      x20      x24      x28      x32         x36




                                                                                 6
Método Monte Carlo
    • El Monte Carlo más sencillo escoje puntos al azar
    • La Integral es la suma de los valores de la función f(xRandom-i) en
      los valores escogidos al azar xRandom-i multiplicados por el intervalo
      de integración (b-a) y dividido por el número depuntos generados.
    • Esta da un método robusto (y sin preferencias) que es fácil de
      usar en integrales de n-dimensiones o integrales de funciones
      problemáticas
    • Se puede adaptar en límites complicados
        • Se integra sobre regiones más grandes de lo necesario
        • Se define f(x) =0 fuera del intervalo [a b]




a                                                   b




                                                                          7
Hallar pi por integración con Monte Carlo
Otra forma de Monte Carlo: g(x,y) es un punto aleatorio en R2.
Ambas son equivalentes




                                                             8
x2 + y2 =1
     y                                            N= total de puntos
                                                  (cruces y equis)
                                                  n= puntos dentro
                                                  de la integral (cruces)
     1                                x           A= área de la simulación
                       x        x
         +         +                              (área amarilla) = 1
                                x x
               +        +
             + +                      x
                                +      x      Integral ≈ A(n / N)
                       +
             +
                   +                + +
              +             +
                                          1   x


Puntos al azar (x,y), donde x e y tienen distribución uniforme
                                                                      9
Errores
•   Para una integral con N puntos
•   Monte Carlo tiene un error del orden de 1/N0.5
•   Trapezoidal iterativo : 1/N2
•   Simpson iterativo: 1/N4
•   Pero en d dimensiones, todos menos el Monte Carlo
    deben usar una malla de N1/d puntos por lado; no
    funciona bien para N>3
     • Monte Carlo aún tiene error 1/N0.5
     • Error de Simpson es 1/N4/d
• Cuando usar Montecarlo? Cuando error de Montecarlo
  es menor que error de Simpson para los mismos N
  puntos? 1/N0.5 < 1/N4/d   0.5>4/d , o sea d>8



                                                        10
Trapezoidal Iterativo y Simpson iterativo
• Trapezoidal: Si tenemos N puntos N xi con

  I= (b-a) (f(x0)+2f(x1)+2f(x2)+ ……
  +2f(x(N-2))+f(x(N-1))/(2(N-1))

• O con Simpson:

  I= (b-a) (f(x0)+4f(x1)+2f(x2)+ ……
  +4f(x(N-2))+f(x(N-1))/(3(N-1))

• Se suman los f(xi) con diferentes pesos
• Note que ambos aproximan su cálculo en una región
  tamaño (b-a)/(N-1) (el doble de eso para Simpson) que
  tiende a cero si N es grande, así que la aprox. Es mejor
  si N se agranda.

                                                       11
Las funciones de peso
• Se suman varios wi f(xi) y las diferentes reglas sólo con
  diferentes wi
• Trapezoidal: para índices = 0, 1, 2, 3, ..., N-1
  Se usa el patrón
  wi ∝ 1, 2, 2, … 2, 2, 1
• Para los mismos índices, Simpson con N impar tieneel
  patrón
  wi ∝ 1, 2, 4, 2, 4, … 2, 4, 2, 4, 1




                                                        12
Computación paralela


                    0                        1                  2                      3



    x0            x4            x8         x12     x16        x20         x24         x28            x32
•    Diferentes procesadores calculan independientemente diferentes puntos en la
     integral y luego se suman los resultados de cada procesador
•    Lo más natural es el escenario de la figura de arriba, con cada procesador
     calculando una integral sobre una subregión
         •   x0 al x8 en proc. 0 … x24 to x32 en proc. 3 etc.
         •   La integral total es la suma de las sub-integrales calculadas en cada procesador
•    Pero podría asignarse PUNTOS y no REGIONES a los procesadores
         •   x0 x4 x8 .. x32 al proc. 0
         •   x3 x7 x11 .. x31 al proc. 3




                                                                                                13
Integración con reglas y Paralelismo

• Es un ejemplo clásico de “master worker” donde los
  procesadores individuales calculan arte de la integral.
• Se necesita usar “MPI rank” para determinar quien se
  encarga de cada rango de la integración
• Luego se suma la contribución de cada procesador
   • Suma global acumulativa (uno tras otro), por árbol o por
     reducción al “master”.




                                                                14
Ejemplo 2: Monte Carlo con dist.uniforme
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
#include "mpi.h"

int main(int argc, char *argv[])
{
  int nprocs, myproc;
  int i, n, acum, sum_acum;
  double pi_25= 3.141592653589793238462643;
  double pi, w, x, y, error;
  double t0, t1;

   /* MPI initialization */
 MPI_Init( &argc, &argv );
 MPI_Comm_size( MPI_COMM_WORLD, &nprocs );
 MPI_Comm_rank( MPI_COMM_WORLD, &myproc );

     /* Determine the number of divisions to use */
 if( argc == 2 ) {    /* Take n from the command line argument */
    sscanf( argv[1], "%d", &n );
 } else {

     if (myproc == 0)
     {
     printf("Enter the number of random points: (0 quits) ");fflush(stdout);
     scanf("%d",&n);
     }                                                                         15
 }
Sigue….
if( myproc == 0 ) printf("Calculating pi using %d pointsn", n);

    MPI_Bcast( &n, 1, MPI_INT, 0, MPI_COMM_WORLD); /* ??? Is this needed ??? */
       /* Start the timer after a barrier command */
    MPI_Barrier( MPI_COMM_WORLD );
    t0 = MPI_Wtime();

    pi = 0.0;
    sum_acum=0;
    acum=0;
    srand( (unsigned)time( NULL )+myproc );
    w = 1.0 / n;
    for( i=myproc; i<n; i+=nprocs ) {
      x = (double) rand()/RAND_MAX;
      y = (double) rand()/RAND_MAX;
      if (((x*x)+(y*y)) <= 1.0) {acum=acum+1;}
    }

    MPI_Allreduce( &acum, &sum_acum, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD );
    pi= ((double) sum_acum)/(double) n;
    pi = pi*4;
    error = fabs( pi - pi_25 );

    t1 = MPI_Wtime();
    if( myproc == 0 ) {
       printf("The calculated pi = %f (error = %f)n", pi, error);
       printf("The calculation took %f seconds on %d nodesn", t1-t0, nprocs);
    }
    MPI_Finalize();                                                               16
}
Cómo mejorar la precisión de Monte Carlo
• Error absoluto de regla rectangular (peor que
  trapezoidal), usando 10000 intervalos = 0.000199
• Error absoluto de regla trapezoidal usando 10000
  intervalos = 0.000001
• Error absoluto promedio de Monte Carlo usando 10000
  puntos y 10 simulaciones = 0.013521
• Como mejorar: no usar distribución uniforme. Se
  necesita una "guía" al muestreo aleatorio que enfatiza el
  muestreo donde la función es grande o varia
  rápidamente.
• Ver ejemplo
• En ese caso, el error absoluto promedio de Monte Carlo
  usando 10000 puntos y 10 simulaciones = 0.006479

                                                        17
x2 + y2 =1
       y                                                N= total de puntos
                                                        (cruces y equis)
                                                        n= puntos dentro
                                                        de la integral (cruces)
        1                                               A= área de la simulación
                              x
            +         +                                 (área amarilla)= 0.857
                                      x

                + +        +
                  +
                                          +     x       Integral ≈ ????
                          +
                +
                      +                       + +
                 +                +
                                                1   x


Puntos al azar (x,y), donde x, y no tienen dist. uniforme
                                                                           18
Muestreo por importancia
• Quiero integrar en 1-D



• Se mete la función peso w




• Que debe satisfacer




• Cambiando la variable, con dy = w(x) dx, y(0) = 0, and y(1) = 1.




                                                                     19
Muestreo por importancia
• Eso nos da




• La función w se escoge de tal forma que f/w sea cercana a una
  constante. El muestreo uniforme en y se modifica (vuelve no
  uniforme) al ser afectado por w. O dicho de otra forma, la integral
  anterior es equivalente a la inicial, pero transformada por el cambio
  de variable en una función con menos variaciones.




                                                                    20
Programa Ejemplo 3
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
#include "mpi.h"

int main(int argc, char *argv[])
{
  int nprocs, myproc;
  int i, n;
  double pi_25= 3.141592653589793238462643;
  double pi, w, x, y, error, acum, sum_acum;
  double t0, t1;

   /* MPI initialization */
 MPI_Init( &argc, &argv );
 MPI_Comm_size( MPI_COMM_WORLD, &nprocs );
 MPI_Comm_rank( MPI_COMM_WORLD, &myproc );

     /* Determine the number of divisions to use */
 if( argc == 2 ) {     /* Take n from the command line argument */
    sscanf( argv[1], "%d", &n );
 } else {
     if (myproc == 0)
     {
      printf("Enter the number of random points: (0 quits) ");fflush(stdout);
      scanf("%d",&n);
     }                                                                          21
 }
Sigue…
if( myproc == 0 ) printf("Calculating pi using %d pointsn", n);
     /* Broadcast the number of divisions to all nodes */

 MPI_Bcast( &n, 1, MPI_INT, 0, MPI_COMM_WORLD); /* ??? Is this

needed ??? */
     /* Start the timer after a barrier command */
  MPI_Barrier( MPI_COMM_WORLD );
  t0 = MPI_Wtime();

pi = 0.0;
 sum_acum=0.0;
 acum=0.0;
 srand( (unsigned)time( NULL )+myproc );
 w = 1.0 / n;
     /* Each processor starts at a different value and computes its
      * own contributions to pi. */




                                                                      22
Sigue…
for( i=myproc; i<n; i+=nprocs ) {
     x = (double) rand()/RAND_MAX;
     y = (double) rand()/RAND_MAX;
     if ((x>0.5) && (x<=0.8) && (y<=1.5-x) && (((x*x)+(y*y)) <= 1.0)) acum=acum+0.857;
     if ((x>0.5) && (x<=0.8) && (y>1.5-x)) i=i-nprocs;
     if ((x>0.8) && (y<=1.77-1.4*x) && (((x*x)+(y*y)) <= 1.0)) acum=acum+0.857;
     if ((x>0.8) && (y>1.77-1.4*x)) i=i-nprocs;
     if ( (x<=0.5) && (((x*x)+(y*y)) <= 1.0) ) acum=acum+0.857;
  }

 MPI_Allreduce( &acum, &sum_acum, 1, MPI_DOUBLE, MPI_SUM,

MPI_COMM_WORLD );

 pi= ((double) sum_acum)/(double) n;
 pi = pi*4;
 error = fabs( pi - pi_25 );

 t1 = MPI_Wtime();
 if( myproc == 0 ) {
    printf("The calculated pi = %f (error = %f)n", pi, error);
    printf("The calculation took %f seconds on %d nodesn", t1-t0,

nprocs);
  }
  MPI_Finalize();
}
                                                                                         23
Paradigmas de Monte Carlo paralelo
• Master-worker: se genera los números
  aleatorios en el nodo 0 y se pasan a los demás.
  Todos los nodos computan.




                                               24
Paradigmas de Monte Carlo paralelo
• Cliente-servidor: es un servidor de números
  aleatorios, no procesa, sólo crea y envía los
  randoms




                                                  25
Paradigmas de Monte Carlo paralelo
• Full workers: cada nodo genera sus propios
  números aleatorios. El nodo 0 sólo cuida que
  se siembren diferentes semillas o que se use la
  misma semilla pero diferentes rangos.




                                               26
Resolviendo Ec. de Poisson con Montecarlo
• Sea la ecuación de Poisson:



• Con fuente sinusoidal : -2π2 sen(π x) sen(π y)
• Y cero en todas las fronteras
• En diferencias finitas:




                                                   27
Solución con “random walks”
• De un punto (i,j) comenzar el “random walk”.La
  probabilidad de moverse a cualquiera de los 4
  puntos vecinos es ¼.
• Generar un número aleatorio para escoger el
  vecino.
• Añadir g(x,y) en la nueva posición
• Repetir hasta llegar a una frontera
• Esto fue solo UNA “random walk”
• Después de N “random walks” el estimado de
  u(i,j) es:


                                               28
Paralelización de esta solución
• Hacer el siguiente proceso para todos los puntos
• Comenzar en una frontera
   •   De afuera hacia adentro
   •   Fila por fila
   •   Actualizar (intercambiar) data en el límite entre procesadores
   •   Actualizar el walk dentro de los puntos de un procesador
   •   Si el walk sale de un procesador, informarle al otro procesador




                                                                   29
Metrópolis
•  Se usa para integrales con funciones de peso.
•  Genera un random walk pero guiado por una función
   de peso w(x). Ejemplo en 2-D comenzando de un
   punto (xi,yi):
1. Escoger δ, el step size
2. Generar dos aleatorios R1, R2 uniformes en el rango
   [-1,1]
3. El nuevo punto será
     1. xTi+1 = xi + δR1
     2. yTi+1 = yi + δR2
4. Evaluar el ratio de w en el punto actual vs. el punto
   anterior
     1. r= w(xTi+1 ,yTi+1) / w(xi,yi)

                                                           30
Metrópolis
5. Si r>1 aceptar el nuevo punto y regresar a (2)
   1. xi+1 = xTi+1 ; yi+1 = yTi+1
6. Si r<1 aceptar el nuevo punto con probabilidad r. O
   sea, generar un aleatorio uniforme η en [0, 1] y
   aceptar el punto solo si r>η (hacer lo mismo que en el
   paso 5)
7. Caso contrario, rechazar el nuevo punto y volver a (2)

El step size no debe ser ni muy chico ni muy grande.
Los puntos obtenidos se usan luego para integrar, como
    en MonteCarlo (Algo*n/N).
La paralelización es similar a la discutida para las otras
    integrales con Montecarlo
                                                         31

Mais conteúdo relacionado

Mais procurados

Análisis de complejidad introducción notación big o
Análisis de complejidad   introducción notación big oAnálisis de complejidad   introducción notación big o
Análisis de complejidad introducción notación big oUVM
 
4 la derivada por formulas
4 la derivada por formulas4 la derivada por formulas
4 la derivada por formulasJesus Gil
 
Tema 2 eficiencia_y_complejidad_grupo_21
Tema 2 eficiencia_y_complejidad_grupo_21Tema 2 eficiencia_y_complejidad_grupo_21
Tema 2 eficiencia_y_complejidad_grupo_21Carlos A. Iglesias
 
Metodos de integracion
Metodos de integracionMetodos de integracion
Metodos de integracionROAD TRACK
 
Convolucion Tiempo Discreto
Convolucion Tiempo DiscretoConvolucion Tiempo Discreto
Convolucion Tiempo Discretoguest1e528d
 
Ejercicios resueltos 2011
Ejercicios resueltos 2011Ejercicios resueltos 2011
Ejercicios resueltos 2011Deyvid Atens
 
Lab 01 - Análisis de señales - UNTECS
Lab 01 - Análisis de señales - UNTECSLab 01 - Análisis de señales - UNTECS
Lab 01 - Análisis de señales - UNTECSIng. Electrónica xD
 
Lab 02 - Análisis de señales - UNTECS
Lab 02 - Análisis de señales - UNTECSLab 02 - Análisis de señales - UNTECS
Lab 02 - Análisis de señales - UNTECSIng. Electrónica xD
 
Lab 07 - Analisis de señales - UNTECS
Lab 07 - Analisis de señales - UNTECSLab 07 - Analisis de señales - UNTECS
Lab 07 - Analisis de señales - UNTECSIng. Electrónica xD
 
Zoom de una imagen
Zoom de una imagenZoom de una imagen
Zoom de una imagenlmarchenac01
 
La Integral Definida
La Integral DefinidaLa Integral Definida
La Integral DefinidaERICK CONDE
 
Intro parte3
Intro parte3Intro parte3
Intro parte3UNEFA
 
Lab 03 - Análisis de Señales - UNTECS
Lab 03 - Análisis de Señales - UNTECSLab 03 - Análisis de Señales - UNTECS
Lab 03 - Análisis de Señales - UNTECSIng. Electrónica xD
 
Lab 04 - Analisis de Señales - UNTECS
Lab 04 - Analisis de Señales - UNTECSLab 04 - Analisis de Señales - UNTECS
Lab 04 - Analisis de Señales - UNTECSIng. Electrónica xD
 
Gráfica, curvas de nivel, límites
Gráfica, curvas de nivel, límitesGráfica, curvas de nivel, límites
Gráfica, curvas de nivel, límitesJIE MA ZHOU
 

Mais procurados (20)

Análisis de complejidad introducción notación big o
Análisis de complejidad   introducción notación big oAnálisis de complejidad   introducción notación big o
Análisis de complejidad introducción notación big o
 
Integrales inmediatas
Integrales inmediatasIntegrales inmediatas
Integrales inmediatas
 
4 la derivada por formulas
4 la derivada por formulas4 la derivada por formulas
4 la derivada por formulas
 
Tema 2 eficiencia_y_complejidad_grupo_21
Tema 2 eficiencia_y_complejidad_grupo_21Tema 2 eficiencia_y_complejidad_grupo_21
Tema 2 eficiencia_y_complejidad_grupo_21
 
Metodos de integracion
Metodos de integracionMetodos de integracion
Metodos de integracion
 
Convolucion Tiempo Discreto
Convolucion Tiempo DiscretoConvolucion Tiempo Discreto
Convolucion Tiempo Discreto
 
Ejercicios resueltos 2011
Ejercicios resueltos 2011Ejercicios resueltos 2011
Ejercicios resueltos 2011
 
Lab 01 - Análisis de señales - UNTECS
Lab 01 - Análisis de señales - UNTECSLab 01 - Análisis de señales - UNTECS
Lab 01 - Análisis de señales - UNTECS
 
Lab 02 - Análisis de señales - UNTECS
Lab 02 - Análisis de señales - UNTECSLab 02 - Análisis de señales - UNTECS
Lab 02 - Análisis de señales - UNTECS
 
Parte2
Parte2Parte2
Parte2
 
Lab 07 - Analisis de señales - UNTECS
Lab 07 - Analisis de señales - UNTECSLab 07 - Analisis de señales - UNTECS
Lab 07 - Analisis de señales - UNTECS
 
Control N5 Calculo I Iam2009 ..Pauta
Control N5 Calculo I Iam2009 ..PautaControl N5 Calculo I Iam2009 ..Pauta
Control N5 Calculo I Iam2009 ..Pauta
 
Zoom de una imagen
Zoom de una imagenZoom de una imagen
Zoom de una imagen
 
La Integral Definida
La Integral DefinidaLa Integral Definida
La Integral Definida
 
Intro parte3
Intro parte3Intro parte3
Intro parte3
 
Lab 03 - Análisis de Señales - UNTECS
Lab 03 - Análisis de Señales - UNTECSLab 03 - Análisis de Señales - UNTECS
Lab 03 - Análisis de Señales - UNTECS
 
Lab 04 - Analisis de Señales - UNTECS
Lab 04 - Analisis de Señales - UNTECSLab 04 - Analisis de Señales - UNTECS
Lab 04 - Analisis de Señales - UNTECS
 
Gráfica, curvas de nivel, límites
Gráfica, curvas de nivel, límitesGráfica, curvas de nivel, límites
Gráfica, curvas de nivel, límites
 
Series de fourier
Series de fourierSeries de fourier
Series de fourier
 
DERIVACIÓN E INTEGRACIÓN NUMÉRICA
DERIVACIÓN E INTEGRACIÓN NUMÉRICADERIVACIÓN E INTEGRACIÓN NUMÉRICA
DERIVACIÓN E INTEGRACIÓN NUMÉRICA
 

Semelhante a Paralela4

Semelhante a Paralela4 (20)

Ca 3
Ca 3Ca 3
Ca 3
 
Segunda tarea sorpresa_seg_per_2012-13
Segunda tarea sorpresa_seg_per_2012-13Segunda tarea sorpresa_seg_per_2012-13
Segunda tarea sorpresa_seg_per_2012-13
 
clase modelo derivada de funciones reales RAUL BEJAR.pptx
clase modelo derivada de funciones reales RAUL BEJAR.pptxclase modelo derivada de funciones reales RAUL BEJAR.pptx
clase modelo derivada de funciones reales RAUL BEJAR.pptx
 
Mat 350 ejemplos integracion
Mat 350  ejemplos  integracionMat 350  ejemplos  integracion
Mat 350 ejemplos integracion
 
No lineal
No linealNo lineal
No lineal
 
Matlab2009b -clase2
Matlab2009b  -clase2Matlab2009b  -clase2
Matlab2009b -clase2
 
Cálculo Integral
Cálculo IntegralCálculo Integral
Cálculo Integral
 
Integracion
IntegracionIntegracion
Integracion
 
Suma de funciones
Suma de funcionesSuma de funciones
Suma de funciones
 
Metodos iterativos
Metodos iterativosMetodos iterativos
Metodos iterativos
 
Sistemas Difusos
Sistemas DifusosSistemas Difusos
Sistemas Difusos
 
Metodosbiseccionyfalsaposicion
MetodosbiseccionyfalsaposicionMetodosbiseccionyfalsaposicion
Metodosbiseccionyfalsaposicion
 
Montecarlo
MontecarloMontecarlo
Montecarlo
 
Guia 3 2_s_2015
Guia 3 2_s_2015Guia 3 2_s_2015
Guia 3 2_s_2015
 
Mat lab03
Mat lab03Mat lab03
Mat lab03
 
Alea 0506 resumen-----simulacion
Alea 0506 resumen-----simulacionAlea 0506 resumen-----simulacion
Alea 0506 resumen-----simulacion
 
Teoria funciones polinomicas
Teoria funciones polinomicasTeoria funciones polinomicas
Teoria funciones polinomicas
 
La Integral Indefinida
La  Integral IndefinidaLa  Integral Indefinida
La Integral Indefinida
 
Intsimpson
IntsimpsonIntsimpson
Intsimpson
 
Cap1
Cap1Cap1
Cap1
 

Mais de Abraham Zamudio (8)

Clase4_Python-CTIC
Clase4_Python-CTICClase4_Python-CTIC
Clase4_Python-CTIC
 
Clase5_Python-CTIC
Clase5_Python-CTICClase5_Python-CTIC
Clase5_Python-CTIC
 
Clase3_Python-CTIC
Clase3_Python-CTICClase3_Python-CTIC
Clase3_Python-CTIC
 
Clase2_Python-CTIC
Clase2_Python-CTICClase2_Python-CTIC
Clase2_Python-CTIC
 
Clase1_Python-CTIC
Clase1_Python-CTICClase1_Python-CTIC
Clase1_Python-CTIC
 
Paralela10
Paralela10Paralela10
Paralela10
 
Paralela9
Paralela9Paralela9
Paralela9
 
Paralela2
Paralela2Paralela2
Paralela2
 

Último

PPT_ Prefijo homo tema para trabajar los prefijos en razonamiento verbal
PPT_ Prefijo homo tema para trabajar los prefijos en razonamiento verbalPPT_ Prefijo homo tema para trabajar los prefijos en razonamiento verbal
PPT_ Prefijo homo tema para trabajar los prefijos en razonamiento verbalRosarioChoque3
 
PRIMER GRADO SOY LECTOR PART1- MD EDUCATIVO.pdf
PRIMER GRADO SOY LECTOR PART1- MD  EDUCATIVO.pdfPRIMER GRADO SOY LECTOR PART1- MD  EDUCATIVO.pdf
PRIMER GRADO SOY LECTOR PART1- MD EDUCATIVO.pdfGabrieldeJesusLopezG
 
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docxEJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docxFabianValenciaJabo
 
4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx
4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx
4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docxMagalyDacostaPea
 
Secuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docxSecuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docxNataliaGonzalez619348
 
Amor o egoísmo, esa es la cuestión por definir.pdf
Amor o egoísmo, esa es la cuestión por definir.pdfAmor o egoísmo, esa es la cuestión por definir.pdf
Amor o egoísmo, esa es la cuestión por definir.pdfAlejandrino Halire Ccahuana
 
Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Angélica Soledad Vega Ramírez
 
Fichas de MatemáticA QUINTO DE SECUNDARIA).pdf
Fichas de MatemáticA QUINTO DE SECUNDARIA).pdfFichas de MatemáticA QUINTO DE SECUNDARIA).pdf
Fichas de MatemáticA QUINTO DE SECUNDARIA).pdfssuser50d1252
 
HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).
HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).
HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).hebegris04
 
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...Martin M Flynn
 
HISPANIDAD - La cultura común de la HISPANOAMERICA
HISPANIDAD - La cultura común de la HISPANOAMERICAHISPANIDAD - La cultura común de la HISPANOAMERICA
HISPANIDAD - La cultura común de la HISPANOAMERICAJesus Gonzalez Losada
 
El PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/F
El PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/FEl PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/F
El PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/FJulio Lozano
 
PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2
PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2
PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2Eliseo Delgado
 
LOS AMBIENTALISTAS todo por un mundo mejor
LOS AMBIENTALISTAS todo por un mundo mejorLOS AMBIENTALISTAS todo por un mundo mejor
LOS AMBIENTALISTAS todo por un mundo mejormrcrmnrojasgarcia
 
Abregú, Podestá. Directores.Líderes en Acción.
Abregú, Podestá. Directores.Líderes en Acción.Abregú, Podestá. Directores.Líderes en Acción.
Abregú, Podestá. Directores.Líderes en Acción.profandrearivero
 

Último (20)

PPT_ Prefijo homo tema para trabajar los prefijos en razonamiento verbal
PPT_ Prefijo homo tema para trabajar los prefijos en razonamiento verbalPPT_ Prefijo homo tema para trabajar los prefijos en razonamiento verbal
PPT_ Prefijo homo tema para trabajar los prefijos en razonamiento verbal
 
PRIMER GRADO SOY LECTOR PART1- MD EDUCATIVO.pdf
PRIMER GRADO SOY LECTOR PART1- MD  EDUCATIVO.pdfPRIMER GRADO SOY LECTOR PART1- MD  EDUCATIVO.pdf
PRIMER GRADO SOY LECTOR PART1- MD EDUCATIVO.pdf
 
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docxEJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
 
El Bullying.
El Bullying.El Bullying.
El Bullying.
 
4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx
4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx
4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx
 
Secuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docxSecuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docx
 
Amor o egoísmo, esa es la cuestión por definir.pdf
Amor o egoísmo, esa es la cuestión por definir.pdfAmor o egoísmo, esa es la cuestión por definir.pdf
Amor o egoísmo, esa es la cuestión por definir.pdf
 
Acuerdo segundo periodo - Grado Noveno.pptx
Acuerdo segundo periodo - Grado Noveno.pptxAcuerdo segundo periodo - Grado Noveno.pptx
Acuerdo segundo periodo - Grado Noveno.pptx
 
Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...
 
Fichas de MatemáticA QUINTO DE SECUNDARIA).pdf
Fichas de MatemáticA QUINTO DE SECUNDARIA).pdfFichas de MatemáticA QUINTO DE SECUNDARIA).pdf
Fichas de MatemáticA QUINTO DE SECUNDARIA).pdf
 
HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).
HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).
HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).
 
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...
 
¿Amor o egoísmo? Esa es la cuestión.pptx
¿Amor o egoísmo? Esa es la cuestión.pptx¿Amor o egoísmo? Esa es la cuestión.pptx
¿Amor o egoísmo? Esa es la cuestión.pptx
 
HISPANIDAD - La cultura común de la HISPANOAMERICA
HISPANIDAD - La cultura común de la HISPANOAMERICAHISPANIDAD - La cultura común de la HISPANOAMERICA
HISPANIDAD - La cultura común de la HISPANOAMERICA
 
El PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/F
El PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/FEl PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/F
El PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/F
 
PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2
PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2
PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2
 
Sesión ¿Amor o egoísmo? Esa es la cuestión
Sesión  ¿Amor o egoísmo? Esa es la cuestiónSesión  ¿Amor o egoísmo? Esa es la cuestión
Sesión ¿Amor o egoísmo? Esa es la cuestión
 
LOS AMBIENTALISTAS todo por un mundo mejor
LOS AMBIENTALISTAS todo por un mundo mejorLOS AMBIENTALISTAS todo por un mundo mejor
LOS AMBIENTALISTAS todo por un mundo mejor
 
Aedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptxAedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptx
 
Abregú, Podestá. Directores.Líderes en Acción.
Abregú, Podestá. Directores.Líderes en Acción.Abregú, Podestá. Directores.Líderes en Acción.
Abregú, Podestá. Directores.Líderes en Acción.
 

Paralela4

  • 1. Programación y Computación paralela (4) Integración, Monte Carlo, Metropolis Glen D. Rodríguez R. Basado en material de J. Demmel 1
  • 2. Links • Capítulo 4 del libro de Pacheco • Ver http://www.old- npac.org/users/gcf/slitex/CPS615NI95/index.html • Ver http://www.old- npac.org/projects/cps615spring00/presentations- html/cps615nic95/ • Ver http://www.old- npac.org/projects/cpsedu/summer98summary/examples/mpi- c/mpi-c.html 2
  • 3. Integración • Se puede integrar en n dimensiones, pero por ahora discutiremos sólo en una dimensión. • Para n mayor de 2, el método Monte Carlo y similares tiene muchas ventajas • Se desea calcular la integral de la función f(x) de x=a hasta x=b b I= ∫a f(x) dx • Implícitamente se asume que f(x) es relativamente suave, se determina un conjunto de puntos de “interpolación” o de malla xi en la región a ≤ x ≤ b y se calcula la integral en término de los valores de f(x) y los puntos de la malla. 3
  • 4. Regla trapezoidal • Se asume que f)x= es “o constante o lineal” en un intervalo entre dos puntos • I = 0.5*(b-a)*(f(a)+f(b)), o si no (menos preciso) • I = (b-a)*f((a+b)/2) f(a) f(b) 0 X=a X=b x 4
  • 5. Regla de Simpson • Se asume que f(x) es una función cuadrática • I = (b-a)*(f(a)+ 4f(xc)+f(b))/6 f(Xc) f(a) f(b) X=a xc = (a+ b)/2 X=b x5
  • 6. Reglas iterativas • Hay ciertas reglas (Newton-Cotes y Gaussiana) que hacer aproximaciones de mayor orden de f(x) • Son difíciles de programar y no muy “robustas” (funcionan mal si f(x) varía muy rápido de forma no polinomial) • En la práctica se usa Simpson o Trapezoidal iterativo – Uar un número impar de puntos para aplicar simpson de forma iterativa ej.: Aplicar Simpson sobre cada uno de los 18 sub intervalos indiados por Las flechas abajo. Trapezoidal iterativo involucraría 36 integrales x0 x4 x8 x12 x16 x20 x24 x28 x32 x36 6
  • 7. Método Monte Carlo • El Monte Carlo más sencillo escoje puntos al azar • La Integral es la suma de los valores de la función f(xRandom-i) en los valores escogidos al azar xRandom-i multiplicados por el intervalo de integración (b-a) y dividido por el número depuntos generados. • Esta da un método robusto (y sin preferencias) que es fácil de usar en integrales de n-dimensiones o integrales de funciones problemáticas • Se puede adaptar en límites complicados • Se integra sobre regiones más grandes de lo necesario • Se define f(x) =0 fuera del intervalo [a b] a b 7
  • 8. Hallar pi por integración con Monte Carlo Otra forma de Monte Carlo: g(x,y) es un punto aleatorio en R2. Ambas son equivalentes 8
  • 9. x2 + y2 =1 y N= total de puntos (cruces y equis) n= puntos dentro de la integral (cruces) 1 x A= área de la simulación x x + + (área amarilla) = 1 x x + + + + x + x Integral ≈ A(n / N) + + + + + + + 1 x Puntos al azar (x,y), donde x e y tienen distribución uniforme 9
  • 10. Errores • Para una integral con N puntos • Monte Carlo tiene un error del orden de 1/N0.5 • Trapezoidal iterativo : 1/N2 • Simpson iterativo: 1/N4 • Pero en d dimensiones, todos menos el Monte Carlo deben usar una malla de N1/d puntos por lado; no funciona bien para N>3 • Monte Carlo aún tiene error 1/N0.5 • Error de Simpson es 1/N4/d • Cuando usar Montecarlo? Cuando error de Montecarlo es menor que error de Simpson para los mismos N puntos? 1/N0.5 < 1/N4/d 0.5>4/d , o sea d>8 10
  • 11. Trapezoidal Iterativo y Simpson iterativo • Trapezoidal: Si tenemos N puntos N xi con I= (b-a) (f(x0)+2f(x1)+2f(x2)+ …… +2f(x(N-2))+f(x(N-1))/(2(N-1)) • O con Simpson: I= (b-a) (f(x0)+4f(x1)+2f(x2)+ …… +4f(x(N-2))+f(x(N-1))/(3(N-1)) • Se suman los f(xi) con diferentes pesos • Note que ambos aproximan su cálculo en una región tamaño (b-a)/(N-1) (el doble de eso para Simpson) que tiende a cero si N es grande, así que la aprox. Es mejor si N se agranda. 11
  • 12. Las funciones de peso • Se suman varios wi f(xi) y las diferentes reglas sólo con diferentes wi • Trapezoidal: para índices = 0, 1, 2, 3, ..., N-1 Se usa el patrón wi ∝ 1, 2, 2, … 2, 2, 1 • Para los mismos índices, Simpson con N impar tieneel patrón wi ∝ 1, 2, 4, 2, 4, … 2, 4, 2, 4, 1 12
  • 13. Computación paralela 0 1 2 3 x0 x4 x8 x12 x16 x20 x24 x28 x32 • Diferentes procesadores calculan independientemente diferentes puntos en la integral y luego se suman los resultados de cada procesador • Lo más natural es el escenario de la figura de arriba, con cada procesador calculando una integral sobre una subregión • x0 al x8 en proc. 0 … x24 to x32 en proc. 3 etc. • La integral total es la suma de las sub-integrales calculadas en cada procesador • Pero podría asignarse PUNTOS y no REGIONES a los procesadores • x0 x4 x8 .. x32 al proc. 0 • x3 x7 x11 .. x31 al proc. 3 13
  • 14. Integración con reglas y Paralelismo • Es un ejemplo clásico de “master worker” donde los procesadores individuales calculan arte de la integral. • Se necesita usar “MPI rank” para determinar quien se encarga de cada rango de la integración • Luego se suma la contribución de cada procesador • Suma global acumulativa (uno tras otro), por árbol o por reducción al “master”. 14
  • 15. Ejemplo 2: Monte Carlo con dist.uniforme #include <stdio.h> #include <stdlib.h> #include <time.h> #include <math.h> #include "mpi.h" int main(int argc, char *argv[]) { int nprocs, myproc; int i, n, acum, sum_acum; double pi_25= 3.141592653589793238462643; double pi, w, x, y, error; double t0, t1; /* MPI initialization */ MPI_Init( &argc, &argv ); MPI_Comm_size( MPI_COMM_WORLD, &nprocs ); MPI_Comm_rank( MPI_COMM_WORLD, &myproc ); /* Determine the number of divisions to use */ if( argc == 2 ) { /* Take n from the command line argument */ sscanf( argv[1], "%d", &n ); } else { if (myproc == 0) { printf("Enter the number of random points: (0 quits) ");fflush(stdout); scanf("%d",&n); } 15 }
  • 16. Sigue…. if( myproc == 0 ) printf("Calculating pi using %d pointsn", n); MPI_Bcast( &n, 1, MPI_INT, 0, MPI_COMM_WORLD); /* ??? Is this needed ??? */ /* Start the timer after a barrier command */ MPI_Barrier( MPI_COMM_WORLD ); t0 = MPI_Wtime(); pi = 0.0; sum_acum=0; acum=0; srand( (unsigned)time( NULL )+myproc ); w = 1.0 / n; for( i=myproc; i<n; i+=nprocs ) { x = (double) rand()/RAND_MAX; y = (double) rand()/RAND_MAX; if (((x*x)+(y*y)) <= 1.0) {acum=acum+1;} } MPI_Allreduce( &acum, &sum_acum, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD ); pi= ((double) sum_acum)/(double) n; pi = pi*4; error = fabs( pi - pi_25 ); t1 = MPI_Wtime(); if( myproc == 0 ) { printf("The calculated pi = %f (error = %f)n", pi, error); printf("The calculation took %f seconds on %d nodesn", t1-t0, nprocs); } MPI_Finalize(); 16 }
  • 17. Cómo mejorar la precisión de Monte Carlo • Error absoluto de regla rectangular (peor que trapezoidal), usando 10000 intervalos = 0.000199 • Error absoluto de regla trapezoidal usando 10000 intervalos = 0.000001 • Error absoluto promedio de Monte Carlo usando 10000 puntos y 10 simulaciones = 0.013521 • Como mejorar: no usar distribución uniforme. Se necesita una "guía" al muestreo aleatorio que enfatiza el muestreo donde la función es grande o varia rápidamente. • Ver ejemplo • En ese caso, el error absoluto promedio de Monte Carlo usando 10000 puntos y 10 simulaciones = 0.006479 17
  • 18. x2 + y2 =1 y N= total de puntos (cruces y equis) n= puntos dentro de la integral (cruces) 1 A= área de la simulación x + + (área amarilla)= 0.857 x + + + + + x Integral ≈ ???? + + + + + + + 1 x Puntos al azar (x,y), donde x, y no tienen dist. uniforme 18
  • 19. Muestreo por importancia • Quiero integrar en 1-D • Se mete la función peso w • Que debe satisfacer • Cambiando la variable, con dy = w(x) dx, y(0) = 0, and y(1) = 1. 19
  • 20. Muestreo por importancia • Eso nos da • La función w se escoge de tal forma que f/w sea cercana a una constante. El muestreo uniforme en y se modifica (vuelve no uniforme) al ser afectado por w. O dicho de otra forma, la integral anterior es equivalente a la inicial, pero transformada por el cambio de variable en una función con menos variaciones. 20
  • 21. Programa Ejemplo 3 #include <stdio.h> #include <stdlib.h> #include <time.h> #include <math.h> #include "mpi.h" int main(int argc, char *argv[]) { int nprocs, myproc; int i, n; double pi_25= 3.141592653589793238462643; double pi, w, x, y, error, acum, sum_acum; double t0, t1; /* MPI initialization */ MPI_Init( &argc, &argv ); MPI_Comm_size( MPI_COMM_WORLD, &nprocs ); MPI_Comm_rank( MPI_COMM_WORLD, &myproc ); /* Determine the number of divisions to use */ if( argc == 2 ) { /* Take n from the command line argument */ sscanf( argv[1], "%d", &n ); } else { if (myproc == 0) { printf("Enter the number of random points: (0 quits) ");fflush(stdout); scanf("%d",&n); } 21 }
  • 22. Sigue… if( myproc == 0 ) printf("Calculating pi using %d pointsn", n); /* Broadcast the number of divisions to all nodes */ MPI_Bcast( &n, 1, MPI_INT, 0, MPI_COMM_WORLD); /* ??? Is this needed ??? */ /* Start the timer after a barrier command */ MPI_Barrier( MPI_COMM_WORLD ); t0 = MPI_Wtime(); pi = 0.0; sum_acum=0.0; acum=0.0; srand( (unsigned)time( NULL )+myproc ); w = 1.0 / n; /* Each processor starts at a different value and computes its * own contributions to pi. */ 22
  • 23. Sigue… for( i=myproc; i<n; i+=nprocs ) { x = (double) rand()/RAND_MAX; y = (double) rand()/RAND_MAX; if ((x>0.5) && (x<=0.8) && (y<=1.5-x) && (((x*x)+(y*y)) <= 1.0)) acum=acum+0.857; if ((x>0.5) && (x<=0.8) && (y>1.5-x)) i=i-nprocs; if ((x>0.8) && (y<=1.77-1.4*x) && (((x*x)+(y*y)) <= 1.0)) acum=acum+0.857; if ((x>0.8) && (y>1.77-1.4*x)) i=i-nprocs; if ( (x<=0.5) && (((x*x)+(y*y)) <= 1.0) ) acum=acum+0.857; } MPI_Allreduce( &acum, &sum_acum, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD ); pi= ((double) sum_acum)/(double) n; pi = pi*4; error = fabs( pi - pi_25 ); t1 = MPI_Wtime(); if( myproc == 0 ) { printf("The calculated pi = %f (error = %f)n", pi, error); printf("The calculation took %f seconds on %d nodesn", t1-t0, nprocs); } MPI_Finalize(); } 23
  • 24. Paradigmas de Monte Carlo paralelo • Master-worker: se genera los números aleatorios en el nodo 0 y se pasan a los demás. Todos los nodos computan. 24
  • 25. Paradigmas de Monte Carlo paralelo • Cliente-servidor: es un servidor de números aleatorios, no procesa, sólo crea y envía los randoms 25
  • 26. Paradigmas de Monte Carlo paralelo • Full workers: cada nodo genera sus propios números aleatorios. El nodo 0 sólo cuida que se siembren diferentes semillas o que se use la misma semilla pero diferentes rangos. 26
  • 27. Resolviendo Ec. de Poisson con Montecarlo • Sea la ecuación de Poisson: • Con fuente sinusoidal : -2π2 sen(π x) sen(π y) • Y cero en todas las fronteras • En diferencias finitas: 27
  • 28. Solución con “random walks” • De un punto (i,j) comenzar el “random walk”.La probabilidad de moverse a cualquiera de los 4 puntos vecinos es ¼. • Generar un número aleatorio para escoger el vecino. • Añadir g(x,y) en la nueva posición • Repetir hasta llegar a una frontera • Esto fue solo UNA “random walk” • Después de N “random walks” el estimado de u(i,j) es: 28
  • 29. Paralelización de esta solución • Hacer el siguiente proceso para todos los puntos • Comenzar en una frontera • De afuera hacia adentro • Fila por fila • Actualizar (intercambiar) data en el límite entre procesadores • Actualizar el walk dentro de los puntos de un procesador • Si el walk sale de un procesador, informarle al otro procesador 29
  • 30. Metrópolis • Se usa para integrales con funciones de peso. • Genera un random walk pero guiado por una función de peso w(x). Ejemplo en 2-D comenzando de un punto (xi,yi): 1. Escoger δ, el step size 2. Generar dos aleatorios R1, R2 uniformes en el rango [-1,1] 3. El nuevo punto será 1. xTi+1 = xi + δR1 2. yTi+1 = yi + δR2 4. Evaluar el ratio de w en el punto actual vs. el punto anterior 1. r= w(xTi+1 ,yTi+1) / w(xi,yi) 30
  • 31. Metrópolis 5. Si r>1 aceptar el nuevo punto y regresar a (2) 1. xi+1 = xTi+1 ; yi+1 = yTi+1 6. Si r<1 aceptar el nuevo punto con probabilidad r. O sea, generar un aleatorio uniforme η en [0, 1] y aceptar el punto solo si r>η (hacer lo mismo que en el paso 5) 7. Caso contrario, rechazar el nuevo punto y volver a (2) El step size no debe ser ni muy chico ni muy grande. Los puntos obtenidos se usan luego para integrar, como en MonteCarlo (Algo*n/N). La paralelización es similar a la discutida para las otras integrales con Montecarlo 31