Green Code
La mejora de la eficiencia energética en los dispositivos electrónicos modernos se ha convertido en un tema recurrente que se aborda tanto en componentes hardware como software. Las optimizaciones en el hardware se logran a través del diseño de circuitos más eficientes y en el software se suelen implementar en el sistema operativo, utilizando distintas técnicas de planificación que analizan los procesos activos en términos energéticos mediante green compilers y el código en tiempo de compilación.
Green Computing (también conocido como Green IT o Tecnologías Verdes) es el término utilizado para referirse a este nuevo paradigma de trabajo que se centra en el ahorro energético mediante la aplicación de diferentes técnicas software y hardware. Las investigaciones en este ámbito tiene especial interés para la sostenibilidad económica y ecológica de los centros de procesos de datos.
En este sentido, la computación de alto rendimiento y el ahorro energético son objetivos contrapuestos dentro del Green Computing. Una manera de ahorrar energía puede consistir en reducir la tensión de los circuitos lógicos, sin embargo, esto origina circuitos más lentos y frecuencias más bajas, lo que hace disminuir el rendimiento.
Este proyecto abre una nueva línea de investigación que complemente los estudios previos realizados por COMPUTAEX (centrados en las infraestructuras IT, las redes de comunicación y en la explotación de recursos medioambientales) y con la que se persigue el desarrollo de código fuente eficiente.
- Análisis del estado del arte desde el marco teórico existente: paradigmas de programación, tipos de computadoras y modelos de computación.
- Estudio de los distintos métodos de optimización de código fuente de ámbito general, dentro del desarrollo de código para computadores de altas prestaciones, con el fin de obtener rendimientos óptimos y eficiencias máximas, sin perder de vista la correcta implementación de sus funcionalidades.
- Presentación de resultados que pongan de manifiesto los beneficios que aporta la la programación de código optimizado.
Partiendo de trabajos previos realizados en CénitS, para la realización de este proyecto es esencial la evaluación, el análisis y la investigación de las posibles mejoras en la eficiencia energética de los equipos TI mediante la mejora del código en los siguientes niveles:
- Aplicaciones software destinadas al usuario final.
- Sistema operativo y gestores de colas para los clústeres de cómputo.
- Herramientas y librerías estándares.
- Comunicaciones de red.
- Se ha presentado un extenso recorrido sobre el estado del arte actual de la optimización de código fuente de ámbito general dentro del desarrollo del código para computadores de altas prestaciones. Los resultados experimentales muestran que, aunque la optimización suele ser el último paso realizado cuando se está programando, es una tarea de suma importancia.
- La principal diferencia entre un código optimizado y no optimizado es su velocidad de ejecución. Esta velocidad es especialmente importante en los supercomputadores, ya que los problemas que resuelven, pueden alargarse durante semanas o meses hasta que se obtienen resultados. Al tratarse de periodos tan amplios, el tiempo de ejecución puede sufrir importantes variaciones dependiendo de la eficiencia de su código. Un código eficiente supone entonces no sólo un menor tiempo de ejecución sino un consumo energético mucho menor que el de un código no optimizado.
- Se considera demostrada la importancia de las estrategias eficientes en la creación de código. En concreto, la aplicación de modificaciones sobre un mismo código puede dar lugar a idénticos resultados con tiempos de ejecución muy dispares que, a largo plazo, además acarrearán importantes penalizaciones en el consumo energético.
- A partir de los resultados obtenidos es posible afirmar que mejorar la legibilidad o la futura compresión de un código por parte de alguien ajeno a su creación, llega a perjudicar seriamente el tiempo de ejecución del mismo y, consecuentemente, su eficiencia energética.
Green Code forma parte de CENITAL, un proyecto de innovación e investigación desarrollado bajo el Programa Operativo FEDER Extremadura 2007-2013, dentro del Eje 1 "Desarrollo de la Economía del Conocimiento".