Durante uno di quei freddi e bui giorni d’inverno, passati a ricercare informazioni su cluster di pc e pareti di display, mi sono imbattuto in questo inusuale e accattivante software: SAGE.
No, non è un software molto vecchio e saggio (o, per i fan di Naruto, neanche un eremita delle sei vie); si riferisce all’acronimo per Scalable Adaptive Graphics Environment (Ambiente grafico scalabile e adattivo), un software open source sviluppato all’EVL (Electronic Visualization Laboratory, University of Illinois at Chicago).
Come ci espone la guida trovata su www.sagecommons.org, Sage è un middleware cross-platform, open-source che permette agli utenti di avere un ambiente operativo comune, o un framework, per accedere, visualizzare e condividere una varietà di contenuti – che siano animazioni di cinema digitale, immagini ad alta risoluzione, teleconferenza ad alta definizione, presentazione di lucidi, documenti, fogli di lavoro o finestre di portatili – in una grande varietà di risoluzioni e formati, da sorgenti multipli, ad uno o più tiled display walls.
Per quelli che non lo sanno, un tiled display wall è un enorme display formato da più monitor (i cosiddetti “tiles”) della stessa dimensione e tipo, uniti per creare una matrice di monitor che funzioneranno come un unico e singolo display; questo display risultante solitamente ricopre un muro intero, e quindi abbiamo un tiled display wall.
Dato che i display wall possono essere formati da tanti monitor, e per tanti intendo facilemente più di 20, e alcune volte anche intorno alle centinaia, è abbastanza difficile connettere così tanti monitor ad un singolo pc. Questo ci forza ad utilizzare più computer con multiple uscite video… ma come facciamo a creare un unico schermo immenso se i monitor sono collegati a più computer?
Qui entra in gioco SAGE: agendo come middleware che comunica utilizzando una lan su ethernet (parleremo del perchè dev’essere una connessione cablata e non wireless, e dei suoi utilizzi su internet più tardi), sincronizza i display connessi ai computer ed assegna i contenuti corretti a ciascuno.
Per esempio, in un semplice installazione di due computer con un monitor ciascuno, devo espandere un video in modo che possa coprire l’intera area di entrambi i display: SAGE dividerà i frame video in 2 parti, inviare una parte al computer locale che fisicamente contiene il video e l’altra parte lo invia in rete al secondo computer in modo che, tramite le sue capacità di sincronizzazione, potremo vedere il video che viene riprodotto perfettamente su entrambi gli schermi.
Come si può dedurre dall’esempio, l’intero video non viene inviato ad entrambi i computer, ma solo la parte necessaria viene inviata in rete per non sprecare inutilmente banda.
Quello che è stato fatto nell’esempio soprastante può essere fatto con un qualunque numero di computer ed un qualunque numero di monitor connessi a ciascun computer… ovviamente il sistema sarà limitato dal potere di calcolo di ciascun pc e dal tipo di contenuti che devono essere visualizzati.
Sfortunatamente, non può rimpiazzare il desktop di un computer e può interagire solamente con applicazioni che sono stati appositamente creati o modificati per funzionare con esso, ma almeno ha un riproduttore video, un visualizzatore d’immagini, un visualizzatore di file pdf, due applicazioni di streaming desktop, un input per webcam, un renderer OpenGL, un gestore di file e anche un orologio! Insomma, probabilmente non avrà bisono di molto altro per la maggior parte dei casi…
Comunque, vi ho annoiati abbastanza in questa prima introduzione a SAGE, quindi continueremo la prossima volta!
Nel prossimo episodio parleremo di come installare SAGE in un ambiente Linux ubuntu, guarderemo alcune delle sue applicazioni e vedremo perchè potrebbe piacerci una connessione ethernet a 10Gb…