¿Qué tan ecológico es su software?

Sin duda, el software es la columna vertebral de prácticamente todas las soluciones inteligentes diseñadas para respaldar el medio ambiente. Es fundamental, por ejemplo, en los esfuerzos por abordar la deforestación y reducir las emisiones. 

En muchos casos, sin embargo, el software también es parte integral de una huella de carbono en rápido crecimiento. De hecho, las tecnologías digitales recientes y en proliferación han empezado a empeorar muchos de los problemas medioambientales que pretenden solucionar. Pero las empresas pueden hacer del software una parte integral de sus esfuerzos de sustentabilidad si tienen en cuenta su huella de carbono en la forma en que se diseña, desarrolla e implementa, y repensar algunos aspectos de cómo operan los centros de datos que brindan servicios basados ​​en la nube.

Seamos claros: por sí solo, el software no consume energía ni emite descargas nocivas. El problema radica en la forma en que se desarrolla el software para su uso, y luego en la forma en que se utiliza. El software se ejecuta en hardware y, a medida que el primero sigue creciendo, también lo hace la dependencia de las máquinas para que funcione.

Por ejemplo, blockchain impulsa algunas de las soluciones ecológicas más avanzadas disponibles, como las microrredes, que permiten a los residentes intercambiar energía respetuosa con el medio ambiente. Y esta innovación de software también está detrás del desarrollo de la criptomoneda. En 2019, investigadores de la Universidad de Cambridge estimaron que la energía necesaria para mantener la red de Bitcoin superó a la de toda la nación de Suiza.

Luego está el sector de tecnología de la información y las comunicaciones en su conjunto. Para 2040, se espera que represente el 14% de la huella de carbono del mundo,  frente al 1,5% en 2007.

El mismo desarrollo de software puede consumir mucha energía. Por ejemplo, considere lo que aprendimos cuando entrenamos un modelo de inteligencia artificial (IA) en un pequeño conjunto de datos de flores de iris disponibles públicamente . El modelo de IA logró una precisión del 96,17% en la clasificación de las diferentes especies de flores con solo 964 julios de energía. El siguiente aumento de 1.74% en la precisión requirió 2.815 julios de consumo de energía. El último aumento incremental del 0,08% en la precisión requirió casi un 400% más de energía que la primera etapa.

Ahora considere ese mismo ejemplo en el contexto del panorama general de la IA en general. El entrenamiento de un solo modelo de red neuronal hoy puede emitir tanto carbono como cinco autos en su vida útil . Y la cantidad de potencia computacional requerida para ejecutar grandes modelos de entrenamiento de IA ha aumentado exponencialmente , con un tiempo de duplicación de 3.4 meses.

Dicho todo esto, no tendría sentido limitar la dependencia del software como medio para permitir el trabajo, especialmente en el mundo posterior a Covid, donde el trabajo desde casa o en ubicaciones remotas podría convertirse en la norma para muchos. La limitación de la innovación impulsada por software tampoco sería una respuesta viable.

Sin embargo, las empresas pueden hacer del software una parte integral de sus esfuerzos de sustentabilidad al juzgar su desempeño tanto en su eficiencia energética como en parámetros tradicionales (por ejemplo, funcionalidad, seguridad, escalabilidad y accesibilidad) y al incluir prácticas y objetivos ecológicos como criterios para el CIO. revisiones de desempeño.

En última instancia, las recompensas superarían los desafíos: el escrutinio temprano y mayor que requiere la creación de software ecológico se traduce en un producto de mayor calidad: más delgado, más limpio y más adecuado para su propósito. Estas cualidades también compensan los costos iniciales adicionales. El software ecológico ayudará a las grandes empresas a cumplir sus objetivos ESG, una medida de rendimiento cada vez más importante para las partes interesadas. Finalmente, nuestra investigación (que se publicará próximamente) ha demostrado que los ingenieros informáticos recién creados están sopesando cada vez más el enfoque de una empresa en la sostenibilidad al elegir un empleador; un compromiso con el software ecológico puede ser un atractivo convincente.

Entonces, ¿cómo pueden las empresas volverse ecológicas con su software? Es un proceso de tres partes que comienza con la articulación de una estrategia que establece algunos límites, luego se dirige al ciclo de vida del desarrollo de software y también hace que la nube sea verde. Ninguna empresa que conozcamos participa plenamente en este proceso tal como lo describimos y aprovecha todos los beneficios del software ecológico. Sin embargo, un número creciente de empresas, incluidas Google, Volkswagen y Rainforest (en sí misma una empresa de pruebas de software), están implementando una variedad de los siguientes enfoques y técnicas.

Articular una estrategia que oriente las compensaciones y permita la flexibilidad . Hacer esto hará que los equipos de TI piensen en cuál debería ser el nivel correcto de tolerancia para los efectos ambientales de su software. Casi siempre hay compensaciones entre los objetivos comerciales y ambientales, y los ingenieros de software deben poder determinar dónde está la línea de ir / no ir. Piense en el modelo de IA que entrenamos con el conjunto de datos de la flor del iris. Si ese último paso para aumentar la precisión vale la pena o no la energía que consume, es una decisión comercial que requiere una guía clara desde arriba.

