Progetto M.A.Y.H.E.M. In informatica un computer cluster, o più semplicemente un cluster (dall'inglese 'grappolo'), è un insieme di computer connessi tra loro tramite una rete telematica. Lo scopo di un cluster è quello di distribuire una elaborazione molto complessa tra i vari computer componenti lo stesso. In sostanza, un problema che richiede molte elaborazioni per essere risolto viene scomposto in sottoproblemi separati i quali vengono risolti in parallelo. Questo ovviamente aumenta la potenza di calcolo del sistema e/o garantendo alta disponibilità di servizio. Wikipedia Questa enigmatica frase proveniente da Wikipedia sembra piuttosto complicata, ma in realtà non lo è: un cosiddetto cluster (insieme, gruppo) è una combinazione di più computer che insieme servono uno stesso scopo. Questo può essere svolgere complicati calcoli matematici, elaborare simulazioni fisiche o, più semplicemente, servire contenuti multimediali attraverso la rete interna. Un esempio pratico: se durante una gionata di Forum nella nostra scuola si decidesse di voler mostrare un breve video introduttivo alla giornata, si avrebbero due possibilità; la prima sarebbe di assegnare il compito ad un normale computer che ahimè sopperirebbe in breve tempo a causa delle numerose connessioni contemporanee e per il volume di dati richiesto, la seconda sarebbe di lasciare il compito al M.A.Y.H.E.M. che lo svolgerebbe con minima fatica e senza causare rallentamenti o interruzioni. Allo stato attuale il M.A.Y.H.E.M. conta 23 (o più) potenziali unità il che lo renderebbe circa venti volte più potente di uno qualunque dei computer presenti nei laboratori di informatica della scuola. Un altro dettaglio importante è il prestigio che il successo di questa impresa porterebbe alla struttura scolastica: simili progetti si trovano infatti in strutture come università o laboratori di ricerca scientifica specializzata. Di certo il M.A.Y.H.E.M. non sarà altrettanto potente, ma la ben riuscita realizzazione conterà più della qualità dei componenti elettronici. Tutto il team spera in un grande successo; abbiamo fiducia di poter apparire in una rubrica di uno dei quotidiani fiorentini.
Dettagli Tecnici I cluster hanno le seguenti caratteristiche: i vari computer risultano come una singola risorsa computazionale e le varie componenti sono risorse dedicate al funzionamento dell'insieme; il server cluster è quindi un server ad altissime prestazioni poiché, invece di gravare su un'unica macchina standalone, suddivide il carico di lavoro (ad esempio funzioni di gestione mail, web server, database e file server) su più macchine venendo ad essere di fatto una forma di sistema distribuito. Attualmente, la clusterizzazione consiste nel connettere via rete cablata X server fisici, non necessariamente inglobati in singoli chassis, che condividono Y unità di storage possibilmente dischi fissi ad alta velocità il tutto attraverso switch di rete ad alte prestazioni. Questi apparati sono in grado di erogare agli utenti i servizi necessari sottoforma di Z istanze virtuali. Appositi e complessi software permettono agli amministratori di gestire ottimamente la struttura e operare al meglio il bilanciamento delle risorse, risultando infatti indispensabili nel caso di marche e modelli diversi dell'hardware da integrare, nonché dei diversi sistemi operativi o scopi dei singoli nodi. Nel nostro caso l'os utilizzato sarà una versione customizzata di Arch Linux una distro che nasce per essere essenziale, modulare ed affidabile. Ci sono varie categorie in cui un cluster può rientrare: Fail over Cluster: il funzionamento delle macchine è continuamente monitorato e quando quella correntemente attiva smette di funzionare un'altra macchina subentra in attività. Lo scopo è garantire dunque un servizio continuativo, garantendo alta disponibilità di servizio grazie all'affidabilità dovuta alla ridondanza di apparati; Load balancing Cluster: è un sistema nel quale le richieste di lavoro sono inviate alla macchina con meno carico di
elaborazione distribuendo/bilanciando così il carico di lavoro sui singoli nodi. Questo garantisce tempi minori di processamento di un servizio e minore affaticamento di una macchina; HPC Cluster: i computer sono configurati per fornire prestazioni estremamente alte. La macchina detta master suddivide il carico di calcoli su più nodi, al fine di guadagnare in prestazioni. Il punto saliente è che i processi sono svolti in parallelo e che processi che dovrebbero essere eseguiti separatamente sarebbero distribuiti su macchine differenti invece di aspettare di essere lanciati sequenzialmente uno dopo l altro. Gli HPC sono diffusi specialmente nei Centri di Elaborazione Dati (CED) e nelle Università a scopo di ricerca. Il M.A.Y.H.E.M. nasce per appartenere a questa ultima categoria, in quanto un HPC è la risorsa strategicamente più utile per la struttura scolastica. In caso non venga trovata una quantità di lavoro sufficiente a impegnare l'intero cluster, esso verrà convertito in uno di tipo Load Balancing. Se ancora non si presentasse l'occasione di rendere operativi tutti i nodi, il M.A.Y.H.E.M. verrà degradato a sistema Fail over. In questo modo i consumi verranno tagliati drasticamente ma il sistema sarà comunque pronto a svolgere i compiti richiesti. Questa non è la nostra prima scelta in quanto le gestione di sistemi di Load Balancing e Fail over si può rivelare decisamente più complessa di quella di un HPC. I vantaggi di un cluster sono molteplici: L economicità, infatti questi sistemi sono fino a 15 volte più economici dei tradizionali supercalcolatori rispetto ai quali, a parità di prestazioni, permettono un notevole risparmio sui componenti hardware. La scalabilità, dal momento che le risorse sono distribuite. Facilità di aggiornamento e manutenzione. Disponibilità di un gran numero di software Open Source per i
cluster, come MOSIX, openmosix e Beowulf. Incremento capacità e velocità di calcolo grazie allo sfruttamento di più unità di calcolo, di un architettura più potente e maggiore disponibilità di memoria. Lo sfruttamento della cooperazione per risolvere problemi complessi. L'affidabilità, in quanto il sistema continua a funzionare anche in caso di guasti a parti di esso, ovviamente con prestazioni inferiori. Naturalmente, sono presenti anche degli svantaggi: Difficoltà di gestione e di organizzazione di un elevato numero di computer; Scarse prestazioni nel caso di applicazioni non parallelizzabili; Occupazione di spazio fisico notevolmente superiore a quella di un singolo server; Maggiore consumo di energia rispetto a un singolo server.
La Squadra Abbiamo selezionato accuratamente i componenti del nostro Team, nonostante le nomine non siano ancora definitive. Ci siamo basati sì su competenze tecniche e/o specifiche, ma abbiamo considerato moltissimo anche la voglia di fare : ci sono addirittura dei nomi in lista d'attesa. Abbiamo scelto di non includere subito chiunque lo richiedesse per motivi prettamente logistici; coordinare una squadra di otto persone coscienti di ciò che stanno facendo durante l'allestimento di una struttura come il M.A.Y.H.E.M. è nettamente più semplice che spiegare ogni passo a chi non sa come muoversi in questo ambito. I titolari del progetto sono: Niccolò Maggioni 3^D nicco.maggioni@gmail.com 3463147053 Giovanni Berti 3^D dev.giovanniberti@gmail.com 3663226118 I componenti della squadra selezionati al momento: Guido Scalini 5^E Gianmarco Papini 3^B Francesco Masini 5^C Leonardo Guardenti 3^D Lorenzo Macelloni 1^D Mattia Innocenti 1^D