Ottimizzare il software al fine di ottenere processi energeticamente efficienti è possibile.
Attorno al cuore delle istruzioni stampate nel silicio del microprocessore e dei chip che ne controllano il funzionamento, si sviluppa la ‘cipolla’ del software: dai componenti del sistema operativo e del middleware alle applicazioni e alle loro interfacce, è tutto un sovrapporsi di strati, ciascuno dei quali porta istruzioni e/o dati sui quali il processore è chiamato a operare. Tutto questo è ovvio: è l’Abc dell’informatica. Ma cerchiamo di vedere la faccenda sotto un aspetto diverso, e cioè quello del consumo di energia. I processori consumano più energia quando eseguono un qualsiasi compito; se non ricevono istruzioni sono in stato di riposo (idle) e il consumo si riduce. Nei processori multicore di nuova generazione, grazie soprattutto alla gestione ‘intelligente’ dell’I/O questa riduzione è drastica. Un Intel Xeon 5500 (quad-core), ad esempio, consuma da 80 a 130 Watt, a seconda del clock, in fase attiva e solo 10 Watt in fase di riposo. La Cpu pesa per il 40% del consumo di energia di un sistema, vale la pena farla riposare un po’ dandole meno istruzioni da eseguire.
A far lavorare la Cpu concorrono tutti gli strati del software, ma mentre ambiente operativo e database sono appannaggio dei ‘soliti noti’ (sempre più pochi e sempre più grandi) e per quanto abbiano un ruolo assolutamente primario nell’economia energetica del data center non possiamo farci niente se non decidere di cambiare piattaforma, il software applicativo è una questione che riguarda l’It aziendale. Lì si può e si deve agire. Non si tratta di fare meno, ma di fare meglio. Per ridurre il consumo di carburante a parità di chilometraggio possiamo cambiare auto, comprandone una che consumi meno, ma anche cercare percorsi più ‘fluidi’ (meno traffico, meno semafori…) e guidare in modo attento (meno frenate, ‘piede leggero’…). Ecco: nell’It la prima risposta sta nell’hardware, di sistema e infrastrutturale, ma le altre due stanno nel software, che va rivisto sia nella logica (la strada), sia nel codice (lo stile di guida), in modo da chiedere alla Cpu il minor carico di lavoro possibile.
Minor consumo, maggiori prestazioni
Quando si parla di ‘green computing’ il discorso cade quasi sempre sull’hardware: processori, sistemi, apparati di alimentazione e raffreddamento e così via. Ma il software è essenziale, e ottimizzarlo in chiave d’efficienza energetica, che poi significa scriverlo in modo da eseguire il minor numero possibile di istruzioni e di ‘chiamate a sistema’, porta a guadagni importanti. Sul problema si è impegnata Accenture, come ha osservato Giorgio di Paolo, responsabile It Strategy della società, da noi recentemente intervistato sul tema (vedi ZeroUno n. 337): “Le applicazioni sono scritte con poca o nessuna attenzione all’efficienza energetica: se fanno quello che devono fare, quanto consumano non è un problema. Abbiamo quindi cercato di capire quanto il bisogno d’infrastrutture sempre più potenti non sia dovuto, oltre che alla crescita dell’It e del suo peso nelle organizzazioni, anche allo scadere della qualità del software e se non ci sia un modo ‘green’ di scrivere i programmi”. In molte grandi realtà poi (specie nelle banche), c’è il problema delle applicazioni legacy. Scritte anche più di vent’anni fa sono continuamente aggiornate a forza di pezze integrative, ciascuna delle quali aggiunge subroutine che caricano i sistemi di ulteriori compiti e istruzioni, sprecando risorse elaborative ed energia. L’ottimizzazione delle applicazioni, cioè la loro scrittura, o riscrittura, fatta in modo da ridurre al massimo le linee di codice necessarie, è un’operazione dove c’è solo da guadagnare. Infatti, oltre a risparmiare sulla bolletta e, perché no, aiutare l’ambiente in cui viviamo, ridurre le istruzioni migliora l’erogazione dei servizi. È vero che nelle tipiche applicazioni business i processori passano gran parte del tempo in attesa di ricevere dati o di poterli inviare, ma oltre che in area tecnico-scientifica vi sono applicazioni computing-intensive anche in azienda (le analisi finanziarie, per esempio), dove un guadagno in prestazioni è quanto mai apprezzabile.
Un pratico strumento
Accenture ha quindi partecipato al progetto Energ-It del Politecnico di Milano (vedi
"Energ-it: data center green anche per le PMI") volto appunto a trovare approcci innovativi al problema del risparmio energetico. La prima fase del lavoro ha indirizzato la misura dell’efficienza energetica del software, che si è potuta rilevare facendo girare i programmi su speciali macchine (realizzate dal Politecnico) in grado di evidenziare gli assorbimenti di energia della Cpu e delle altre componenti di un sistema. Ciò ha dimostrato che per eseguire un dato compito a uguali livelli prestazionali, applicazioni diverse danno consumi anche molto diversi tra loro. Si è arrivati, nel caso di una routine per il calcolo del tasso di rendimento di un mutuo, addirittura a un rapporto di mille a uno rispetto a un’altra dal codice ottimizzato. Se moltiplichiamo per tutte le volte che il Centro dati di una banca esegue un servizio del genere si ha un’idea di quanto si può risparmiare in termini di Mips e quindi di energia.
Verificato l’assunto, la seconda fase del progetto si è concentrata sullo studio di un algoritmo capace di prevedere in base all’analisi del codice l’efficienza energetica di un programma. Da questo lavoro è nato uno strumento software che stabilisce se e quanto un’applicazione è più o meno efficiente di un’altra. Si tratta, ovviamente, di una stima, ma le prove hanno dimostrato che i risultati sono molto vicini alle misure rilevate ‘fisicamente’ testando l’applicazione sull’apparato hardware. Analizzando con tale strumento il proprio parco software si possono individuare le applicazioni ove conviene intervenire.
Non diciamo che si tratta di cose facilissime da fare. Per riscrivere il software occorrono tempo e risorse capaci, così come dotarsi di nuove e aggiornate soluzioni applicative presenti sul mercato richiede un investimento a volte cospicuo in licenze e formazione. Ma l’investimento in hardware è soggetto all’obsolescenza tecnologica. Per restare in casa Intel, i ‘vecchi’ processori che le nuove serie 7500 e 5500 sono andati a sostituire, fino a 18 mesi fa erano il meglio sul mercato. Al contrario, un parco software ottimizzato nella chiave di cui si è detto darà i suoi benefici in un arco di tempo molto lungo e, soprattutto, continuerà a farlo con qualsiasi piattaforma sulla quale si troverà a funzionare. Se questa sarà aggiornata in chiave energetica, tanto meglio: hardware e software lavoreranno in sinergia a vantaggio di tutta l’impresa.