# Energía proporcional a la computación

La proporcionalidad energética es una medida de la relación entre la potencia consumida en un sistema informático y la velocidad a la que se realiza el trabajo útil (su utilización, que es una medida del rendimiento). Si el consumo total de energía es proporcional a la utilización de la computadora, entonces se dice que la máquina es proporcional a la energía. De manera equivalente, para una computadora proporcional con energía idealizada, la energía global por operación (una medida de eficiencia energética) es constante para todas las cargas de trabajo y condiciones de operación posibles. El concepto fue propuesto por primera vez en 2007 por los ingenieros de Google, Luiz André Barroso y Urs Hölzle, quienes instaron a los arquitectos informáticos a diseñar servidores que serían mucho más eficientes energéticamente para la configuración del centro de datos. La computación proporcional a la energía es actualmente un área de investigación activa y se ha destacado como un importante objetivo de diseño para la computación en la nube. Hay muchos desafíos técnicos pendientes en el diseño de computadoras proporcionales a la energía. Además, el concepto de proporcionalidad energética no está inherentemente restringido a la computación. Aunque se han realizado innumerables avances en la eficiencia energética en disciplinas no informáticas, no se han evaluado rigurosamente en términos de su proporcionalidad energética.

## Antecedentes en la sostenibilidad energética

La energía sostenible es el ideal de que la sociedad debe satisfacer sus necesidades energéticas sin afectar negativamente a las generaciones futuras, y que varias organizaciones, gobiernos e individuos han estado defendiendo. Para cumplir con este ideal, se requieren mejoras de eficiencia en tres aspectos del ecosistema energético:
* Generación de energía
* Almacenamiento de energía
* Consumo de energía
Dado que nuestra necesidad de generación y almacenamiento de energía está impulsada por nuestra demanda, las formas más eficientes de consumir energía pueden generar grandes mejoras en la sostenibilidad energética. Los esfuerzos en el consumo de energía sostenible se pueden clasificar a un alto nivel según las tres categorías siguientes:
* Reciclaje: Captura y recupera la energía desperdiciada para hacer más trabajo, que de lo contrario se perdería como calor.
* Reutilización: Amortizar el costo de generación, almacenamiento y entrega de energía compartiendo la energía y su infraestructura entre diferentes cargas
* Reducción: Reduzca la demanda de energía haciendo más trabajo con menos energía (mejore la eficiencia del consumo), o no haciendo ese trabajo, sino cambiándolo por otro distinto.
Muchos esfuerzos para hacer que el consumo de energía sea más sostenible se centran en el tema "reducir" para cargas de trabajo impredecibles y dinámicas (que se encuentran comúnmente en la informática). Esto puede ser considerado como gestión de energía. Estos esfuerzos se pueden agrupar en dos enfoques generales, que no son específicos de la computación, pero se aplican comúnmente en ese dominio:
* Apagado inactivo: esta técnica explota las brechas en la demanda de carga de trabajo para apagar los componentes que están inactivos. Cuando se apaga, los componentes no pueden hacer ningún trabajo útil. Los problemas exclusivos de este enfoque son: (1) cuesta tiempo y energía hacer la transición entre los estados de apagado activo y inactivo, (2) no se puede trabajar en el estado apagado, por lo que se debe hacer un encendido para manejar una solicitar, y (3) es difícil predecir los períodos de inactividad y adaptarse adecuadamente eligiendo el estado de potencia correcto en cualquier momento.
* Escalado de rendimiento activo: a diferencia de la inactividad inactiva, este enfoque permite que se realice el trabajo en cualquier estado, todos los cuales se consideran activos, pero con diferentes ventajas y desventajas entre potencia y rendimiento. Por lo general, los modos más lentos consumen menos energía. Los problemas exclusivos de este enfoque son: (1) es difícil determinar qué combinación de estados es la más eficiente energéticamente para una aplicación, y (2) las mejoras de eficiencia energética generalmente no son tan lucrativas como las de los modos inactivos de apagado .
En la práctica, ambos tipos de enfoques se utilizan comúnmente y se mezclan.

