Ivan Di Giacomo

E-mail: digiacomoivan[at]gmail.com

La mia tesi specialistica: Green computing e virtualizzazione

Abstract

Negli ultimi anni il "`green computing"' è tema di molti studi di ricerca, non soltanto per l'aumento dei costi dell'energia e del potenziale risparmio economico, ma anche per l'impatto dei centri di calcolo sull'ambiente. Al continuo aumento di domanda computazionale, da parte delle imprese e della comunità scientifica, corrisponde un aumento dei centri di calcolo (in inglese data centers) che utilizzano enormi quantità di energia elettrica. Infatti il consumo medio di energia necessaria ad alimentare e raffreddare un data center supera quello di 25.000 famiglie e, secondo il rapporto della McKinsey, si stima che la bolletta energetica dei data centers per il solo 2010 sia di 11.5 miliardi di dollari e che questi costi tendino a raddoppiarsi ogni cinque anni. I data centers oltre ad essere costosi da mantenere, attualmente hanno un impatto ambientale (in termini di emissioni di diossido di carbonio) superiore a quello di alcuni stati come Argentina e Paesi Bassi ed inoltre il tasso di crescita annuale delle emissioni di diossido di carbonio è superiore all'11%. Fino a pochi anni fà l'unica preoccupazione nella progettazione dei data centers era il raggiungimento di elevate prestazioni senza prestare particolare attenzione ai consumi energetici. L'aumento delle pressioni da parte dei governi mondiali a ridurre le emissioni di carbonio e gli elevati costi dell'energia hanno portato grandi imprese a spostare l'attenzione dall'ottimizzare la gestione delle risorse dei data center per le massime prestazioni, all'ottimizzare l'efficienza energetica pur garantendo la qualità di servizio specificata mediante Service Level Agreement. Inoltre colossi come Google, Microsoft e Yahoo per far fronte ai crescenti costi dell'energia hanno iniziato a costruire grandi data centers lungo le rive del fiume Columbia, negli Stati Uniti d'America, per sfruttare la più economica ed affidabile energia idroelettrica. In genere, le risorse dei data centers vengono assegnate staticamente alle applicazioni in modo da garantire, anche nei momenti di carico massimo, una certa qualità di servizio (Quality of Service). Ciò comporta un utilizzo medio delle risorse dei data centers compreso tra il 5 ed il 30 per cento, portando ad un utilizzo energetico altamente inefficiente. Infatti, è dimostrato che l'efficienza energetica aumenta con l'aumentare della percentuale di utilizzo delle risorse dei server. Basti sapere che un server idle (senza alcun carico di lavoro) consuma circa il 50% di energia rispetto ad un server a pieno carico. Molti studi di ricerca si sono basati sull'uso più efficiente delle risorse nell'ottica della riduzione del numero totale di server necessari ad una azienda. Questo approccio al risparmio energetico, chiamato "`server consolidation"', utilizza gli strumenti offerti dalle piattaforme di virtualizzazione le quali permettono di gestire il ciclo di vita delle macchine virtuali e di migrarle eventualmente su diversi server fisici. Molte delle soluzioni sinora proposte, basate su questo approccio, sono strettamente legate alla piattaforma di virtualizzazione di VMware ed in special modo all'utilizzo del vCenter Server. L'idea di sviluppare Platform-Independent Energy Savings (PIES) nasce dall'intenzione di creare un tool Open Source, partendo dal meglio delle soluzioni sinora proposte (sia nel campo della ricerca che in quello commerciale), e di aggiugere alcune euristiche che migliorino le operazioni di "`server consolidation"' dando all'amministratore del sistema consapevolezza dei vantaggi economici raggiungibili applicando diversi trade-off tra performance ed energia. In sostanza PIES è un'applicazione Java (estendibile e modulare) che permette di aumentare l'efficienza energetica dei data center virtuali attraverso politiche di server consolidation definite dall'utente in modo assistito, senza la necessità di legarsi a particolari piattaforme hardware/software ed alle rispettive licenze. Inoltre, per la definizione di politiche di trade-off tra performance ed energia per ciascuna macchina virtuale, sono state utilizzate alcune funzionalità (offerte dalle piattaforme di virtualizzazione) sinora non prese in considerazione, come la possibilità di ridimensionare dinamicamente le risorse assegnate alle macchine virtuali. In particolare ciò che differenzia il nostro lavoro da quelli già esistenti è:

  • Nessuna necessità di acquisto di licenze software
  • Possibilità per l'amministratore di consultare dei grafici che lo assistano nelle decisioni di trade-off tra risparmio energetico e prestazioni
  • Utilizzo del ridimensionamento dinamico delle macchine virtuali (in termini di CPU/RAM)
  • Possibilità di caratterizzare le macchine virtuali con delle previsioni di workload
  • Migrazione delle macchine virtuali basato sullo studio di workload e statistiche settimanali (divise per fasce orarie) riguardanti l'utilizzo storico delle risorse di ciascuna macchina virtuale
  • Indipendenza dagli algoritmi utilizzati per il risparmio energetico, per il bilanciamento del carico e per il ridimensionamento dinamico delle macchine virtuali
  • Indipendenza dalla piattaforma di virtualizzazione
  • Indipendenza dalla piattaforma hardware
  • Indipendenza dal tipo di DBMS

