analisis de algoritmos multihilo
TRANSCRIPT
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