## Motivación para la proporcionalidad de energía

Hasta alrededor de 2010, las computadoras estaban lejos de ser proporcionales a la energía por dos razones principales. Un problema crítico es la alta potencia estática, lo que significa que la computadora consume mucha energía incluso cuando está inactiva. La alta potencia estática es común en los servidores debido a sus optimizaciones de arquitectura, circuitos y fabricación que favorecen un rendimiento muy alto en lugar de una potencia baja. La alta potencia estática en relación con la potencia máxima cargada da como resultado un rango dinámico bajo, una baja proporcionalidad energética y, por lo tanto, una eficiencia muy baja en aplicaciones de baja a media utilización.  Esto puede ser aceptable para los sistemas informáticos de alto rendimiento y las cargas de trabajo, que intentan extraer la máxima utilización posible de las máquinas, donde son más eficientes. Sin embargo, en los centros de datos modernos que ejecutan aplicaciones de computación en la nube populares y de gran escala, los servidores pasan la mayor parte de su tiempo en torno al 30% de utilización, y rara vez se ejecutan con carga máxima, lo que es un punto de operación muy ineficiente para los servidores típicos.
La segunda razón principal es que los diversos estados operativos de hardware para la administración de energía pueden ser difíciles de usar de manera efectiva. Esto se debe a que los estados de baja potencia más profundos tienden a tener una latencia de transición y costos de energía mayores que los estados de baja potencia más ligeros. Para las cargas de trabajo que tienen ráfagas de actividad frecuentes e intermitentes, como las consultas de búsqueda web, esto evita el uso de estados de potencia más bajos sin incurrir en penalizaciones de latencia significativas, que pueden ser inaceptables para la aplicación.
El hardware informático proporcional a la energía podría resolver este problema al ser eficiente en los niveles de utilización medios, además del rendimiento óptimo y los estados de inactividad (que pueden permitirse el uso de modos de suspensión de potencia profunda y baja). Sin embargo, lograr este objetivo requerirá muchas innovaciones en arquitectura de computadora, microarquitectura, y tal vez circuitos y tecnología de fabricación. El beneficio final sería una mayor eficiencia energética, lo que permitiría un hardware de computadora más económico, el aprovisionamiento del centro de datos, los costos de los servicios públicos de energía y el costo total de propiedad (TCO) general.

## Investigación en informática proporcional a la energía

Desde el documento de Barroso y Hölzle de 2007 en IEEE Computer, muchos investigadores han comenzado a abordar el problema de la computación proporcional a la energía de diversas maneras y en diferentes componentes.

### CPU

