algoritmos paralelos

10
Algoritmos Paralelos Otro modelo de computación es cuando tenemos más de un procesador, digamos p procesadores. En este caso, la memoria puede ser compartida o distribuida. Memoria : Compartida Misma máquina distribuida Distribuida Distintas máquinas Análisis y Diseño de Algoritmos

Upload: giles

Post on 11-Jan-2016

35 views

Category:

Documents


0 download

DESCRIPTION

Análisis y Diseño de Algoritmos. Algoritmos Paralelos Otro modelo de computación es cuando tenemos más de un procesador, digamos p procesadores. En este caso, la memoria puede ser compartida o distribuida. Memoria : Compartida Misma máquina distribuida - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Algoritmos Paralelos

Algoritmos Paralelos

Otro modelo de computación es cuando tenemos más de un procesador, digamos p procesadores. En este caso, la memoria puede ser compartida o distribuida.

Memoria : Compartida Misma máquina

distribuida

Distribuida Distintas máquinas

Análisis y Diseño de Algoritmos

Page 2: Algoritmos Paralelos

– En general, cuando se trata de máquinas distribuidas lo óptimo es minimizar el número de mensajes.

Objetivo de un buen algoritmo paralelo:

– Paralelizar al máximo Tp* =T1/Tp p: procesadores

Esto no siempre es posible, así que se define :

– SpeedUp= T1/Tp ≤ p ; Factor de paralelización

– La idea es poder balancear la carga en los procesadores (que todos hagan el mismo trabajo)

Análisis y Diseño de Algoritmos

Page 3: Algoritmos Paralelos

Sin embargo, el poder obtener un buen balance de carga es una tarea compleja, esto requiere de una buena a) sincronización y coordinación.

En general podríamos decir que el tiempo en paralelo, está conformado de la siguiente manera:

Tiempo = Tiempo de Procesamiento + Tiempo de Coord.

Paralelo Simultaneo Sincronización

Análisis y Diseño de Algoritmos

Page 4: Algoritmos Paralelos

En el tiempo de sincronización y coordinación va implicado el tamaño y número de mensajes que se envían los procesadores entre si, en un modelo distribuido.

Análisis y Diseño de Algoritmos

Page 5: Algoritmos Paralelos

El paralelismo está determinado por las estrategias de paralelización, el compilador y el sistema operativo (por ejemplo : procesos, hebras (threads)).

Análisis y Diseño de Algoritmos

Page 6: Algoritmos Paralelos

Memoria Compartida

En este caso puede haber acceso concurrente de varios procesadores a un lugar de memoria para leer o escribir.

Es decir pueden haber varios procesadores escribiendo en la memoria, leer no es problema.

La lectura concurrente en general no es un problema.

Análisis y Diseño de Algoritmos

Page 7: Algoritmos Paralelos

a) Escritura Exclusiva: Sólo un procesador puede escribir al mismo tiempo. Una forma de resolver esto es utilizar semáforos cuando uno de los procesadores se encuentre escribiendo. Aquí el balance de carga es un problema, ya que existen procesadores esperando para poder escribir. Si todos escriben lo mismo no hay problema, el problema es cuando todos los procesadores escriben cosas diferentes.

Análisis y Diseño de Algoritmos

Page 8: Algoritmos Paralelos

b) Escritura Concurrente: Sólo uno tiene éxito al escribir. Este modelo se llama PRAM y dependiendo de la concurrencia tenemos:

• CREW PRAM (escritura exclusiva) Más usado• CRCW PRAM (escritura concurrente)• EREW (todo exclusivo)

Análisis y Diseño de Algoritmos

Page 9: Algoritmos Paralelos

Problema: Buscar una palabra de largo m en un texto de largo n. Dividimos el texto en p partes, cada uno busca en su parte.

Este es un problema altamente paralelizable, lo que hacemos es dividir el texto en p pedazos y cada procesador busca en un texto de largo n/p+m-1 ( esto es, por si la palabra cae en 2 pedazos).

Análisis y Diseño de Algoritmos

Page 10: Algoritmos Paralelos

Tp=T1(n/p+m-1)= k*(n/p+m)(usamos un algoritmo lineal con largo k, en el peor

caso)

Por lo que el factor de paralelización:

SpeedUp: kn/k*(n/p+m) =p/(1+(mp)/n =p(1-(mp)/n), donde mp/n es menor que 1

Análisis y Diseño de Algoritmos