Programación verde: cómo hacer el código más sostenible

Innovación

¿Por qué se necesita la programación verde? La forma en la que se programa una página web, un código para ordenador o una app tiene su repercusión en forma de impacto ambiental. El código no es neutro en ética, ni neutro en carbono, y por eso hay que programar de forma que se minimice su impacto.

Reducir el impacto ambiental de la actividad digital es posible gracias a la programación verde, un movimiento que persigue la sostenibilidad a través de acciones concretas orientadas a reducir la huella de carbono y de energía de los procesos digitales.

¿Qué es la programación verde y cuáles son sus objetivos?

La programación verde o green computing es una modalidad de software que busca reducir el impacto ambiental de las actividades digitales mediante un uso más eficiente de sus recursos y un enfoque ambientalmente sostenible de la computación y de sus recursos relacionados. Esto incluye compactar código y usar mejores herramientas y hardware adecuado.

El primer objetivo de la programación verde fue el de hacer un uso más eficiente de la energía eléctrica empleada en procesar información, particularmente en los centros de datos por su facilidad para implementar código eficiente. Es por lo que se buscaban códigos más sostenibles y compactos que minimizan el consumo de energía por operación útil.

Por ejemplo, estas dos funciones matemáticas, que en esencia son la misma, realizan la misma operación pero a través de dos fórmulas diferentes. La segunda es mucho más eficiente porque requiere menos pasos y es más compacta.

El impacto ecológico de una web

Existen herramientas online que permiten analizar el impacto ambiental de determinado código. Por ejemplo, Website Carbon Calculator es capaz de determinar el impacto estimado en CO2eq de la carga de una web. Algunos elementos que disminuyen dicho impacto ambiental son, entre otros, aligerar el código HTML5, optimizar el posicionamiento en buscadores y el contenido, reducir el tamaño de las imágenes, evitar incrustar vídeos pesados, etcétera.

Por supuesto, hay que destacar que esta aproximación a la eficiencia no implica siempre compactar el código o reducir el número de líneas de programación. Puede haber programas más complejos con más parámetros que, en conjunto, sean más eficientes que otros más básicos. Por eso es importante estudiar cada caso particular para obtener una nota global aceptable.

El mismo principio aplica a todos los programas informáticos, sistema operativo incluido: realizando la misma función, algunos programas son más eficientes que otros y consumen menos recursos. Por lo general, es difícil determinar qué sistema operativo es más eficiente, ya que cada uno tiene ventajas en algunos aspectos concretos.

La programación verde necesita hardware verde

Hardware y software son dos elementos indispensables para la computación. El uno no puede existir sin el otro, y el impacto ambiental global es el resultado de combinar ambos. Es por eso que en la búsqueda de la eficiencia conjunta se necesita software adaptado al hardware y viceversa.

Esto es relativamente fácil de ejecutar tanto en electrónica de consumo como en grandes servidores. En ambos casos, además, existe un aliciente económico en materia de consumo energético: tanto los dueños de grandes servidores como los de ordenadores portátiles buscarán adquirir equipos de bajo consumo.

Así se pueden simplificar las redes neuronales

Las redes neuronales son cada año más importantes. Su mercado no ha dejado de crecer desde que salieron las primeras versiones comerciales y se espera que en unos años se utilicen en prácticamente cualquier sector y aplicación. Optimizarlas de forma que reduzcan su impacto se vuelve cada vez más relevante.

En 2018 un trabajo prepublicado en ArXiv por Jonathan Frankle y Michael Carbin, ambos investigadores del Massachusetts Institute of Technology (MIT, Estados Unidos), demostraba que las redes neuronales que se diseñan en la actualidad están notablemente sobredimensionadas en un factor de entre 10 y 100. Esto implica que el proceso de entrenamiento y operación de estas redes se realiza de forma excepcionalmente costosa.

Dicho de otra forma: podríamos diseñar redes neuronales un 90% más pequeñas que diesen lugar a los mismos resultados de eficacia, pero con un aumento enorme de la eficiencia. En el futuro, entrenar una inteligencia artificial no tendrá huella de carbono, pero con el actual mix energético supone añadir unas cientos de toneladas de CO₂ a la atmósfera.

Pero incluso cuando la descarbonización mundial sea una realidad y toda la obtención de energía sea de bajo impacto, conviene hacer uso de código compacto y eficiente con el objetivo de no derrochar energía. Después de todo, el sector de la tecnología de la información ya supone cerca del 7% del consumo mundial de energía. Merece la pena invertir en aumentar su eficiencia a través de la programación verde.

Imágenes | iStock/PixelChoice

Por M. Martínez Euklidiadas

Archivado en
Subir