La CPU fue el primer y más obvio componente para que los investigadores se centrasen en la eficiencia energética y la baja potencia. Esto se debe a que tradicionalmente ha sido el mayor consumidor de energía en las computadoras. Debido a las muchas innovaciones en tecnología de baja potencia, dispositivos, circuitos, microarquitectura y automatización del diseño electrónico, las CPUs de hoy en día se han mejorado mucho en eficiencia energética. Esto ha llevado a una situación en la que las CPUs ya no dominan el consumo de energía en una computadora
Algunos ejemplos más conocidos de las muchas innovaciones en la eficiencia energética de la CPU incluyen los siguientes:
* Control de reloj: la distribución de reloj a unidades funcionales completas en el procesador está bloqueada, lo que ahorra energía dinámica de la carga y descarga capacitiva de puertas y cables síncronos.
* Regulación de alimentación: las unidades funcionales completas del procesador están desconectadas de la fuente de alimentación, por lo que consumen una potencia cero.
* Ámbitos de voltaje múltiple: diferentes partes del chip se suministran desde diferentes reguladores de voltaje, de manera que cada uno puede ser controlado individualmente para escalar o conectar la fuente de alimentación.
* Diseños de voltaje de umbrales múltiples: los diferentes transistores en el diseño utilizan voltajes de umbral diferentes para optimizar el retardo y / o la potencia.
* Escalado de frecuencia dinámica (DFS): la frecuencia de reloj del procesador se ajusta de forma estática o dinámica para lograr diferentes compromisos de potencia / rendimiento.
* Escalado dinámico de tensión (DVS): la tensión de alimentación del procesador se ajusta de forma estática o dinámica para lograr diferentes compromisos de potencia / confiabilidad / rendimiento.
* Escalado dinámico de voltaje / frecuencia (DVFS): tanto el voltaje como la frecuencia varían dinámicamente para lograr mejores compensaciones de potencia / rendimiento de lo que DFS o DVS solo pueden ofrecer.
Tenga en cuenta que todas las innovaciones anteriores para el consumo de energía de la CPU precedieron al documento de Barroso y Hölzle sobre la proporcionalidad de la energía. Sin embargo, la mayoría de ellos ha contribuido con una combinación de los dos tipos generales de administración de energía mencionados anteriormente, a saber, apagado inactivo y escalamiento de rendimiento activo. Estas innovaciones han hecho que las CPU amplíen su poder relativamente bien en relación con su utilización, lo que las convierte en el componente de hardware de computadora más proporcional a la energía. A diferencia de las CPU, la mayoría de los demás componentes del hardware de la computadora carecen de controles de administración de energía, especialmente aquellos que permiten la escalada activa del rendimiento. Las CPU se promocionan como un buen ejemplo de ingeniería informática proporcional a la energía que otros componentes deberían esforzarse por emular.

### Memoria

La memoria fue citada como uno de los componentes principales del sistema que tradicionalmente ha estado muy desproporcionado con respecto a la energía. La memoria tiende a tener una potencia estática relativamente alta debido a los conteos y densidades de transistores extremadamente altos. Además, debido a que la memoria a menudo se deja inactiva debido a las cargas de trabajo compatibles con la memoria caché o la baja utilización de la CPU, una gran parte del uso de energía se debe al componente de energía estática.
Tradicionalmente, la escala dinámica de voltaje y frecuencia en la memoria principal DRAM no ha sido posible debido a las limitaciones de los estándares DDR JEDEC. Sin embargo, estas limitaciones existen porque el criterio convencional en el diseño de memoria es que se necesitan grandes márgenes de diseño para obtener un buen rendimiento en el peor de los casos, las variaciones del proceso de fabricación, las fluctuaciones de voltaje y los cambios de temperatura. Por lo tanto, la escala de voltaje y frecuencia, que se realiza comúnmente en las CPUs, se considera difícil, poco práctico o demasiado arriesgado para que la corrupción de datos se aplique en las memorias.
No obstante, dos grupos de investigación propusieron DVFS recientemente para la interfaz del bus de memoria DDR3 de manera independiente en 2011 para escalar el poder de la memoria con rendimiento.  Debido a que el voltaje y la frecuencia del bus de memoria son independientes de los tiempos y voltajes internos de la DRAM, la escala de esta interfaz no debería afectar la integridad de la celda de memoria. Además, David et al. afirman que su enfoque mejora la proporcionalidad energética porque el bus de memoria consume mucha energía estática que es independiente de la utilización del bus.
Otro grupo de investigación propuso cambiar el ancho de banda de la memoria por menos energía por bit y menos energía en modo inactivo en los servidores mediante el uso de DRAM LPDDR2 de clase móvil. Esto aumentaría la proporcionalidad de la energía de la memoria sin afectar el rendimiento de las cargas de trabajo del centro de datos que no son sensibles al ancho de banda de la memoria. El mismo grupo también propuso rediseñar la interfaz DDR3 para admitir mejor la memoria del servidor proporcional a la energía sin sacrificar el ancho de banda máximo.

### Redes

