Está en la página 1de 2

ANALISIS DE ALGORITMOS PARALELOS

Un algoritmo paralelo, en oposicin a los algoritmos clsicos o algoritmos secuenciales, es un algoritmo que puede ser ejecutado por partes en el mismo instante de tiempo por varias unidades de procesamiento, para finalmente unir todas las partes y obtener el resultado correcto. Conjunto de tareas que interaccionan mediante el intercambio de mensajes a travs de canales. Tarea: programa + procesador + puertos de comunicacin Cuando nosotros estamos trabajando con algoritmos paralelos tenemos factores importantes para analizar como son: eficiencia, tiempo de ejecucin, nmero de procesos. Un algoritmo secuencial es evaluado por su tiempo de ejecucin como funcin del tamao del problema. El comportamiento asinttico del tiempo de ejecucin es idntico en cualquier plataforma secuencial. En cambio, el tiempo de ejecucin de un programa paralelo depende del tamao del problema, del nmero de procesadores y de ciertos parmetros de comunicacin de la plataforma. Es por ello que los algoritmos paralelos deben ser evaluados y analizados teniendo en cuenta tambin la plataforma. Tiempo de ejecucin Es el tamao del mismo T(n) considerando el nmero de procesos que enviamos a ejecutar. El tiempo total de ejecucin t(n) = t (1) + t (2) + t (3)+ + t(n)

Si nos olvidamos de valores constantes dependientes del sistema (por ejemplo el coste de una operacin aritmtica en la mquina donde ejecutamos el programa) podemos considerar el tiempo funcin del tamao de la entrada: t(n). El tiempo desde que empieza la ejecucin del programa hasta que acaba. Tiempo de ejecucin paralelo En un programa paralelo la estimacin del tiempo es ms compleja. Adems de los parmetros anteriores, depende de: nmero de procesadores t(n,p), de la manera en que estn conectados entre s (topologa) y con los mdulos de memoria (memoria compartida o distribuida) Es el tiempo transcurrido desde que empieza la ejecucin del primero de los procesadores hasta que acaba el ltimo de ellos.

Ejemplos de paralelizacin Problemas a paralelizar: Procesamiento de imgenes Problema: aplicar un filtro f (x, y, c) a una imagen dada

La aplicacin del filtro a un pixel no depende de los pixels vecinos Descomposicin de dominios Divisin equitativa de la imagen Nula comunicacin entre procesos La estrategia de descomposicin depende del lenguaje (Fortran o C)

Cada proceso o tarea realiza: j1 = Mi_Primera_Columna j2 = Mi_Ultima_Columna do j = j1 , j2 do i = 1, Numero_Pixels_en_i Color = Imagen (i,j) Imagen (i,j) = f(i,j, Color ) enddo enddo

También podría gustarte