proPar Curso 18/19 5 3 2, 3, 2 2, 2 4 Computadores Paralelos

Slides:



Advertisements
Presentaciones similares
Solución de ecuaciones no lineales
Advertisements

PRIMITIVAS DE SALIDA Curso de graficación I.
Introducción al diseño gráfico
Introducción al análisis de algoritmos
Herramientas de Diseño
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento.
ELABORACIÓN DE DOC. ELECTRÓNICOS UTILIZANDO SOFTWARE DE APLICACIÓN.
ProParCurso 14/15 1Computadores Paralelos 2Programación basada en paso de mensajes 3Técnicas básicas de programación paralela Compulsiva, Divide y Vencerás,
Graficación IA7200-T Algoritmos Clásicos.
Métodos de integración de Montecarlo: Reciben este nombre porque se basan en la generación de números aleatorios. Así, si, por ejemplo quiséramos calcular.
ProParCurso 14/15 1Computadores Paralelos 2Programación basada en paso de mensajes 3Técnicas básicas de programación paralela Compulsiva, Divide y Vencerás,
Oscar F. Bedoya L. Fundamentos de análisis y diseño de algoritmos.
MATRICES.
ALGORITMOS PARALELOS DE MULTIPLICACIÓN DE MATRICES
Formatos y Extensiones Presentado por: Leandro Aguilera Sonia Santamaría German Castañeda Presentado a: Yamid Solano Colegio Departamental Ubalá Asignatura.
Segundo periodo. Técnicas multimediales Profesora : Laura caballero Estudiante : luisa Fernanda Rodríguez IET ciudad Ibagué Curso :10.3 Año : 2013.
ANÁLISIS ESTADÍSTICO de los RESULTADOS DEL AJUSTE
Aspectos básicos de la computación paralela. Tipos de computacion paralela.
1 Computación Gráfica (Algunos Fundamentos) Universidad de los Andes Demián Gutierrez Octubre 2011.
1 Primer Semana del Posgrado del ITLP Efectos de los Parámetros Migratorios en Algoritmos Genéticos Distribuidos Marco Antonio Castro Liera
César Gómez Martín Supercomputación “El alma está en el cerebro”
INFORMATICA II MAESTRA PAULINA RUIZ SOSA TEMADIAGRAMAS DE FLUJO.
TUTORIA 1 Lógica para la Computación TUTORIA 1 Facultad de Ciencias Naturales y Matemáticas.
Funciones y gráficas Daniel Ordoñez Aguirre Licenciatura EN DERECHO
Teorema de Jordan 7 de julio de 2006.
ÁREAS Y PERÍMETROS DE LOS POLÍGONOS ELEMENTALES
¿Cómo almacenar grandes cantidades de datos?
MODOS DE COLOR EN LA IMAGEN DIGITAL.
INVESTIGACIÓN DE OPERACIONES
FUNCIONES LINEALES Una función lineal es una función cuyo dominio son todos los números reales, cuyo codominio también todos los números reales, y cuya.
UNIVERSIDAD ICEP INTELIGENCIA ARTIFICIAL INGENIERÍA EN SISTEMAS COMPUTACIONALES Martes, 24 de Octubre de 2017 REPRESENTACIÓN DEL CONOCIMIENTO Y RAZONAMIENTO.
“Dadme un punto de apoyo y moveré el mundo”
Tema 6. Conceptos básicos de programación (Clase 2)
Sonia Rueda Herencia y Polimorfismo
ELEMENTOS BASICOS DE UNA PRESENTACION
Índice temático 2.1 Análisis de problemas. 2.2 Representación de algoritmos: gráfica y pseudocódigo. 2.3 Diseño de algoritmos aplicados a problemas 2.4.
Tema 7. Introducción a lenguaje de programación Visual Basic (clase 1)
CONCEPTOS PRELIMINARES (Cont)
UNIVERSIDAD PEDAGOGICA DE EL SALVADOR Catedra: Informatica Educativa Catedratica: Licda. Serpas Alumna: Sara Cardoza.
LAS MATEMÁTICAS ÁREAS DE FIGURAS GEOMÉTRICAS “ CUADRADO, RECTÁNGULO, TRIÁNGULO Y EL ROMBO.
Integración y diferenciación gráfica
ÁREAS Y PERÍMETROS DE LOS CUERPOS ELEMENTALES
ÁREAS Y PERÍMETROS DE LOS CUERPOS ELEMENTALES TRIÁNGULO CUADRADO RECTÁNGULO ROMBO TRAPECIO CIRCUNFERENCIA CÍRCULO.
ÁREAS Y PERÍMETROS DE LOS CUERPOS ELEMENTALES TRIÁNGULO CUADRADO RECTÁNGULO ROMBO TRAPECIO CIRCUNFERENCIA CÍRCULO.
ÁREAS Y PERÍMETROS DE LOS CUERPOS ELEMENTALES
ABSTRACCION DE DATOS   Estructura de Datos Básicos: En programación una estructurad de datos, es una forma particular de organizar datos en una computadora.
Message Passing Interface
ÁREAS Y PERÍMETROS DE LOS POLÍGONOS ELEMENTALES
H = 6 cm b = 10 cm Como queremos calcular el área del rombo., vamos a pensar cómo lo podríamos hacer. 1 - Al mirar la figura, podemos ver cuatro rectángulos.
ÁREAS Y PERÍMETROS DE LOS CUERPOS ELEMENTALES
proPar Curso 18/ , 3, 2 2, 2 4 Computadores Paralelos
proPar Curso 18/19 4 2, 3, 2 2, 4 3 Computadores Paralelos
proPar Curso 18/ , 3, 2 2, 4 3 Computadores Paralelos
Programa de Prácticas Entorno Las prácticas Planificación
ÁREAS Y PERÍMETROS DE LOS CUERPOS ELEMENTALES
INTRODUCCIÓN A LA PROGRAMACIÓN ABRAHAM SOPLA MASLUCÁN MAESTRO EN CIENCIAS DE LA COMPUTACIÓN INSTITUTO TECNOLÓGICO DE MONTERREY.
Procesamiento Paralelo Curso 18/19
Procesamiento Paralelo Curso 17/18
proPar Curso 18/ , 3, 2 2, 4 3 Computadores Paralelos
EVOLUCIÓN DEL SOFTWARE  ¿Qué es software?  Es un producto y, al mismo tiempo el vehículo para entregarlo (Pressman 2002)  El software ha sufrido cambios.
Tema 6. Conceptos básicos de programación (Clase 2)
Recursividad 1 Análisis de algoritmos. Matrushka La Matrushka es una artesanía tradicional rusa. Es una muñeca de madera que contiene otra muñeca más.
Tema 7. Introducción a lenguaje de programación Visual Basic (clase 1)
Indicaciones para realización de las diapositivas Digitar el contenido Modificar el diseño de todas las diapositivas, elija un tema. Insertar imágenes.
CURSO DE LENGUAJE Y HERRAMIENTAS INFORMATICAS INTRODUCCIÓN A RECURSOS MULTIMEDIA Instructor: Daniel Esteban Burbano Salas.
Tratamientos secuenciales I
Procesamiento Digital de Imágenes. Etapas del procesamiento de imágenes Entrenamiento Captura Pre-procesamiento Segmentación Extracción de características.
MÈTODO DE INTEGRACIÓN “EULER”. MÉTODO DE EULER La idea del método de Euler es muy sencilla y está basada en el significado geométrico de la derivada de.
Apuntes de Matemáticas 3º ESO
EVOLUCIÓN DEL SOFTWARE  ¿Qué es software?  Es un producto y, al mismo tiempo el vehículo para entregarlo (Pressman 2002)  El software ha sufrido cambios.
Transcripción de la presentación:

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

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

