Ley de Amdahl, regla de Pollack, ley de Koomey… ¿qué son?

En un artículo previo ya introduje algo sobre la Ley de Moore y la Ley de Rock, además, también traté en otro la Dennard Scaling y otros términos como el Dark Silicon., e incluso la Ley de Gustafson. Como lo prometido es deuda y en aquellos artículos dejé pendiente introducir estos otros términos, aquí van las explicaciones de la Ley de Amdahl, la de Koomey, o la regla de Pollack.

Todas ellas, como es evidente, tienen que ver con la computación y la industria de los semiconductores. Y, pese a ser unas desconocidas para muchos, son más importantes de lo que imaginas…

¿Qué es la Ley de Amdahl?

Wafer de 5nm

La Ley de Amdahl lleva el nombre de Gene Amdahl, que la formuló allá por el 1967. El objetivo era conocer la mejora máxima de los sistemas computacionales cuando solo se mejoraba una parte de estos sistemas, como es frecuente que ocurra en esta industria habitualmente.

Por definición: «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«. Y la fórmula es:

Tm = Ta · [ ( 1 – Fm ) + Fm / Am ]

Siendo Tm el tiempo de ejecución del nuevo sistema (una vez se ha implementado la mejora del subsistema), Ta es el tiempo de ejecución del sistema antiguo (antes de la mejora del subsistema), Fm es la fracción de tiempo que el sistema usa el subsistema mejorado, y Am es el factor de mejora que se ha introducido en el subsistema mejorado.

Esta ley choca de forma directa con la Ley de Moore. Por un lado, la de Moore empuja a un crecimiento constante de los chips, mientras la de Amdahl apunta hacia alternativas que se pueden implementar sin aumentos considerables de la complejidad.

Según la Ley de Amdahl, la ganancia de rendimiento (también llamada aceleración o speedup), que se consigue mejorando un recurso de cun computador en un factor p está limitada por:

Sp = Rendimiento (p) / Rendimiento original

Sp = TCPU_original / TCPU_mejorada

Sp ≤ p / 1 + f (p – 1)

Donde f es la proporción de tiempo en que dicha mejora no se usa en las aplicaciones que se ejecutan en un computador. De aquí se deduce que por mucho que mejore un recurso, es decir, por mucho que se incremente p, la mejora no sería mejor que 1/f.

Cuando se mejora un cuello de botella de una arquitectura, f se hace más pequeña y por tanto la ganancia es más elevada. En cambio, si las aplicaciones hacen escaso uso de esa mejora, f será próxima a 1, y la ganancia baja.

Existen 8 ideas claves para la mejora del rendimiento de un computador: mejora en la integración, mejoras del diseño, acelerar el caso común («make the common case fast«), paralelismo, canalización (pipeline), predicción, jerarquía de memoria, y redundancia. De todas ellas, la Ley de Amdahl apunta a la de acelerar el caso común, es decir, mejorar aquel recurso más empleado en la práctica, para obtener la mayor ganancia de rendimiento. Por ejemplo, si mejoras la FPU de una CPU para mejorar los cálculos de coma flotante y la mayoría de los programas ejecutados hacen uso principalmente de instrucciones enteras, entonces la ganancia habría sido pequeña…

Aplicando la aceleración a un sistema segmentado (pipeline), entonces se podría obtener una mejora definida por la siguiente fórmula:

Sp = Tiempo de una instrucción sin segmentación / Tiempo de una instrucción con segmentación

Sp = Cs · CPIideal · Profundidad de la pipeline / Cn · CPIideal · Ciclos de detención

Sp = CPIideal · Profundidad de la pipeline / CPIideal + Ciclos de detención

Siendo Cs el ciclo de reloj con segmentación y Cn el ciclo de reloj sin segmentación.

¿Qué es la Regla de Pollack?

Fred Pollack es el artífice de esta regla de Pollack. Pollack fue un ingeniero de Intel que predijo que el rendimiento de los microprocesadores está ligado con la complejidad. Por tanto, avanza de forma más o menos de acuerdo a la raíz cuadrada del incremento de la complejidad (transistor count o por superficie del dado).

