Analisis de Algoritmos Multihilo

Post on 16-Feb-2017

499 views 2 download

Transcript of Analisis de Algoritmos Multihilo

Algoritmos Multihilo

Análisis

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

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

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

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

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

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∞

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∞

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.

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.

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.

Carrera Determinística

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

Carrera Determinística