proPar Computación paralela ideal Compulsiva-3 entrada salida Independencia total Equilibrio de carga perfecto e1 e2 eN maestro Quasi ideal Maestro reparte trabajos y recolecta resultados Los esclavos no se comunican entre sí Poca comunicación frente a cómputo

proPar Transformación geométrica de imágenes Compulsiva-4 Color: RGB Tonalidad Grises Digital: RamVideo | mapaPixels 512 ppm y pgm Muchos formatos: jpg, giff, tiff, bmp, ... dibujarPixel(f,c,color) Construir o manipular jasper http://netpbm.sourceforge.net/

proPar Transformación geométrica de imágenes Compulsiva-5 17” Filas 1.280 Cols 1.024 Pixels 1.310.720 Memoria 3,75MB 7.860 4.320 33.955.200 97,15MB ? 20” Filas 1.920 Cols 1.080 Pixels 2.073.600 Memoria 5,93MB ? 4.294.967.295 pixels Memoria 3GB

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

proPar Transformación geométrica de imágenes Compulsiva-7 Girar no es tan fácil 30º 512x512

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

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

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

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

proPar Transformación geométrica de imágenes Compulsiva-12 Un filtrado es más facil

proPar 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 ? 768 64 filas 48 1024 columnas 192 256 rectángulos ¿Cómo sería con modelo cluster? ¿Eficiencia? Se adapta más al modelo de multiprocesadores: (memoria común)

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

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

