Analisis de Algoritmos Multihilo

14
Algoritmos Multihilo Análisis

Transcript of Analisis de Algoritmos Multihilo

Page 1: Analisis de Algoritmos Multihilo

Algoritmos Multihilo

Análisis

Page 2: Analisis de Algoritmos Multihilo

Tiempo de Ejecución

• El trabajo o (work) de un cálculo multihilo es el tiempo total de ejecución de todas instrucciones en un solo procesador.• Work = suma del tiempo que se toma

cada strand• Es igual al número de vertices en el DAG

Page 3: Analisis de Algoritmos Multihilo

Tiempo de Ejecución

• El span es el tiempo más largo para ejecutar los strands a través de cualquier camino en el DAG computacional• Esto es el número de vértices en la

ruta crítica dentro del DAG

Page 4: Analisis de Algoritmos Multihilo

Tiempo de Ejecución

• Para P-Fib(4), tenemos• 17 vertices = 17 strands. • 8 vertices en el camino

más largo.

• Asumiendo que el tiempo de cada strand es 1 unidad de tiempo

• work = 17 u. tiempo• span = 8 u. tiempo

Page 5: Analisis de Algoritmos Multihilo

Tiempo de Ejecución

• El tiempo de ejecución no solo depende del work y el span, sino también de cuantos procesadores se tiene (P)

• El tiempo de ejecución en P procesadores se indica como:– T1 tiempo de ejecución en un solo procesador– TP tiempo de ejecución en P procesadores– T∞ tiempo de ejecución en infinitos procesadores

Page 6: Analisis de Algoritmos Multihilo

Ley de Work• En una computadora paralela ideal con P procesadores, que pueden

hacer P unidades de trabajo:

• Work = P1

• Así que, P*Tp >= T1

• La ley de Work es

»Tp >= T1/P

Page 7: Analisis de Algoritmos Multihilo

Ley de Span• Un computador ideal con P procesadores no puede correr más

rápido que una máquina con infinitos procesadores.• Sin embargo, una computadora con infinitos procesadores puede

emular una máquina con P procesadores, utilizando solamente P de sus procesadores.

• Por lo tanto:

–Tp >= T∞

Page 8: Analisis de Algoritmos Multihilo

Speedup y Paralelismo

• El speed up de un algoritmo en P procesadores está definido como T1 / Tp

• El paralelismo de un algoritmo está dado por T1 / T∞

Page 9: Analisis de Algoritmos Multihilo

Slackness (Holgura)

• La holgura (slackness) de un algoritmo multihilo ejecutado en una computadora paralela con P procesadores es la razón del paralelismo para P.

• Slackness = (T1 / T∞) / P

• Si el slackness es menor a 1, no podemos esperar lograr un speedup lineal.

Page 10: Analisis de Algoritmos Multihilo

Condiciones de Carrera

• Un algoritmo multihilo es deterministico si y solo si produce el mismo resultado a la misma entrada, sin importar como se ordenen sus instrucciones en tiempo de ejecución.

• Un algoritmo multihilo es no-deterministico si y solo si su comportamiento varia de corrida a corrida.

Page 11: Analisis de Algoritmos Multihilo

Condiciones de Carrera

• Una carrera determinística sucede cuando dos instrucciones lógicamente paralelas acceden a la misma posición de memoria y al menos una realiza una escritura.

Page 12: Analisis de Algoritmos Multihilo

Carrera Determinística

Page 13: Analisis de Algoritmos Multihilo

Carrera Determinística

• Cuando un proceso incrementa x, la operació no es indivisible, pero está formado por:1. Leer x de la memoria en uno de los

registros del procesador2. Incrementar el valor en el registro3. Escribir el valor en el registro de nuevo en

memoria

Page 14: Analisis de Algoritmos Multihilo

Carrera Determinística