pro Par Curso 1920 5 1 Computadores Paralelos

  • Slides: 30
Download presentation
pro. Par Curso 19/20 5 1 Computadores Paralelos 3 2 Programación basada en paso

pro. Par Curso 19/20 5 1 Computadores Paralelos 3 2 Programación basada en paso de mensajes 3 Técnicas básicas de programación paralela 2, 3, 2 Compulsiva, Divide y Vencerás, Pipeline, 2, 2 4 Síncrona, Equilibrado de carga y Terminación 4 Programación basada en memoria común 5 Algoritmos y aplicaciones 4 Ordenación, …

pro. Par Temario Compulsiva-2 3 Paralelismo compulsivo 1 Computación paralela ideal 2 Transformación geométrica

pro. Par Temario Compulsiva-2 3 Paralelismo compulsivo 1 Computación paralela ideal 2 Transformación geométrica de imágenes 3 Fractales: El conjunto de Mandelbrot 4 Los métodos de Monte Carlo

pro. Par Computación paralela ideal Compulsiva-3 entrada • Independencia total • Equilibrio de carga

pro. Par Computación paralela ideal Compulsiva-3 entrada • Independencia total • Equilibrio de carga perfecto salida Quasi ideal • Maestro reparte trabajos y recolecta resultados • Los esclavos no se comunican entre sí • Poca comunicación frente a cómputo maestro e 1 e 2 e. N

pro. Par Transformación geométrica de imágenes Compulsiva-4 512 Color: RGB Tonalidad Grises 512 Digital:

pro. Par Transformación geométrica de imágenes Compulsiva-4 512 Color: RGB Tonalidad Grises 512 Digital: dibujar. Pixel(f, c, color) Ram. Video | mapa. Pixels Construir o manipular ppm y pgm jasper Muchos formatos: jpg, giff, tiff, bmp, . . . http: //netpbm. sourceforge. net/

pro. Par Transformación geométrica de imágenes 17” ? 20” Pixels 1. 310. 720 Compulsiva-5

pro. Par Transformación geométrica de imágenes 17” ? 20” Pixels 1. 310. 720 Compulsiva-5 Filas 1. 280 Cols 1. 024 7. 860 4. 320 33. 955. 200 97, 15 MB Filas 1. 920 Cols 1. 080 Pixels 2. 073. 600 4. 294. 967. 295 pixels Memoria 3, 75 MB Memoria 5, 93 MB ? Memoria 4 GB

pro. Par Transformación geométrica de imágenes Compulsiva-6 Girar: x’ = x cos + y

pro. Par Transformación geométrica de imágenes Compulsiva-6 Girar: x’ = x cos + y sen y’ = y cos - x sen Desplazar, Escalar, . . . N N Igual para todo pixel M ¿Un P * pixel? 1024*768 = 786. 432 ¡ No tan fácil ! M

pro. Par Transformación geométrica de imágenes • Girar no es tan fácil 512 x

pro. Par Transformación geométrica de imágenes • Girar no es tan fácil 512 x 512 30º Compulsiva-7

pro. Par Transformación geométrica de imágenes • Girar no es tan fácil Compulsiva-8 30º

pro. Par Transformación geométrica de imágenes • Girar no es tan fácil Compulsiva-8 30º + filtro ¡ En 40 mseg !

pro. Par Transformación geométrica de imágenes • Girar no es tan fácil Compulsiva-9 [30º

pro. Par Transformación geométrica de imágenes • Girar no es tan fácil Compulsiva-9 [30º + filtro] 12 veces ¡ En 500 mseg y mal !

pro. Par Transformación geométrica de imágenes • Girar no es tan fácil [1º +

pro. Par Transformación geométrica de imágenes • Girar no es tan fácil [1º + filtro] 360 veces ¿Qué pasa? Compulsiva-10

pro. Par Transformación geométrica de imágenes • Girar no es tan fácil [1º +

pro. Par Transformación geométrica de imágenes • Girar no es tan fácil [1º + filtro] 360 veces Compulsiva-11 Ver video Giros incrementales [1, 2, …. ] desde el original => 9, 311 seg

pro. Par Transformación geométrica de imágenes • Un filtrado es más facil Compulsiva-12

pro. Par Transformación geométrica de imágenes • Un filtrado es más facil Compulsiva-12

pro. Par Transformación geométrica de imágenes Compulsiva-13 Sea imagen de 1024*768 (786. 432) y

pro. Par Transformación geométrica de imágenes Compulsiva-13 Sea imagen de 1024*768 (786. 432) y 16 P => 49. 152 pixels * P ¿ Cómo repartir el trabajo ? filas columnas rectángulos 64 1024 48 256 192 768 ¿Cómo sería con modelo cluster? ¿Eficiencia? Se adapta más al modelo de multiprocesadores: (memoria común)

pro. Par Fractales: El conjunto de Mandelbrot Compulsiva-14 Zk+1 = Zk 2 + Cj

pro. Par Fractales: El conjunto de Mandelbrot Compulsiva-14 Zk+1 = Zk 2 + Cj 1 int colores[256] 1 …. . . 2 ………. . 3 …………………. … 2 ……… 0 0 Columna 255 1. . 2. . 3……………. . 4 --- 9 --- 256 0…. . 462 ----- 3 Fila 1 6 7 ---- 55 0 ………………. … 20 -5 mandelsec. txt 255 512 colores [3+3+3] 1. . 2 ………. . . 3 …………………. . . 2………. . dibujar. Pixel (f, c, colores[f][c]) 2

pro. Par Fractales: El conjunto de Mandelbrot Compulsiva-15 Representaciones gráficas contenidas en una fórmula

pro. Par Fractales: El conjunto de Mandelbrot Compulsiva-15 Representaciones gráficas contenidas en una fórmula Conjunto de Mandelbrot {M} a +2 Imaginario Zk+1 = Zk 2 + Cj b Z 0 = 0 K = 0. . Cj = a + b i m / |Zm| > 2 Cj {M} Condición de divergencia 0 Cj {M} diverge Zm => Color(m) ? Cj {M} no diverge => Negro -2 -2 0 Real +2 K = 0. . N => # Colores a utilizar

pro. Par Fractales: El conjunto de Mandelbrot Compulsiva-16 ¿Programa secuencial? 0 255 0 Filas

pro. Par Fractales: El conjunto de Mandelbrot Compulsiva-16 ¿Programa secuencial? 0 255 0 Filas Imaginario +2 Columnas Sea mapa. Pixel 256*256 y 512 colores for (f=0; f<256; f++) for (c=0; c<256; c++) { pixel. APunto(f, c, &a, &b); color = mandelbrot(a, b); dibujar. Pixel(f, c, color); } 0 255 -2 -2 0 Real +2

pro. Par Fractales: El conjunto de Mandelbrot Compulsiva-17 #define MAX_ITER = 512 900 x

pro. Par Fractales: El conjunto de Mandelbrot Compulsiva-17 #define MAX_ITER = 512 900 x 1270 int mandelbrot (double A, double B) { double X = 0. 0, Y = 0. 0; p colores seg t double XX, YY, distancia; 5 32768 60 1 m int i = 0; 6 262144 483 8 m do { 7 2092152 3911 1 h XX = X; 8 16777216 31212 9 h YY = Y; X = ((XX*XX) - (YY*YY)) + A; Y = (2. 0 * (XX*YY)) + B; i++; distancia = X*X + Y*Y; } while ((i < MAX_ITER) && (distancia <= 4. 0)); if (i == MAX_ITER) return 0; else return i; }

pro. Par Fractales: El conjunto de Mandelbrot Compulsiva-18 ¿ Paralelización ? 0 Filas maestro

pro. Par Fractales: El conjunto de Mandelbrot Compulsiva-18 ¿ Paralelización ? 0 Filas maestro ¿Necesario? e 1 e 2 e. N 0 Columnas e 1 ? e 4 e 7 a. Asignación estática de trabajos filas, columnas, cuadrantes 255 ¡ Ineficiente ! O(7. 763) 1*2*3* e 1 maestro O(1. 772. 374) 0** 1 300. O(127. 031) 0 1 8 239. . e 7 e 4 255

pro. Par Fractales: El conjunto de Mandelbrot Compulsiva-19 fila. Ini col. Ini fila. Fin

pro. Par Fractales: El conjunto de Mandelbrot Compulsiva-19 fila. Ini col. Ini fila. Fin col. Fin = = ((yo-1) fila. Ini col. Ini % / + + (int) sqrt(num. Esclavos)) * filas. Cuadrante; (int) sqrt(num. Esclavos)) * cols. Cuadrante; filas. Cuadrante; cols. Cuadrante; // Calcular el cuadrante que me corresponde colores. Fila. Cuadrante[cols. Cuadrante+1] = col. Ini; for (f=fila. Ini; f<fila. Fin; f++) { colores. Fila. Cuadrante[cols. Cuadrante] = f; cc = 0; for (c=col. Ini; c<col. Fin; c++) { plano. Pixel. APunto (f, c, &X, &Y); colores. Fila. Cuadrante[cc++] = mandelbrot (X, Y); } MPI_Send (colores. Fila. Cuadrante, cols. Cuadrante+2, MPI_INT, 0, 1, MPI_COMM_WORLD); } PC 1 Ventana de 912 x 1264 #Cores Tiempo Aceleración Eficiencia 1 55: 945 0, 91 4 15: 419 3, 63 0, 25 16 13: 899 4, 03

pro. Par Fractales: El conjunto de Mandelbrot Compulsiva-20 Ver video

pro. Par Fractales: El conjunto de Mandelbrot Compulsiva-20 Ver video

pro. Par Fractales: El conjunto de Mandelbrot Compulsiva-21 b. Asignación dinámica de trabajos Granja

pro. Par Fractales: El conjunto de Mandelbrot Compulsiva-21 b. Asignación dinámica de trabajos Granja de procesadores 0 0 Columna 255 O( --- ) 0 Fila 568 24295 60963 89130 1 e 2 maestro 255 {Trabajos pendientes}* ¿pixels, filas, cols, . . ? 20122 568 ¿Otras formas de repartir? 4 2 3 e 4

pro. Par Los métodos de Monte Carlo Compulsiva-22 • Idea: Uso de números aleatorios

pro. Par Los métodos de Monte Carlo Compulsiva-22 • Idea: Uso de números aleatorios – Casino de Monte Carlo • Orígenes: 1944 – Stan Ulaw y Von. Newmann – Bomba atómica • Aplicaciones: Ø Diseño de reactores nucleares Ø Ø Ø Ø Cromo dinámica cuántica Simular aleatoriedad Radioterapia contra el cáncer de los procesos Densidad y flujo de tráfico físicos, térmicos, … Evolución estelar Econometría Pronóstico del índice de la bolsa Prospecciones en explotaciones petrolíferas Diseño de VLSI Física de materiales Ecología Criptografía Valoración de cartera de valores Programas de ordenador Métodos cuantitativos de organización industrial

pro. Par Los métodos de Monte Carlo Compulsiva-23 Se basan en la utilización de

pro. Par Los métodos de Monte Carlo Compulsiva-23 Se basan en la utilización de números aleatorios: Ejemplo 1 => 1991 2. 000 millones de cifras www. elconfidencial. com/tecnologia/2016 -04 -15/ superordenador-pi-informatica_1184096/

pro. Par Los métodos de Monte Carlo Compulsiva-24 Se basan en la utilización de

pro. Par Los métodos de Monte Carlo Compulsiva-24 Se basan en la utilización de números aleatorios: Ejemplo 1 => 6, 4 Diámetro = 2 r Perímetro = 2 r 20, 6 = 20, 6 / 6, 4 = 3, 21875 ? Papiro de Rhind – 1. 650 ac = 3, 1605

pro. Par Los métodos de Monte Carlo Compulsiva-25 Se basan en la utilización de

pro. Par Los métodos de Monte Carlo Compulsiva-25 Se basan en la utilización de números aleatorios: Ejemplo 1 => Círculo de radio 1 inscrito en cuadrado de lado 2 2 Área del círculo = Área del cuadrado = 4 ¿ /4? 1 ¿ / 4 = 785 / 1. 000 => = 3, 14 ? 2 Aquí quedan 785 Tiro 1. 000 pelotitas

pro. Par Los métodos de Monte Carlo Compulsiva-26 Se basan en la utilización de

pro. Par Los métodos de Monte Carlo Compulsiva-26 Se basan en la utilización de números aleatorios: Ejemplo 1 => Círculo de radio 1 inscrito en cuadrado de lado 2 2 Área del círculo = Área del cuadrado = 4 ¿ /4? 1 2 ¿M? Suficientemente grande en. Circulo = 0; for (i=0; i<M; i++) { x = aleatorio(0. 0, 1. 0); y = aleatorio(0. 0, 1. 0); if ((x*x + y*y)<=1. 0) en. Circulo++; } PI = (4. 0 * en. Circulo) / (double) M);

pro. Par Los métodos de Monte Carlo Compulsiva-27 ¿ Paralelización ? maestro Cada esclavo

pro. Par Los métodos de Monte Carlo Compulsiva-27 ¿ Paralelización ? maestro Cada esclavo computa: e 1 e 2 e. N M/N puntos aleatorios ¡ Todos los esclavos calculan lo mismo ! Generador de aleatorios Pensar en mecanismos más eficientes

pro. Par Los métodos de Monte Carlo Compulsiva-28 • Generación secuencial de números aleatorios:

pro. Par Los métodos de Monte Carlo Compulsiva-28 • Generación secuencial de números aleatorios: Xi+1 = (a. Xi + c) mod m a = 16. 807 m = 231 -1 c=0 Xi = (Xi-63 Θ Xi-127) mod 231 http: //sprng. cs. fsu. edu/ • Generación paralela de números aleatorios: (sean 4 procesos) X 0 X 1 X 2 X 3 X 4 X 5 X 6 X 7 Xi+4 = (AXi + C) mod m P 0 P 1 P 2 P 3 A = a 4 C = c(a 3+a 2+a 1+a 0) mod m

pro. Par Los métodos de Monte Carlo Compulsiva-29 Otra forma de calcular mediante una

pro. Par Los métodos de Monte Carlo Compulsiva-29 Otra forma de calcular mediante una integral (Sumatorio) y=F(x) 1 Área del semicírculo = /4 y 1 0 1 x 1 1 -x 2 dx 1 N F(xr) (1 - 0) N r=1 Xr => Números aleatorios [0. . 1]

pro. Par Los métodos de Monte Carlo Compulsiva-30 Otra forma de calcular mediante una

pro. Par Los métodos de Monte Carlo Compulsiva-30 Otra forma de calcular mediante una integral (Sumatorio) Fx = 0. 0; for (i=1; i<M; i++) { x = (double) random() / (double) RAND_MAX; fx = sqrt (1. 0 – x*x); Fx + = fx; } PI = (Fx / (double) M) * 4. 0; M Error Moneda 100. 000 0, 000104 1. 000 0, 000068 10. 000 0, 000463 100. 000 0, 000105 1. 000 0, 000011 Error Integral 0, 000021 0, 000024 0, 000010 0, 000017 0, 000029 FIN