1 / 10

Algoritmos Paralelos

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

giles
Download Presentation

Algoritmos Paralelos

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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 Distribuida Distintas máquinas

  2. Análisis y Diseño de Algoritmos • 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)

  3. Análisis y Diseño de Algoritmos 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

  4. Análisis y Diseño de Algoritmos 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.

  5. Análisis y Diseño de Algoritmos El paralelismo está determinado por las estrategias de paralelización, el compilador y el sistema operativo (por ejemplo : procesos, hebras (threads)).

  6. Análisis y Diseño de Algoritmos 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.

  7. Análisis y Diseño de Algoritmos 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.

  8. Análisis y Diseño de Algoritmos 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)

  9. Análisis y Diseño de Algoritmos 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).

  10. Análisis y Diseño de Algoritmos 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

More Related