Este documento describe las composiciones paralelas en informática. Explica que la composición paralela permite dividir grandes problemas en partes más pequeñas que pueden resolverse simultáneamente para mejorar la velocidad. También describe las leyes de Amdahl y Gustafsson que establecen los límites de la aceleración que se puede lograr mediante la computación paralela. Finalmente, presenta una extensión del lenguaje DynAlloy para definir acciones compuestas mediante la composición paralela de acciones.
1. E.A.E. DESARROLLO DE SOFTWARE
TRABAJO PRESENTADO POR:
DIEGO FERNANDO ORTÍZ RODRIGUÉZ
2. QUE SON COMPOSICIONES PARALELAS EN INFORMATICA
La composición Paralela, es muy importante actualmente, al permite mejorar la
velocidad en la solución de grandes problemas, de modo que se mejora el
rendimiento de computo.
La composición paralela es una forma de cómputo en la que
muchas instrucciones se ejecutan simultáneamente, operando sobre el principio
de que problemas grandes, a menudo se pueden dividir en unos más pequeños,
que luego son resueltos simultáneamente (en paralelo). Hay varias formas
diferentes de computación paralela: paralelismo a nivel de bit, paralelismo a nivel
de instrucción, paralelismo de datos y paralelismo de tareas. El paralelismo se ha
empleado durante muchos años, sobre todo en la computación de altas
prestaciones, pero el interés en ella ha crecido últimamente debido a las
limitaciones físicas que impiden el aumento de la frecuencia. Como el consumo de
este se constituye una preocupación en los últimos años. la computación en
paralelo se ha convertido en el paradigma dominante en la arquitectura de
computadores, principalmente en forma de procesadores multinúcleo.
3. La supercomputadora Cray-2 fue la más rápida del mundo desde 1985
hasta 1989.
La supercomputadora paralela Blue Gene de IBM.
4. Versiones de las composiciones en computadores
• Las computadoras paralelas pueden clasificarse según el nivel de paralelismo que
admite su hardware: equipos con procesadores multinúcleo y multi-procesador que
tienen múltiples elementos de procesamiento dentro de una sola máquina y
los clústeres, MPPS y grids que utilizan varios equipos para trabajar en la misma
tarea. Muchas veces, para acelerar tareas específicas, se utilizan arquitecturas
especializadas de computación en paralelo junto a procesadores tradicionales.
• Los programas informáticos paralelos son más difíciles de escribir que los
secuenciales, porque la concurrencia introduce nuevos tipos de errores de software,
siendo las condiciones de carrera los más comunes. La comunicación
y sincronización entre diferentes subtareas son algunos de los mayores obstáculos
para obtener un buen rendimiento del programa paralelo.
• La máxima aceleración posible de un programa como resultado de la paralelización
se conoce como la ley de Amdahl
5.
6. la ley de amdahl
La Ley de Amdahl, llamada así por el arquitecto de ordenadores Gene
Amdahl, se usa para averiguar la mejora máxima de un sistema
cuando solo una parte de éste es mejorado. Establece que:
La mejora obtenida en el rendimiento de un sistema debido a la
alteración de uno de sus componentes está limitada por la fracción de
tiempo que se utiliza dicho componente.
La fórmula original de la ley de Amdahl es la siguiente
:
7. Siendo :
F_M = tiempo de ejecución mejorado y
F_A = tiempo de ejecución antiguo.
Esta fórmula se puede reescribir usando la definición del
incremento de la velocidad que viene dado por , por lo que la
fórmula anterior se puede reescribir como:
8. Siendo :
•A ,es la aceleración o ganancia en velocidad conseguida en el sistema completo
debido a la mejora de uno de sus subsistemas.
•A_M , es el factor de mejora que se ha introducido en el subsistema mejorado.
•F_M, es la fracción de tiempo que el sistema utiliza el subsistema mejorado.
• Por ejemplo, si en un programa de ordenador el tiempo de ejecución de un cierto
algoritmo supone un 30% del tiempo de ejecución total del programa, y
conseguimos hacer que este algoritmos se ejecute en la mitad de tiempo se
tendrá:
1. 2. 3.
9. Es decir, se ha mejorado la velocidad de ejecución
del programa en un factor de 1,18. La ley de
Amdahl se mide en unidades genéricas, es decir
los resultados no son porcentajes, ni unidades de
tiempo.
La ley de Amdahl se puede interpretar de manera
más técnica, pero en términos simples, significa
que es el algoritmo el que decide la mejora de
velocidad, no el número de procesadores.
Finalmente se llega a un momento que no se puede
paralelizar más el algoritmo.
10. Representación gráfica de la ley de Amdahl. La mejora en la
velocidad de ejecución de un programa como resultado de la
paralelización está limitada por la porción del programa que no se
puede paralelizar. Por ejemplo, si el 10% del programa no puede
paralelizarse, el máximo teórico de aceleración utilizando la
computación en paralelo sería de 10x no importa cuántos
procesadores se utilicen.
11. La computación en paralelo, por el contrario, utiliza simultáneamente múltiples elementos de
procesamiento para resolver un problema. Esto se logra mediante la división del problema en
partes independientes de modo que cada elemento de procesamiento pueda ejecutar su parte del
algoritmo de manera simultánea con los otros. Los elementos de procesamiento son diversos e
incluyen recursos tales como una computadora con múltiples procesadores, varios ordenadores
en red, hardware especializado, o cualquier combinación de los anteriores.
El aumento de la frecuencia fue la razón dominante de las mejoras en el rendimiento de las
computadoras desde mediados de 1980 hasta el año 2004. El tiempo de ejecución de un programa
es igual al número de instrucciones multiplicado por el tiempo promedio por instrucción.
Manteniendo todo lo demás constante, el aumento de la frecuencia de reloj reduce el tiempo medio
que tarda en ejecutarse una instrucción, por tanto un aumento en la frecuencia reduce el tiempo de
ejecución de los programas de cómputo. Sin embargo, el consumo de energía de un chip está
dada por la ecuación P = C × V2 × F, donde P es la potencia, C es el cambio
de capacitancia por ciclo de reloj —proporcional al número de transistores cuyas entradas
cambian—, V es la tensión, y F es la frecuencia del procesador (ciclos por segundo).8 Un aumento
en la frecuencia aumenta la cantidad de energía utilizada en un procesador. El aumento
del consumo de energía del procesador llevó a Intel en mayo del 2004 a la cancelación de sus
procesadores Tejas y Jayhawk, este hecho generalmente se cita como el fin del escalado de
frecuencia como el paradigma dominante de arquitectura de computadores.
La ley de Moore es la observación empírica de que la densidad de transistores en un
microprocesador se duplica cada 18 a 24 meses. A pesar de los problemas de consumo de energía,
y las repetidas predicciones de su fin, la ley de Moore sigue vigente. Con el fin del aumento de la
frecuencia, estos transistores adicionales que ya no se utilizan para el aumento de la frecuencia se
pueden utilizar para añadir hardware adicional que permita la computación paralela.
12.
13. Ley de gustafsson
Idealmente, la aceleración a partir de la paralelización es lineal, doblar el número de elementos de
procesamiento debe reducir a la mitad el tiempo de ejecución y doblarlo por segunda vez debe
nuevamente reducir el tiempo a la mitad. Sin embargo, muy pocos algoritmos paralelos logran una
aceleración óptima. La mayoría tienen una aceleración casi lineal para un pequeño número de
elementos de procesamiento, y pasa a ser constante para un gran número de elementos de
procesamiento.
La aceleración potencial de un algoritmo en una plataforma de cómputo en paralelo está dada por
la ley de Amdahl, formulada originalmente por Gene Amdahl en la década de 1960.Esta señala que
una pequeña porción del programa que no pueda paralelizarse va a limitar la aceleración que se
logra con la paralelización. Los programas que resuelven problemas matemáticos o ingenieriles
típicamente consisten en varias partes paralelizables y varias no paralelizables (secuenciales).
Si es la fracción de tiempo que un programa gasta en partes no paralelizables.
14.
15. Continuación entre la ley de DynAlloy y la ley de Gustafsson
Luego es la máxima aceleración que se puede alcanzar con la paralelización del
programa. Si la parte secuencial del programa abarca el 10% del tiempo de
ejecución, se puede obtener no más de 10× de aceleración, independientemente
de cuántos procesadores se añadan. Esto pone un límite superior a la utilidad de
añadir más unidades de ejecución paralelas. «Cuando una tarea no puede
divididirse debido a las limitaciones secuenciales, la aplicación de un mayor
esfuerzo no tiene efecto sobre la programación. La gestación de un niño toma
nueve meses, no importa cuántas mujeres se le asigne».
La ley de Gustafsson es otra ley en computación que está en estrecha relación
con la ley de Amdahl. Señala que el aumento de velocidad con procesadores es
16.
17. • Ambas leyes asumen que el tiempo de
funcionamiento de la parte secuencial del
programa es independiente del número de
procesadores. La ley de Amdahl supone que todo
el problema es de tamaño fijo, por lo que la
cantidad total de trabajo que se hará en paralelo
también es independiente del número de
procesadores, mientras que la ley de Gustafsson
supone que la cantidad total de trabajo que se
hará en paralelo varía linealmente con el número
de procesadores.
18. COMPOSICIÓN DEL LENGUAJE DE DYNALLOY
En este artículo estudiamos una extensión del lenguaje
DynAlloy con un operador soporte para la definición de
acciones (expresables originalmente con funciones el Alloy),
acciones compuestas de composición paralela de acciones.
DynAlloy es una extensión al lenguaje de especificaciones
Alloy, con y aserciones de corrección parcial. El objetivo
principal de DynAlloy es incorporar a Alloy soporte para la
validación de propiedades de safety de ejecuciones de
sistemas.