PIES è basato su un'architettura three-tier ("`a tre strati"') che prevede la suddivisione del sistema in tre diversi moduli dedicati rispettivamente alla interfaccia utente, alla logica funzionale (business logic) e alla gestione dei dati persistenti. Tali moduli sono intesi interagire fra loro secondo le linee generali del paradigma client-server (l'interfaccia è cliente della business logic, e questa è cliente del modulo di gestione dei dati persistenti) ed utilizzando interfacce ben definite. In questo modo, ciascuno dei tre moduli può essere modificato o sostituito indipendentemente dagli altri. L'indipendenza dagli algoritmi e dalla piattaforma hardware e di virtualizzazione è stata ottenuta proprio grazie alla progettazione modulare e all'adozione di un design pattern bridge per ciascun blocco funzionale. In questo modo anche i moduli che si trovano nello stesso livello dell'architettura comunicano tra loro attraverso specifiche interfacce ed è possibile cambiare l'implementazione usata per ciascuna di esse senza dover modificare le classi che le utilizzano. L'attuale implementazione di PIES si interfaccia con la piattaforma di virtualizzazione gratuita VMware ESXi 4.1 e con la piattaforma hardware IBM BladeCenter E / IBM Blade Server HS20 e fornisce un implementazione degli algoritmi di bilanciamento del carico e risparmio energetico basati su una versione modificata dell'algoritmo Best Fit Decreasing per l'allocazione delle macchine virtuali sui server. Come abbiamo anticipato, la modularità di PIES permette di cambiare la piattaforma di virtualizzazione, la piattaforma hardware e gli algoritmi utilizzati, in modo trasparente rispetto agli altri moduli del sistema. In questo modo è possibile adattare PIES alle piattaforme hardware e software d'interesse limitandosi ad implementare le opportune interfacce. Infine è possibile ridefinire, rispettando le interfacce del sistema, gli algoritmi per il bilanciamento del carico, il risparmio energetico ed il ridimensionamento dinamico delle macchine virtuali. In questo modo PIES fornisce piena libertà anche nel tipo di approccio ed i vincoli che si vogliono considerare nell'effettuare operazioni di "`server consolidation"'.
Per quantificare il risparmio energetico ottenibile attraverso l'utilizzo di PIES, sono stati eseguiti dei test simulando diverse tipologie di workload variabili con una soglia di tolleranza sulle prestazioni del 20% (si è disposti a rinunciare al 20% delle risorse pur di fare risparmio energetico). Nel caso ideale in cui tutte le macchine virtuali erano idle, PIES ha ottenuto un risparmio energetico del 74% senza influenzare le performance, e dell'86% utilizzando il ridimensionamento dinamico delle macchine virtuali. Nel caso medio in cui venivano simulate diverse tipologie di workload variabili su ciascuna macchina virtuale, il risparmio energetico ottenuto è stato del 39% senza influenzare le performance, e del 50% utilizzando il ridimensionamento. Per valutare l'impatto del risparmio energetico sulle performance abbiamo eseguito un ulteriore test utilizzando SuperPI. I risultati di questo test hanno mostrato che ad un peggioramento delle performance del 18% è corrisposto un risparmio energetico del 42%.
Concludendo, PIES dai risultati ottenuti dai test e dalla flessibilita della sua architettura, si è rivelato avere ottime potenzialità. Inoltre l'interfaccia utente fornisce dei grafici e dei parametri che permettono agli amministratori dei data center di perseguire con chiarezza le proprie politiche di trade-off tra performance e risparmio energetico. Possibili sviluppi futuri riguardano l'interfacciamento di PIES con ulteriori piattaforme hardware e di virtualizzazione, e l'adozione di un design pattern strategy che permetta di modificare dinamicamente gli algoritmi utilizzati per il risparmio energetico, il bilanciamento del carico ed il ridimensionamento delle macchine virtuali.

Bibliografia

  • J. Kaplan, W. Forrest and N. Kindler, Revolutionizing Data Center Energy Efficiency, McKinsey, July 2009
  • J. Markoff, S. Hansell. Hiding in Plain Sight, Google Seeks More Power. New York Times, June 14, 2006
  • Rajkumar Buyya, A. B. (2010). Energy-Efficient Management of Data Center Resources for Cloud Computing: A Vision, Architectural Elements, and Open Challenges. Cloud Computing and Distributed Systems (CLOUDS) Laboratory Department of Computer Science and Software Engineering, The University of Melbourne, Australia; Manjrasoft Pty Ltd, Australia; School of Information Technology, Deakin University, Melbourne, Australia.
  • Anton Beloglazov, R. B. (2010). Energy Efficient Resource Management in Virtualized Cloud Data Centers. Cloud Computing and Distributed Systems (CLOUDS) Laboratory, Department of Computer Science and Software Engineering, The University of Melbourne, Australia.
  • Gargi Dasgupta, A. S. (2009). Workload Management for Power Efficiency in Virtualized. Communications of the ACM.
  • Kothari, A. V. (2009). Server Workload Analysis for Power Minimization using Consolidation. IBM India Research Lab.
  • Akshat Verma, P. A. (2008). pMapper: Power and Migration Cost Aware Application Placement in Virtualized Systems. IBM India Research Lab, IIT Delhi.

La mia tesi triennale: Interazione evoluta per la navigazione in Google Earth

Abstract

Lo studio di nuove tecniche d'interazione è stato il focus di una significativa attività di ricerca negli ultimi anni. Nonostante siano molte le tecniche d'interazione proposte per superfici sensibili al tatto, la loro diffusione è limitata dai costi eccessivi dell'hardware necessario (es. touch screen). In questo lavoro di tesi abbiamo progettato e sviluppato una nuova tecnica d'interazione basata su Wiimote, che permette un'esplorazione più agevole delle mappe di Google Earth attraverso l'implementazione di gesti naturali ed intuitivi. Il Wiimote è il controller remoto della Nintendo WII e Google Earth è un applicazione che consente di sorvolare tutta la terra per osservare immagini satellitari, mappe, terreni, edifici 3D ed esplorare le galassie celesti. La nostra tecnica d'interazione, basandosi sul Wiimote, oltre ad essere economica, e già alla portata di milioni di utenti. Questo permette di superare i limiti alla diffusione delle tecniche d'interazione basate su superfici tattili, difatti i 30 milioni di Wiimote venduti dalla Nintendo sono più del triplo dei tabletop in circolazione. L'innovatività della nostra tecnica d'interazione è dovuta principalmente all'utilizzo di un dispositivo di puntamento alternativo, ovvero alle WiiSticks. Queste consistono in delle pinze ai cui estremi sono presenti dei led infrarossi visibili dalla camera IR inclusa nel Wiimote. Quest'ultima permette di comunicare le coordinate dei punti IR visibili, all'host a cui è connesso attraverso Bluetooth HID. Per poter definire con chiarezza i gesti per le WiiSticks abbiamo progettato un automa a stati finiti. Gli stati di quest'automa si differenziano per numero e tipo di punti IR visibili dalla camera del Wiimote, mentre gli archi rappresentano le azioni che permettono di passare da uno stato all'altro.
Per poter interpretare correttamente i punti IR visibili dalla camera del Wiimote abbiamo previsto una fase di calibrazione in cui vengono inizializzati una serie di parametri che permettono di riconoscere, ed utilizzare a proprio favore, eventuali punti IR riflessi sullo schermo. L'automa e la gestione delle coordinate dei punti visibili dal Wiimote, sono stati implementati utilizzando la "`WiimoteLib"' che è un'API scritta in C# che permette di connettere un Wiimote al PC e di comunicare con esso utilizzando .NET (dotNET). La semplicità offerta dal nostro driver nel mappare i gesti su sequenze di stati dell'automa, permette di definire in modo semplice ed intuitivo nuovi gesti a partire dai possibili stati in cui si può trovare l'automa.
Anche se nel nostro lavoro di tesi ci siamo focalizzati sui gesti delle WiiSticks per Google Earth, abbiamo previsto anche un utilizzo delle WiiSticks per applicazioni generiche. In effetti le WiiSticks non sono strettamente legate a Google Earth, anzi è possibile utilizzarle in qualsiasi applicazione poiché permettono di eseguire le stesse operazioni eseguibili con un classico mouse (movimento, clic tasto sinistro e destro), come se si stesse lavorando su di un touch screen. Ciò significa che è possibile utilizzare le WiiSticks sia su normali schermi che su pareti su cui vi è un'immagine proiettata. In quest'ultimo caso l'interazione è possibile grazie all'implementazione di gesti alternativi che non utilizzano i punti IR riflessi.
Dai risultati ottenuti dall'user testing che abbiamo eseguito in un ambiente controllato, è risultato che le WiiSticks hanno fatto una buona impressione e che sarebbero state riusate volentieri dal nostro campione di soggetti. Gli utenti in generale hanno appreso con facilità l'utilizzo delle WiiSticks, in special modo dopo ripetuti usi. In generale i gesti sono stati apprezzati e non hanno portato significativi rallentamenti nell'utilizzo di Google Earth. Dato che Google Earth è un'applicazione mouse-based, ovvero progettata per un'interazione mediante mouse, è stata proposta per sviluppi futuri la creazione di un'applicazione WiiSticks-based (pensata per le WiiSticks) per cui personalizzare il nostro driver. In questo modo si potrà apprezzare ancor di più l'usabilità delle WiiSticks, rendendole competitive anche con il dispositivo di puntamento più utilizzato al mondo quale il mouse.

Bibliografia

Seminari

“Energy Savings”: Green computing mediante virtualizzazione

Data: 20/05/2011
Abstract: In questo seminario sarà presentata un'applicazione chiamata “Energy Savings” che permette una gestione intelligente dei consumi energetici utilizzando gli strumenti offerti dalla virtualizzazione. In particolare sarà mostrata l'architettura, le componenti e gli algoritmi utilizzati per il bilanciamento del carico ed il risparmio energetico.
Link: https://www.isislab.it/energy-savings-green-computing-mediante-virtualizzazione-ivan-di-giacomo/

Green Computing e virtualizzazione

Data 21/03/2011
Abstract: Dai punti di vista dell'ecologia e del risparmio economico, il Green Computing e la virtualizzazione sono una necessità primaria per l'industria informatica e delle comunicazioni, perché se si vogliono mantenere i tassi di crescita della capacità di calcolo, è necessario intervenire in modo importante sul consumo energetico. In questo seminario saranno presentati gli strumenti offerti dalla VMware vSphare SDK e dall'IBM Active Energy Manager per lo sviluppo di un'applicazione per l'energy saving su IBM BladeCenter.
Link: /green-computing-e-virtualizzazione-ivan-di-giacomo/

Interazione evoluta per la navigazione in Google Earth

Data: 09/12/2008
Abstract: In questo seminario sarà presentata una nuova tecnica d'interazione basata su Wiimote che, grazie all'utilizzo delle WiiSticks, permette un'esplorazione più agevole delle mappe di Google Earth mediante gesti naturali e intuitivi. In particolare saranno descritte le soluzioni adottate per lo sviluppo del driver per le WiiSticks che sono il dispositivo di puntamento che abbiamo progettato per la nostra tecnica d'interazione.
Link: https://www.isislab.it/interazione-evoluta-per-la-navigazione-in-google-earth-ivan-di-giacomo/

Video YouTube

Per chi fosse interessato al lavoro della mia tesi può dare un'occhiata al video girato nell'ISISLab che mostra i gesti implementati per esplorare le mappe di Google Earth.
Informazioni sul video
Titolo: Wiimote pinze e Google Earth (Wiimote Sticks & Google Earth)
Descrizione: Sfruttando le caratteristiche del Wiimote, ed un paio di normali pinze con dei led IR alle due estremità, è stato possibile implementare una gesture più naturale rispetto a quella del comune mouse per facilitare, in Google Earth, operazioni quali: Zoom In,Zoom Out,Trascinamento e Click.
Link: http://it.youtube.com/watch?v=fdC-w-IrjWY

Multitouch display

http://www.instructables.com/id/Interactive-Multitouch-Display/
http://www.merl.com/projects/
http://www.merl.com/projects/touchgestures/