proPar Fractales: El conjunto de Mandelbrot Compulsiva-16 ¿Programa secuencial? Sea mapaPixel 256*256 y 512 colores +2 -2 Real Imaginario 255 Columnas Filas for (f=0; f<256; f++) for (c=0; c<256; c++) { pixelAPunto(f,c,&a,&b); color = mandelbrot(a,b); dibujarPixel(f,c,color); }

proPar Fractales: El conjunto de Mandelbrot Compulsiva-17 #define MAX_ITER = 256 int mandelbrot (double A, double B) { double X = 0.0, Y = 0.0; double XX, YY, distancia; int i = 0; do { XX = X; 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; } colores p seg t 32768 5 60 1m 262144 6 483 8m 2092152 7 3911 1h 16777216 8 31212 9h 900x1270

proPar Fractales: El conjunto de Mandelbrot Compulsiva-18 ¿ Paralelización ? 255 Columnas 255 Filas ¡ Ineficiente ! e1 maestro e4 e7 e1 e2 eN maestro ¿Necesario? ? Asignación estática de trabajos filas, columnas, cuadrantes O(7.763) O(127.031) O(1.772.374) 1*2*3* 0 1 8 239 .. 0** 1 300 .

proPar Fractales: El conjunto de Mandelbrot Compulsiva-19 filaIni = ((yo-1) % (int) sqrt(numEsclavos)) * filasCuadrante; colIni = ((yo-1) / (int) sqrt(numEsclavos)) * colsCuadrante; filaFin = filaIni + filasCuadrante; colFin = colIni + colsCuadrante; // Calcular el cuadrante que me corresponde coloresFilaCuadrante[colsCuadrante+1] = colIni; for (f=filaIni; f<filaFin; f++) { coloresFilaCuadrante[colsCuadrante] = f; cc = 0; for (c=colIni; c<colFin; c++) { planoPixelAPunto (f, c, &X, &Y); coloresFilaCuadrante[cc++] = mandelbrot (X, Y); } MPI_Send (coloresFilaCuadrante, colsCuadrante+2, MPI_INT, 0, 1, MPI_COMM_WORLD); #Cores 1 4 16 Tiempo 55:945 15:419 13:899 Aceleración 3,63 4,03 Eficiencia 0,91 0,25 PC1 Ventana de 912x1264

proPar Fractales: El conjunto de Mandelbrot Compulsiva-20 Ver video

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

proPar Los métodos de Monte Carlo Compulsiva-22 Idea: Uso de números aleatorios – Casino de Monte Carlo Orígenes: 1944 – Stan Ulaw y VonNewmann – Bomba atómica Aplicaciones: Diseño de reactores nucleares Cromo dinámica cuántica Radioterapia contra el cáncer Densidad y flujo de tráfico 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 Simular aleatoriedad de los procesos físicos, térmicos, …

proPar Los métodos de Monte Carlo Compulsiva-23 Se basan en la utilización de números aleatorios: Ejemplo1 =>  1991  2.000 millones de cifras www.elconfidencial.com/tecnologia/2016-04-15/ superordenador-pi-informatica_1184096/

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

proPar Los métodos de Monte Carlo Compulsiva-25 Se basan en la utilización de números aleatorios: Ejemplo1 =>  Círculo de radio 1 inscrito en cuadrado de lado 2 2 1 Área del círculo =  Área del cuadrado = 4 ¿  / 4 ? enCirculo = 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) enCirculo++; } PI = (4.0 * enCirculo) / (double) M); ¿M? Suficientemente grande

proPar Los métodos de Monte Carlo Compulsiva-26 ¿ Paralelización ? maestro Cada esclavo computa: M/N puntos aleatorios e1 e2 eN ¡ Todos los esclavos calculan lo mismo ! Generador de aleatorios Pensar en mecanismos más eficientes

proPar Los métodos de Monte Carlo Compulsiva-27 Generación secuencial de números aleatorios: a = 16.807 m = 231-1 c = 0 Xi+1 = (aXi + c) mod m Xi = (Xi-63 Θ Xi-127) mod 231 http://sprng.cs.fsu.edu/ Generación paralela de números aleatorios: (sean 4 procesos) X0 X1 X2 X3 X4 X5 X6 X7 Xi+4 = (AXi + C) mod m A = a4 C = c(a3+a2+a1+a0) mod m P0 P1 P2 P3

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

proPar Los métodos de Monte Carlo Compulsiva-29 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 100.000 1.000.000 10.000.000 100.000.000 1.000.000.000 Error Moneda Error Integral 0,000104 0,000068 0,000463 0,000105 0,000011 0,000021 0,000024 0,000010 0,000017 0,000029 FIN