I datacenter di Google e le reti neurali

Di - 3 June 2014 - in
Post image for I datacenter di Google e le reti neurali

Continuando il discorso sull’efficienza dei datacenter, vediamo oggi come, a partire dallo straordinario risultato in termini di PUE ottenuto da Google per i suoi datacenter, l’azienda punti ora sulle tecniche avanzate di machine learning, per raggiungere sempre migliori risultati di efficienza energetica.

Nota

L’indice PUE, letteralmente Power Usage Effectiveness, esprime l’efficienza operativa attraverso il rapporto tra potenza totale assoribita dal datacenter PT e potenza assorbita dai singoli apparati Pit : PUE = \frac{PT}{Pit}

I datacenter sono strutture molto complesse, caratterizzate da un elevatissimo consumo di energia elettrica. In un suo paper, intitolato Growth in Data center electricity use 2005 to 2010, Johnatan Koomey sostiene che nel 2010 ben 1.3% del consumo globale di energia elettrica fosse dovuto ai datacenter. Da questo dato si può facilmente intuire che, per ciascun datacenter, una riduzione percentuale anche minima di consumo energetico, significa un notevole risparmio sui costi aziendali e sociali. Consideriamo anche il fatto che l’energia elettrica è, per un datacenter, un costo variabile, ossia un costo che è direttamente legato alla quantità di prodotto. Se consideriamo che l’assorbimento energetico delle macchine è dovuto in parte anche all’efficienza delle stesse (dimensionamento, carico di lavoro, flusso di lavoro, dissipazione termica, ecc..) possiamo ipotizzare che il costo variabile del consumo di energia elettrica sia progressivo, ossia aumenti in modo più che proporzionale in funzione alla variazione di prodotto.
Questa la premessa.

L’approccio al problema

A livello di gestione, i datacenter sono composti da moltissime macchine elettriche, meccaniche e idrauliche, come ad esempio pompe, scambiatori di calore, valvole, inverter, apparecchiature di gestione e controllo del piping, e via dicendo. Tutti questi macchinari, così come la sovrastante struttura impiantistica, sono equipaggiati da una miriade di sensori che forniscono, in modo continuativo, tutta una serie di dati. Tradizionalmente questi dati vengono usati solamente all’interno di funzioni di controllo.

Ciò che inoltre è evidente è che tra l’impianto produttivo (i computer), l’impianto di gestione e l’ambiente (interno ed esterno), esistono legami deboli che influiscono, in modo significativo considerata la scala, sull’efficienza energetica del datacenter. Ad esempio, un aumento o riduzione della temperatura di raffreddamento influisce a cascata su tutta una serie di macchinari, come torri di raffreddamento, pompe, scambiatori di calore, ecc.., che a loro volta hanno un impatto sull’efficienza del datacenter.
Quello che si è visto è che questo tipo di relazioni complesse non sono gestibili attraverso le formule tradizionali usate in ingegneria. Semplicemente, le variabili in gioco e le possibilità di interazione sono troppo numerose per essere gestite attraverso un approccio tradizionale.

Per riuscire a lavorare sull’interrelazione di queste variabili ed ottenere miglioramenti nell’efficienza energetica, Google sta quindi lavorando al perfezionamento ed all’implementazione di algoritmi basati sul concetto delle reti neurali.
Le reti neurali sono una branca del machine learning, o apprendimento automatico, che mima il funzionamento del cervello umano attraverso l’interazione tra neuroni artificiali. Una rete neurale opera individuando schemi nelle interazioni e generando modelli ottimali sulla base delle stesse. Come in altri aspetti del machine learning, i risultati dovrebbero essere destinati a migliorare con l’aumentare del tempo di operatività della macchina. Fondamentalmente la macchina impara migliorandosi continuamente sulla base dei risultati ottenuti e dei dati a disposizione.
Vediamo ora, brevemente, il modello di rete neurale messa in opera da Google.
Per fare ciò ci avvarremo di un paper, rilasciato direttamente da Google, intitolato “Machine Learning Applications for Data Center Optimization”.

L’implementazione

Si parte da un modello generico di rete neurale a tre livelli come descritta sotto.

Modello generico di rete neurale a tre livelli

Modello generico di rete neurale a tre livelli

La matrice di input x è di tipo (m x n) dove m è il numero di dati che costituiscono la base di addestramento del sistema ed n il numero delle variabili prese in considerazione (carico di lavoro, condizioni meterologiche, numero degli split di raffreddamento, torri di raffreddamento, set point dei macchinari, ecc..). La matrice x viene poi moltiplicata per la matrice \theta del modello, così da produrre il cosiddetto strato nascosto a . I valori processati all’interno dello strano nascosto a non sono parte dell’osservazione. In pratica, a agisce come uno stato intermedio che interagisce a sua volta con una seconda matrice di parametri per calcolare il risultato. Naturalmente, la dimensione e il numero degli strati nascosti a possono variare per ottenere modelli di complessità variabile. h_\theta (x) rappresenta la variabile di output analizzata, in questo caso ad esempio la metrica PUE (espresso come frazione e quindi indice di efficienza del datacenter e non di consumo totale di energia).
La matrice neurale riesce quindi ad analizzare una serie di fattori e generare un modello matematico che descrive h_\theta (x) come funzione dei fattori stessi di input.