Igualmente importante es que la estrategia requiere flexibilidad, lo que permite que los ingenieros tengan espacio para improvisar y aprender mediante prueba y error. El software ecológico sigue siendo un campo emergente, en gran parte limitado a la academia. No hay guías para ingenieros en esta área.

Finalmente, esta amplia estrategia debería sugerir las métricas necesarias para medir el progreso. Para las actualizaciones de software, estos no serían difíciles de configurar (por ejemplo, determinando cuánta más energía consume una nueva versión que la versión anterior). Sin embargo, en el caso de software nuevo, las medidas útiles serían más difíciles de definir. Inicialmente, podrían incluir medidas tales como la eficiencia del uso de la memoria, la cantidad de datos utilizados y operaciones de punto flotante (matemáticas) por segundo.

Revise y perfeccione el ciclo de vida del desarrollo de software . Empiece por preguntar: ¿Cuál es la huella medioambiental más pequeña posible que podríamos dejar con esta aplicación? Utilice esa expectativa para guiar las primeras etapas del ciclo de desarrollo de software. Esta expectativa puede cambiar a medida que adquiere conocimientos, pero puede ser de gran ayuda para informar el estudio de viabilidad y cualquier evaluación de las compensaciones entre enfoques alternativos.

Luego, desarrolle recomendaciones sobre, por ejemplo, los algoritmos, lenguajes de programación, API y bibliotecas que puede utilizar para minimizar las emisiones de carbono. Y requieren una evaluación constante de alternativas que puedan ser más eficientes. Estas evaluaciones probarían la compatibilidad del software en varios diseños de hardware con restricciones de energía, como controles para dispositivos móviles, automóviles y hogares.

En la etapa de implementación, supervise el consumo de energía en tiempo real mediante técnicas como el análisis de código dinámico . Los datos que recopile serán fundamentales para comprender las brechas entre las opciones de diseño y los perfiles energéticos reales.

Algunas empresas ofrecen herramientas para ayudar a desarrollar sistemas cada vez más eficientes y que tengan en cuenta la energía. Por ejemplo,  Intel ofrece a los desarrolladores herramientas y recursos para administrar el consumo de energía. El Asistente de desarrollo de software de la compañía permite a los ingenieros tomar medidas de energía del sistema mientras ejecuta cargas de trabajo específicas dentro de su aplicación y determinar su eficiencia.

Sin embargo, este tipo de herramientas son escasas. La evaluación de las compensaciones clave entre las emisiones de carbono y los objetivos comerciales, como la flexibilidad, es todavía un camino cuesta arriba.

Haz que la nube sea verde . Las aplicaciones modernas casi siempre se implementan en la nube. Pero el crecimiento exponencial de los servicios basados ​​en la nube ha dado como resultado la rápida expansión de los centros de datos que consumen mucha energía. Los centros de datos consumen hoy alrededor del 2% de la electricidad mundial ; para 2030, podrían consumir hasta un 8%.

Hasta la fecha, la mayoría de los esfuerzos para hacer que los centros de datos sean ecológicos se han centrado en optimizar el hardware (reduciendo la incidencia de servidores sobrecalentados) y reduciendo las emisiones de carbono (aumentando la combinación de energía renovable que los alimenta). Estas técnicas ayudan a abordar el problema; sin embargo, la inclusión de intervenciones de software sostenible abre nuevas oportunidades para ahorrar energía.

Por ejemplo, eliminar las copias duplicadas de datos o comprimir los datos en trozos más pequeños ahorraría energía. También lo sería la implementación de unidades de procesamiento de gráficos para administrar cargas de trabajo en el borde (cerca del dispositivo o del usuario final), lo que crea eficiencias al dividir las tareas grandes en otras más pequeñas y dividirlas entre muchos procesadores.

La adopción de arquitecturas de servidor más ecológicas probablemente resultará crucial para ahorrar consumo de energía. El uso de servidores virtuales, por ejemplo, ayudaría a las empresas a ampliar sus servidores a demanda, ahorrando energía en los centros de datos empresariales. La virtualización esencialmente permite la creación de múltiples entornos simulados (o recursos dedicados) desde un único sistema de hardware físico. La contenerización, esencialmente una mejora con respecto a los sistemas virtuales, es otra opción. Cuando la informática sin servidor separa las aplicaciones a nivel de hardware, la contenedorización las separa a nivel de sistema operativo.

Las arquitecturas de aplicaciones más nuevas, como la computación sin servidor o las funciones como servicio (FaaS), permiten un control aún mayor sobre la capacidad y, por extensión, el consumo de energía. La computación sin servidor, por ejemplo, comparte de manera eficiente los recursos de infraestructura al ejecutar funciones solo a pedido. Y dado que factura por tiempo de ejecución, obliga a los programadores a mejorar la eficiencia de sus códigos. Los grandes proveedores de servicios de computación sin servidor, como AWS Lambda y Microsoft Functions, por ejemplo, ofrecen un escalado continuo con un modelo de costos de pago por uso.

Ya sea el teléfono móvil que requiere un uso más eficiente de los recursos y la potencia informática para ahorrar energía o el centro de datos en la nube donde los servidores deben optimizarse para el consumo de energía, la necesidad de software ecológico seguirá creciendo. Al incluir software en sus esfuerzos de sostenibilidad ahora, su empresa tendrá una ventaja en esta importante área.