Las redes son un componente clave que es muy desproporcionado en cuanto a la energía y contribuyen a una pobre proporcionalidad energética de clúster y centro de datos, especialmente cuando otros componentes en un servidor y centro de datos se vuelven más proporcionales a la energía. La razón principal por la que no son proporcionales a la energía es porque los elementos de red están siempre activados debido a la forma en que se diseñan los protocolos de enrutamiento y la imprevisibilidad del tráfico de mensajes. Claramente, los enlaces no pueden cerrarse completamente cuando no están en uso debido al impacto adverso que esto haría en los algoritmos de enrutamiento (los enlaces se verían como defectuosos o faltantes, lo que causaría problemas de ancho de banda y equilibrio de carga en la red más grande). Además, las penalizaciones de energía y latencia en las que normalmente se incurre al cambiar de hardware a los modos de baja potencia probablemente degradarán tanto el rendimiento general de la red como la energía. Por lo tanto, al igual que en otros sistemas, la proporcionalidad energética de las redes requerirá el desarrollo de características de escalado de rendimiento activas, que no requieren estados de inactividad para ahorrar energía cuando la utilización es baja.
En los últimos años, los esfuerzos en redes verdes se han dirigido a Ethernet de eficiencia energética (incluida la norma IEEE 802.3az) y muchas otras tecnologías inalámbricas y por cable. Un tema común es la reducción general de la potencia por baja potencia inactiva y baja potencia pico, pero su evaluación en términos de proporcionalidad energética en los niveles de enlace, conmutador, enrutador, clúster y sistema es más limitada. La velocidad de enlace adaptativa es un método popular para los enlaces de red conscientes de la energía.
Algunos autores han propuesto que para que las redes de centros de datos sean más proporcionales a la energía, los elementos de enrutamiento necesitan un mayor rango dinámico de potencia.  Propusieron el uso de la topología de mariposa aplanada en lugar de la red común plegada Clos que se usa en los centros de datos (también conocida como el árbol de grasa) para mejorar la eficiencia energética general y para utilizar las velocidades de enlace adaptativas para ajustar la potencia del enlace en relación con la utilización. También proponen predecir la utilización futura del enlace para escalar las tasas de datos en anticipación.
Sin embargo, para hacer que las redes sean más proporcionales a la energía, es necesario realizar mejoras en varias capas de abstracción.

### Almacenamiento y bases de datos

El almacenamiento de datos es otra categoría de hardware que tradicionalmente ha sido muy desproporcionada en cuanto a energía.  Aunque las tecnologías de almacenamiento no son volátiles, lo que significa que no se requiere energía para retener datos, la interfaz en los dispositivos de almacenamiento generalmente se enciende para el acceso bajo demanda. Por ejemplo, en los discos duros, aunque los datos se almacenan en un estado magnético no volátil, el disco normalmente se mantiene girando a RPM constantes, lo que requiere una potencia considerable. Esto se suma a la electrónica de estado sólido que mantiene las comunicaciones con el resto del sistema informático, como la interfaz Serial ATA que se encuentra comúnmente en las computadoras.
Una técnica emergente común para el almacenamiento de datos sensible a la energía y proporcional a la energía es la consolidación, es decir, que los datos deben agregarse a menos nodos de almacenamiento cuando las demandas de rendimiento son bajas.  Sin embargo, esta no es una tarea trivial y no resuelve el problema fundamental de la desproporcionalidad energética en un solo servidor. Para esto, se necesitan innovaciones de diseño de hardware a nivel de unidad de almacenamiento individual. Incluso las unidades modernas de estado sólido (SSD) hechas con memoria flash han mostrado signos de desproporcionalidad energética.
Las bases de datos son un tipo de carga de trabajo común para los centros de datos y tienen requisitos únicos que dificultan el uso de los estados inactivos de baja potencia. Sin embargo, para las bases de datos de "no compartir", algunas han propuesto un escalamiento dinámico de las bases de datos, ya que los "nodos débiles" se activan y desactivan a pedido. Afortunadamente, los investigadores han afirmado que para estas bases de datos de "no compartir", la arquitectura con mayor eficiencia energética también es la de mayor rendimiento. Sin embargo, este enfoque no aborda la necesidad fundamental de proporcionalidad energética a nivel de componente individual, sino que se aproxima a la proporcionalidad energética a nivel agregado.

### Infraestructura del centro de datos: Fuentes de alimentación y refrigeración

Las fuentes de alimentación son un componente crítico de una computadora, e históricamente han sido muy ineficientes. Sin embargo, las fuentes de alimentación modernas a nivel de servidor están logrando más del 80% de eficiencia energética en una amplia gama de cargas, aunque tienden a ser menos eficientes en usos bajos. Sin embargo, como las cargas de trabajo en los centros de datos tienden a utilizar servidores de rango bajo a medio, esta región de la operación es ineficiente para las fuentes de alimentación del servidor y las fuentes de alimentación ininterrumpibles a escala de centros de datos (UPS). Las innovaciones están necesitadas para hacer estos suministra mucho más eficaces en la región típica de operación.
Al igual que las fuentes de alimentación, el centro de datos y la refrigeración a nivel de servidor tienden a ser más eficientes en cargas altas. La coordinación de la administración de energía del servidor de los componentes tradicionales junto con el enfriamiento activo es fundamental para mejorar la eficiencia general.

### Sistema y centro de datos-nivel

Quizás la mayor parte de los esfuerzos en la proporcionalidad de la energía se han dirigido a la escala del sistema, clúster y centro de datos. Esto se debe a que las mejoras en la proporcionalidad de la energía agregada se pueden lograr en gran medida con la reorganización del software, que requiere cambios mínimos en el hardware subyacente. Sin embargo, esto se basa en el supuesto de que una carga de trabajo puede escalarse hacia arriba y hacia abajo en múltiples nodos de forma dinámica según la demanda agregada. Muchas cargas de trabajo no pueden lograr esto fácilmente debido a la forma en que los datos pueden distribuirse entre nodos individuales, o la necesidad de compartir datos y la comunicación entre muchos nodos, incluso para atender una única solicitud. Tenga en cuenta que la proporcionalidad de la energía agregada se puede lograr con este esquema, incluso si los nodos individuales no son proporcionales a la energía
Se han propuesto diversas aplicaciones, middleware, sistemas operativos y otros tipos de enfoques de equilibrio de carga de software para permitir la proporcionalidad de la energía agregada. Por ejemplo, si las cargas de trabajo individuales están totalmente contenidas en máquinas virtuales (VM), entonces las máquinas virtuales se pueden migrar a través de la red a otros nodos en tiempo de ejecución a medida que se realizan la consolidación y el equilibrio de carga. Sin embargo, esto puede incurrir en retrasos significativos y costos de energía, por lo que la frecuencia de la migración de máquinas virtuales no puede ser demasiado alta.
Los investigadores han propuesto mejorar los estados inactivos de baja potencia de los servidores y las latencias de activación/apagado entre los modos activo e inactivo, ya que este es un objetivo de optimización más fácil que la escala de rendimiento activa. Si los servidores pudieran activarse y cerrarse con una granularidad de tiempo muy fina, entonces el servidor se volvería proporcional a la energía, incluso si la potencia activa es constante en todas las aplicaciones
Otros han propuesto centros de datos híbridos, como KnightShift, de modo que las cargas de trabajo se migran dinámicamente entre hardware de alto rendimiento y hardware de bajo consumo basado en la utilización. Sin embargo, existen muchos desafíos técnicos de hardware y software para este enfoque. Estos pueden incluir el compatibilidad con hardware y software para computación heterogénea, infraestructura de datos y energía compartida, y más.
Un estudio de 2011 sostiene que el hardware proporcional a la energía es mejor para mitigar las ineficiencias energéticas de la expansión de software, un fenómeno predominante en la informática. Esto se debe a que los componentes de hardware particulares que obstaculizan el rendimiento general de la aplicación dependen de las características de la aplicación, es decir, qué partes están hinchadas. Si los componentes que no tienen cuellos de botella son muy desproporcionados por la energía, entonces el impacto general de la expansión del software puede hacer que el sistema sea menos eficiente. Por esta razón, la proporcionalidad energética puede ser importante en una amplia gama de aplicaciones de hardware y software, no solo en la configuración del centro de datos.