Nota

Per maggiori informazioni sulle rappresentazioni delle reti neurali, vi invitiamo a leggere questa lezione: Neural Networks Rappresentation

Per dare un’idea ora dell’implementazione di questo sistema da parte di Google, così come descritta nel paper, abbiamo una rete neurale costituita da 5 strati nascosti, 50 nodi per ciascuno strato nascosto. Il layer di input, organizzato per addestrare il sistema, è basato su 19 variabili di input ed una variabile di output (il PUE), ciascuna comprendente 184.435 campionature con una risoluzione di 5 minuti circa (circa due anni operativi del datacenter). L’ordine cronologico dei dati di input viene mischiato su base casuale per evitare possibili influenze dovute a schemi legati a condizioni temporali precise. Il 70% della base dati è usata per l’addestramento, mentre il 30% come riferimento per i controlli incrociati e le validazioni.
Di seguito diamo un’idea delle variabili utilizzate nel set di dati.

  1. Carico totale dei server [kW]
  2. Carico totale dei server di rete [kW]
  3. Numero totale delle pompe idriche in funzione
  4. Media della velocità degli inverter dei motori delle pompe idriche [%]
  5. Numero totale delle pompe idriche di condensazione in funzione
  6. Media della velocità degli inverter dei motori delle pompe idriche di condensazione [%]
  7. Numero totale delle torri di raffreddamento in funzione
  8. Media dei set point della temperatura dell’acqua delle torri di raffreddamento
  9. Numero totale delle unità di raffreddamento in funzione
  10. Numero totale delle unità di raffreddamento statico in funzione
  11. Numero totale delle pompe di iniezione di acqua raffreddata in funzione
  12. Media dei set point di temperatura delle pompe di iniezione di acqua raffreddata
  13. Media della temperatura di scambio degli scambiatori di calore
  14. Media della temperatura esterna di bulbo umido
  15. Media della temperatura esterna di bulbo secco
  16. Entalpia [kJ/kg] dell’aria esterna
  17. Umidità relativa dell’aria esterna [RH%]
  18. Velocità del vento [mph]
  19. Direzione del vento [gradi]

I risultati

Attraverso i risultati ottenuti dall’applicazione delle reti neurali, Google è stata in grado in primo luogo di settare soglie di efficienza automatizzate e simulare, in tempo reale, le condizioni di efficienza dell’impianto senza modifcare, fisicamente, nessun parametro.
Il paper menziona, a titolo di esempio, una simulazione della variazione del PUE sulla base della temperatura di raffreddamento delle sale server. In questo esempio la simulazione ha mostrato che incrementando di 3F la temperatura di scambio delle torri di raffreddamento dell’acqua e delle pompe di inizione dell’acqua raffreddata, si otteneva una diminuzione del PUE di 0,005 punti. Questa simulazione è stata poi verificata e sperimentata con successo in una situazione reale. Essa stessa è poi servita da base di partenza per ulteriori miglioramenti dell’efficienza.
Il livello di confidenza delle analisi svolte dalla rete neurale è molto alto. Di seguito potete vedere un grafico che mostra i valori di PUE misurati realmente nell’arco di un mese, rispetto a quelli previsti dalla rete neurale, con un margine di errore di 0,004 ed una deviazione standard di 0,005 sul campione analizzato.

Confronto tra PUE previsto e reale

Confronto tra PUE previsto e reale

Il paper menziona altri esempi di impiego relativi ad alcune situazioni impiantistiche, come problematiche dovute all’impiego di marche diverse di misuratori di flusso di LNG, ecc… In ogni caso le reti neurali sono state utili nell’individuazione di soluzioni impiantistiche che hanno portato a margini di miglioramento in termini di PUE.

Al di là dei tecnicismi e del focus sul campo di impiego specifico di questa rete neurale, un aspetto davvero interessante è l’osservazione di come questo tipo di approccio risulti molto promettente per la gestione di generiche problematiche di larga scala. Così come l’intelligienza artificiale messa in campo dal super computer di IBM Watson, queste tecnologie, per molti versi ancora agli albori, saranno quelle che traghetteranno la relazione uomo-macchina verso un rapporto di tipo potenziato, una via di mezzo cioè tra la mera computazione lineare, ormai entrata nella vita quotidiana di tutti noi, è l’emergenza dell’intelligenza artificiale.

Credit immagine di copertina | Neerav Bhatt

Leave a Reply

Gabriele Visconti Articolo scritto da

Editor in Chief per Engeene. Appassionato di Linux, FOSS, videogame e, da poco, di cucina. Parla quattro lingue ed ama leggere libri in lingua inglese.

Contatta l'autore

Previous post:

Next post: