pro Par Curso 1920 5 1 Computadores Paralelos
- Slides: 30
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 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 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: 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 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 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 512 30º Compulsiva-7
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º + filtro] 12 veces ¡ En 500 mseg y mal !
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º + 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 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 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 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 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 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 ¿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 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-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 – 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 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 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 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 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 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: 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 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 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
- Curso de mantenimiento de computadoras
- Par knosas pili stāsta mīts par
- Bac pro commerce par correspondance
- Organização de computadores
- Fundamentos de redes de computadores
- Rede de computadores
- Rede de computadores
- Computadores
- Arquitetura de computadores
- Redes de computadores
- Classificação dos computadores
- Organização e arquitetura de computadores
- Computadoras antiguas
- Stallings william comunicaciones y redes de computadores
- Execusist
- Ensamble y mantenimiento de computadores
- Algoritmo link state
- Redes de computadores
- The macro pro pro maxcharltonmacrumors
- Circulo polar sur
- Vectores paralelos
- Grafo dirigido
- Escrita de sinais
- Casca cilindrica
- Todos los paralelos
- Trapzio
- Coordenadas geográficas de honduras
- Cortes perpendiculares
- Qcorpo
- Algoritmos paralelos ejemplos
- Integral dupla