P = ≅ √Área del dado

Mientras que el aumento de consumo energético, sería aproximadamente lineal con respecto a la complejidad. Es decir, crecería por igual. Por eso, cuando Intel alcanzó su límite de frecuencia en el Pentium 4 se comenzó a plantear otra alternativa para seguir aumentando el rendimiento, ya que el aumento de la profundidad de la pipeline aumentaba la cantidad de transistores necesarios para seguir aumentando la frecuencia, y la relación rendimiento/consumo comenzó a no ser buena.

La regla de Pollack comenzó a tener menor relevancia con la aparición de los sistemas multinúcleo. La filosofía de implementar varios núcleos más sencillos/eficientes y no uno solo de complejidad extrema, propició el aumento de rendimiento y mantener el consumo más o menos controlado si se acompaña de mejoras de la tecnología de fabricación.

La Ley de Moore estima que con cada nueva generación se duplicaba la cantidad de los transistores y se aumentaba el rendimiento en un 40%. Mientras que la regla de Pollack asegura que con cada nueva microarquitectura se puede ganar un rendimiento de un 40% teóricamente. Pero eso no es así en la práctica, ya que mejorar las nuevas arquitecturas ya no resulta tan fácil. Por eso, ahora esta regla, dados los diseños multinúcleo, es poco relevante…

¿Qué es la Ley de Koomey?

foundry, bunny suit

La Ley de Koomey fue creada por Jonathan Koomey, un profesor de la Universidad de Stanford, en un artículo del IEEE. Fue uno de los primeros en documentar esta tendencia que hasta antes de acuñarse así era conocida como Ley de Gen para DSPs, un nombre de Gen Frantz, uno de los ingenieros de Texas Instruments que había documentado que la disipación de potencia de los procesadores de señal digital se reducía a la mitad cada 18 meses.

En cambio, luego sería renombrada y generalizada para otros tipos de sistemas más allá de los DSPs, para describir la tendencia de que el número de que la relación de cómputo por joule (J) se ha venido doblando aproximadamente cada 1.57 años. Es decir, mientras le Ley de Moore habla de doblar la potencia de cómputo y el número de transistores, la Ley de Koomey apunta a la eficiencia de los procesadores, que se dobla cada 18 meses aproximadamente.

Esa tendencia se ha mantenido bastante estable desde los años 50s, con desviaciones de tan solo el 2% en las curvas, y tiene importantes implicaciones en la era actual, ya que los dispositivos móviles (con batería), además de en los costosos centros de datos.

Muchos diseñadores están más interesados en mejorar la eficiencia que el rendimiento bruto. De hecho, en algunas microarquitecturas se sacrifica algo de rendimiento para mejorar la eficiencia. Síntoma de que mantener esta regla es muy importante…

Sin embargo, esta ley tiene una amenaza, y es la 2ª Ley de la Termodinámicala cantidad de entropía del universo tiende a incrementarse en el tiempo») y el Principio de Landauer en cualquier operación lógicamente irreversible que manipula la información, tales como borrar un poco de memoria, la entropía se incrementa y una cantidad asociada de la energía se disipa como calor«).

Y es que éstos principios determinan que la computación irreversible no pueden hacerse más y más eficientes energéticamente para siempre. Se estima que se podría llegar al límite marcado por Landauer en 2048, momento en el que la Ley de Koomey no se podría aplicar más. Mientras que en el caso de la computación reversible se podría mantener hasta 2130, pero también se limitaría por el principio de Landauer y el Teorema de Margolus-Levitin («La tasa de procesamiento no puede ser mayor que 6 · 1033 operaciones por segundo por julio de energía«).

Isaac

Apasionado de la computación y la tecnología en general. Siempre intentando desaprender para apreHender.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

A %d blogueros les gusta esto:

Si continuas utilizando este sitio aceptas el uso de cookies. más información

Los ajustes de cookies de esta web están configurados para "permitir cookies" y así ofrecerte la mejor experiencia de navegación posible. Si sigues utilizando esta web sin cambiar tus ajustes de cookies o haces clic en "Aceptar" estarás dando tu consentimiento a esto.

Cerrar