Software ad alta efficienza energetica: una fonte di competitività

L’efficienza energetica è un concetto che si applica anche all’informatica. In questo articolo sviluppo l’idea che la scelta di una soluzione software in base al suo linguaggio di programmazione possa portare guadagni in termini di produttività e finanziari.

Software ad alta efficienza energetica: una fonte di competitività

Il cloud computing è di gran moda. Aziende di tutte le dimensioni fanno girare il loro software su infrastrutture (AWS, Azure, Google Cloud) a cui affittano capacità di calcolo. Tutte queste aziende non hanno alcun interesse finanziario a farvi risparmiare tempo di calcolo, perché perderebbero denaro nel processo. In questo articolo esamino il software ad alta efficienza energetica e spiego perché la programmazione ecologica fa bene anche al vostro portafoglio.

Contatta l’agenzia di ricerca IntoTheMinds

Se avete un software che gira nel Cloud, un giorno potreste trovarvi di fronte a una spiacevole sorpresa. Non siete immuni da un’esplosione dei costi dovuta all’uso, legale o meno, delle CPU (vedi video sotto).

È per questo che dovete esaminare attentamente i linguaggi di programmazione che utilizzate, in quanto influenzano la velocità di elaborazione delle vostre operazioni.

Il linguaggio di programmazione influenza il consumo energetico

Una ricerca stabilisce il punto di riferimento per l’efficienza energetica dei linguaggi di programmazione. La sua metodologia confronta l’utilizzo della memoria e la velocità di esecuzione di 10 linguaggi di programmazione (Perl, Python, Ruby, PHP, C, C++, Lua, Tcl, JavaScript e Java). Questo approccio ha senso quando si confronta il consumo energetico, in quanto un’esecuzione più veloce e un’impronta di memoria più piccola portano generalmente a un minore consumo di energia della CPU.

efficienza energetica Tempo di esecuzione

Confronto tra diversi linguaggi di programmazione sulla base delle ricerche citate nell’articolo.

Per darvi un’idea delle scale di grandezza, ho utilizzato la ricerca per calcolare alcuni ordini di grandezza.

Tempo di esecuzione

    • C è 100 volte più veloce di Python
    • Il C++ è 6,7 volte più veloce di Java
    • Perl è 10 volte più veloce di Java

Questo vi dà un’idea di quali linguaggi scegliere se volete concentrarvi sull’eco-programmazione (non so se il termine esiste, ma mi sembra perfettamente appropriato).

Utilizzo della memoria

L’utilizzo della memoria non è un processo che consuma direttamente energia. Tuttavia, può avere un impatto sull’ambiente a due livelli. In primo luogo, l’uso efficace della memoria evita di aggiungere RAM alle macchine (che è costosa e la produzione di un componente elettronico richiede molta acqua). In secondo luogo, l’uso della memoria velocizza i calcoli rispetto alla lettura da un disco rigido.

    • Il C utilizza l’1,5% della memoria consumata da Python.
    • Il C++ consuma il 2% della memoria utilizzata da Python.
    • Python e Perl utilizzano il 3% della memoria richiesta da Java

Il C è il linguaggio più efficiente dal punto di vista energetico

Tra i linguaggi analizzati, il C è risultato il migliore. E perché? Si tratta di un linguaggio di basso livello che, se padroneggiato e implementato correttamente, consente un migliore controllo delle risorse hardware. Questa efficienza si traduce in una maggiore velocità di esecuzione e in un utilizzo minimo della memoria. Questo è esattamente ciò a cui dovremmo puntare nella situazione attuale, se non fosse che oggi si sviluppa pochissimo software in linguaggi di basso livello.


In alcuni casi, l’esecuzione delle operazioni più impegnative dal punto di vista delle risorse sull’infrastruttura locale è più sensata rispetto al cloud.


Quali sono le implicazioni pratiche per le imprese?

È nell’interesse dell’azienda utilizzare un software ben programmato ed efficiente dal punto di vista delle risorse. In primo luogo, si risparmia tempo. Ma, per quanto possibile, dovrebbero eseguire i calcoli più impegnativi dal punto di vista delle risorse in sede piuttosto che nel cloud.

Risparmio del tempo

Parliamo innanzitutto del risparmio di tempo. Nel 2023 abbiamo intervistato 400 responsabili IT di aziende che praticano la scienza dei dati. Per il 47% degli intervistati, la velocità di calcolo era una delle priorità per l’implementazione di soluzioni future nella propria azienda.

efficienza energetica Guadagni finanziari

L’agenzia di ricerche di mercato IntoTheMinds ha intervistato 400 responsabili IT in 4 Paesi (Francia, Germania, Regno Unito e Stati Uniti) sui miglioramenti futuri previsti per le soluzioni dati.

Se siete lettori fedeli di questo blog, forse ricorderete i miei benchmark tra le soluzioni ETL. Una di queste, Anatella, si è distinta per le sue prestazioni eccezionali. I miei test hanno mostrato incrementi di prestazioni fino a x20. Anatella è stata programmata utilizzando linguaggi di basso livello (C, C++ e Assembler). I suoi concorrenti utilizzavano tecnologie basate in particolare su Java e non erano quindi in grado di tenere il passo. Ogni responsabile IT dovrebbe imparare i linguaggi utilizzati per programmare le soluzioni software commerciali che acquista.

Consultateci per la vostra ricerca di mercato IT

Guadagni finanziari

Qualunque sia il tipo di software, è importante ricordare che l’esecuzione nel Cloud può essere un cattivo calcolo finanziario. Poiché il modello di business dei fornitori di cloud è quello di vendervi minuti di calcolo, che interesse avrebbero a velocizzare l’elaborazione delle vostre operazioni?

efficienza energetica Guadagni finanziari

IntoTheMinds ha chiesto a 400 responsabili IT il modello di pagamento preferito per le soluzioni dati.

Per quanto riguarda in particolare il calcolo parallelo, la legge di Amdahl mostra che il guadagno marginale di velocità diminuisce con il numero di processori. Mobilitare sempre più processori (e quindi spendere di più) non sarà in definitiva una soluzione finanziariamente interessante per le operazioni più pesanti.

Ecco perché è un’idea intelligente prendere in considerazione l’esecuzione delle operazioni più impegnative dal punto di vista delle risorse su un’infrastruttura locale piuttosto che nel cloud. Non solo eviterete le fatture ricorrenti del vostro provider cloud, ma eviterete anche lo stress di non sapere cosa dovrete pagare alla fine del mese. Dico questo perché ho già dovuto affrontare questo problema per conto di un cliente.


Pubblicato in Data e IT, Strategia.