ITBO20110239A1 - Sistema di calcolo. - Google Patents
Sistema di calcolo. Download PDFInfo
- Publication number
- ITBO20110239A1 ITBO20110239A1 IT000239A ITBO20110239A ITBO20110239A1 IT BO20110239 A1 ITBO20110239 A1 IT BO20110239A1 IT 000239 A IT000239 A IT 000239A IT BO20110239 A ITBO20110239 A IT BO20110239A IT BO20110239 A1 ITBO20110239 A1 IT BO20110239A1
- Authority
- IT
- Italy
- Prior art keywords
- user
- data
- unit
- programmed
- analysis
- Prior art date
Links
- 238000004364 calculation method Methods 0.000 title claims description 77
- 238000004458 analytical method Methods 0.000 claims description 78
- 238000000034 method Methods 0.000 claims description 55
- 238000012545 processing Methods 0.000 claims description 48
- 230000015654 memory Effects 0.000 claims description 17
- 238000012795 verification Methods 0.000 claims description 8
- 230000006870 function Effects 0.000 claims description 4
- 238000002360 preparation method Methods 0.000 claims description 4
- 238000003780 insertion Methods 0.000 claims description 2
- 230000037431 insertion Effects 0.000 claims description 2
- 230000003993 interaction Effects 0.000 claims 2
- 238000013500 data storage Methods 0.000 description 18
- 238000012360 testing method Methods 0.000 description 17
- 238000007726 management method Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000006978 adaptation Effects 0.000 description 5
- 238000007405 data analysis Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000003860 storage Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000013524 data verification Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 230000007257 malfunction Effects 0.000 description 2
- 238000001228 spectrum Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 101100460719 Mus musculus Noto gene Proteins 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000001066 destructive effect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000013021 overheating Methods 0.000 description 1
- 230000003449 preventive effect Effects 0.000 description 1
- 238000003908 quality control method Methods 0.000 description 1
- 230000006798 recombination Effects 0.000 description 1
- 238000005215 recombination Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/504—Resource capping
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Hardware Redundancy (AREA)
Description
DESCRIZIONE
Annessa a domanda di brevetto per INVENZIONE INDUSTRIALE avente per titolo
“SISTEMA DI CALCOLO.â€
La presente invenzione ha per oggetto un sistema di calcolo ed in particolare un sistema di calcolo per l’analisi di dati.
Un procedimento noto di calcolo su base dati molto ampia à ̈ il cosiddetto calcolo parallelo ovvero l'esecuzione simultanea di un codice (diviso e specificamente adattato) su più microprocessori o più “core†dello stesso processore allo scopo di aumentare le prestazioni del sistema.
Esistono tuttavia software, intesi come combinazione di uno o più programmi, che non sono riadattabili al calcolo parallelo e pertanto, nel caso di elaborazione di grandi moli di dati gestiti da questi software, occorre necessariamente dotarsi di calcolatori tradizionali sempre più grandi, performanti e costosi. Un esempio di tale situazione, cui si farà nel seguito esplicito riferimento senza per questo perdere di generalità , à ̈ l’analisi scientifica dei dati provenienti del satellite INTEGRAL, la quale avviene grazie ad un software denominato OSA, appositamente studiato e sviluppato dall’†Integral Science Data Centre†(ISDC) all’università di Ginevra, costituito da un pacchetto di programmi molto complesso e non riadattabile al calcolo parallelo.
L’esecuzione di OSA à ̈ attualmente realizzata mediante calcolatori di tipo tradizionale; dall’inizio della missione del satellite INTEGRAL ad oggi i dati ottenuti dalle osservazioni del satellite stesso ammontano a circa 9 Terabytes (pacchetto-dati) e si stima che questi raggiungano circa 15 Terabytes alla fine della missione stabilita per il 2014.
La grande dimensione del pacchetto-dati necessita di un costante miglioramento delle capacità di memorizzazione e calcolo dei sistemi informatici impiegati. Per realizzare delle analisi complete il software ufficiale di analisi (OSA) necessita che il pacchetto dati sia interamente contenuto in una struttura unica (datastorage) e che sia disponibile ai sistemi di calcolo attraverso connessioni veloci che garantiscano tempi di accesso sufficientemente brevi. Ogni analisi scientifica comporta la copia dei file da analizzare sul sistema di calcolo utilizzato.
La connessione tra il data-storage ed il sistema di calcolo deve garantire efficienza e velocità . È quindi impossibile realizzare delle analisi attraverso una connessione remota con il data-storage centrale dell’ISDC; non à ̈ inoltre possibile realizzare un’analisi dati attraverso protocolli di comunicazione orientati al semplice trasferimento dati (ftp, sftp, scp). Allo scopo di realizzare un’analisi esaustiva dei dati, i vari istituti di ricerca coinvolti nel progetto di analisi dei dati si sono dotati di sistemi eterogenei di immagazzinamento del pacchetto-dati. A causa delle sue notevoli dimensioni, nella maggior parte dei casi, questo può essere incompleto e soprattutto non ridondato, determinando notevoli difficoltà di processamento e causando una diminuzione della produzione scientifica. A complicare ulteriormente la gestione del pacchetto dati contribuisce il fatto che l’ISDC mette a disposizione dati di tipo semielaborato che subiscono vari aggiustamenti prima di divenire consolidati. Quindi i sistemi di data-storage locali necessitano di continue verifiche sulle differenze esistenti tra i dati conservati all’ISDC e quelli locali. L’enorme quantità di file che costituiscono il pacchetto-dati contiene a volte anche nella forma consolidata, dei file compressi corrotti, i cui errori si evidenziano normalmente solo nel momento in cui questi vengono analizzati. Utilizzando i sistemi di calcolo tradizionali i file corrotti determinano la perdita dei risultati ottenuti e quindi la necessità di effettuare nuovamente le analisi dall’inizio dopo aver eliminato la causa dell’errore. Il controllo di qualità del pacchetto-dati à ̈ un annoso problema la cui soluzione à ̈ stata affidata fino ad oggi all’iniziativa dei singoli ricercatori. Le soluzioni adottate non hanno portato ad una soluzione definitiva e, soprattutto, utilizzabile da tutti gli utenti del software d’analisi. I calcolatori utilizzati attualmente dalla comunità scientifica che si occupa dell’analisi dei dati forniti da INTEGRAL sono stati generalmente implementati all’inizio della missione e quindi dispongono per lo più di tecnologia spesso obsoleta. La velocità di elaborazione di questi sistemi consente di realizzare l’analisi di una singola SCW, che definisce un “pacchetto dati†(puntamento singolo), in circa 900 secondi. Utilizzando calcolatori di nuova generazione à ̈ possibile abbattere questi tempi fino ad un fattore 4, ma ciò, oltre a comportare un rinnovo dell’intero parco macchine in dotazione ai ricercatori, non risolve, completamente tutti problemi descritti in precedenza.
Un ulteriore problema che può verificarsi, anche utilizzando macchine di fascia medio alta, à ̈ costituito dalla difficoltà di garantire il completamento di elaborazioni che possono richiedere fino a 120 giorni di calcolo ininterrotto a causa della grande e sempre crescente mole dei dati da elaborare. Interruzioni del calcolo possono essere determinate da: cadute di rete di alimentazione o perdita di connettività con il datastorage o con i client connessi ai server di calcolo. A ciò si aggiunga che in tali condizioni le macchine tradizionali usualmente impiegate in tali calcoli sono soggette a surriscaldamenti e malfunzionamenti.
In questo contesto, compito tecnico precipuo della presente invenzione à ̈ proporre un sistema di calcolo che sia esente dai citati inconvenienti.
Uno scopo della presente invenzione à ̈ proporre un sistema di calcolo maggiormente veloce ed al contempo economico rispetto alle soluzioni note destinate all’elaborazione di pacchetti di dati nell’ordine dei terabyte.
Un altro scopo della presente invenzione à ̈ proporre un sistema di calcolo robusto ed affidabile.
Un altro scopo ancora à ̈ proporre un sistema di calcolo espandibile in modo semplice ed economico.
Il compito tecnico precisato e gli scopi specificati sono sostanzialmente raggiunti da un sistema di calcolo secondo la rivendicazione 1.
Ulteriori caratteristiche e vantaggi della presente invenzione appariranno maggiormente chiari dalla descrizione indicativa, e pertanto non limitativa, di una forma di realizzazione preferita ma non esclusiva di un sistema di calcolo come illustrato negli uniti disegni in cui:
- la figura 1 illustra un sistema di calcolo secondo la presente invenzione in una vista schematica a blocchi; - la figura 2 illustra uno schema a blocchi relativo al funzionamento del sistema di figura 1;
- la figura 3 illustra un secondo schema a blocchi relativo al funzionamento del sistema di figura 1.
Con riferimento agli uniti disegni, con 1 Ã ̈ globalmente indicato un sistema di calcolo secondo la presente invenzione.
Il sistema 1 di calcolo o calcolatore 1 o sistema 1 di elaborazione comprende una pluralità di unità 2 di calcolo connesse tramite una rete 3 locale lan; tale tipologia di struttura à ̈ usualmente denominata “cluster†ed à ̈ indicata per chiarezza con il riferimento “C†.
Preferibilmente, il cluster C à ̈ alloggiato in una struttura metallica, non illustrata, di tipo espandibile per alloggiare un numero predeterminato di unità 2 di calcolo, anche maggiore di quelle schematicamente illustrate, in funzione delle esigenze del sistema 1. Le unità 2 di calcolo definiscono dei nodi 2 del sistema 1 ed in particolare del cluster C.
Preferibilmente, le unità 2 di calcolo sono di tipo commerciale definite da Personal Computer “PC†, sostanzialmente noti, in modo da garantire il miglior rapporto prezzo/prestazioni.
Ad esempio il sistema 1 comprende trenta unità 2 di calcolo che comprendono, ciascuna, un processore QuadCore (Intel Q6600), 4 Gigabytes di RAM e 320 GigaBytes di Hard Disk SATA-2.
Complessivamente l’insieme delle unità 2 ha quindi le seguenti caratteristiche hardware:
- 120 processori;
- 120 Giga bytes di Ram totale (1066 Mhz di clock); - 7.5 Tera Bytes di spazio disco totale shared FS espandibile fino a 900 Tera Bytes (480 nella configurazione attuale di spazio disco utilizzabile come UFS, come sarà chiarito in seguito).
Preferibilmente, ciascuna unità 2 di calcolo à ̈ provvista di una interfaccia di rete, non illustrata, preferibilmente integrata nella schede madre dell’unità 2 stessa, tra le quali à ̈ realizzata la comunicazione fra i nodi 2.
Vantaggiosamente, nel caso preferito in esempio, in ciascuna unità 2 di calcolo à ̈ installato il pacchetto OSA.
Preferibilmente, le interfacce sono interconnesse tramite almeno uno switch 2a ethernet ad esempio da 1 Gbit/sec.
Il sistema 1 comprende una memoria o struttura 4 di contenimento dei dati, denominata anche “data-storage†.
Nell’esempio preferito, il data storage 4 contiene tutti i dati del Satellite INTEGRAL aggiornati quotidianamente come sarà di seguito meglio chiarito.
Vantaggiosamente, la memoria 4 à ̈ anch’essa collegata alla rete 3 locale tramite lo switch 2a.
Secondo quanto illustrato, il sistema 1 comprende una unità 5 di controllo, denominata “Master†o “Master Controller†, connessa alla rete 3 LAN.
Nell’unità 5 à ̈ installato un software che realizza l’interfaccia (porting) fra un generico utente 6 ed i nodi 2, come sarà chiarito in seguito.
Preferibilmente, l’unità 5 à ̈ costituita da un PC di tipo sostanzialmente noto.
Il generico utente 6 Ã ̈ schematizzato con un corrispondente blocco comprensivo di un PC di collegamento alla rete 3.
Inoltre, nell’unità 5 à ̈ installato un software gestore delle risorse di clustering del sistema 1.
A titolo di esempio, nella preferita forma di realizzazione, come software di gestione del cluster à ̈ utilizzato il noto prodotto SLURM (Simple Linux Utility for Resource Management).
Si osservi che SLURM richiede una parte client sui nodi 2 di calcolo che, preferibilmente, comunicano in maniera criptata attraverso uno scambio di chiavi con il “Master†5.
SLURM consente di allocare le macchine 2 ovvero permette all’utente di disporre delle cpu di queste macchine e di usarle in modo esclusivo.
Vantaggiosamente, il cluster C à ̈ gestito mediante SLURM che à ̈ un sistema di gestione delle risorse base del tutto settabile dall’amministratore del sistema ed in parte dall’utente, in modo che sia controllata e controllabile la modalità di accesso degli utenti alle risorse del sistema.
Più in particolare, l’amministratore ha preferibilmente facoltà di settare il sistema di gestione delle risorse base, mentre l’utente può definire al login le risorse che vuole utilizzare durante quella sessione.
Preferibilmente, il sistema 1 comprende una seconda unità 7 di controllo installata come riserva attiva dell’unità 5.
Nell’unità 7 à ̈ installato il software che realizza l’interfaccia (porting) fra il generico utente 6 ed i nodi 2.
Inoltre, nell’unità 7 à ̈ installato il software gestore delle risorse di clustering del sistema 1.
L’unità 7 definisce di fatto una unità di controllo di ricambio dell’unità 5 per sopperire ad eventuali malfunzionamenti di quest’ultima.
In altre parole, le unità 5 e 7 di controllo sono ridondanti ed entrambe supportano il software di gestione del cluster C.
Preferibilmente, l’unità 7 à ̈ costituita da un personal computer PC, di tipo sostanzialmente noto.
Il sistema 1 di calcolo comprende, collegato alla rete 3, una unità 8 computerizzata di memoria. Preferibilmente, l’unità 8 à ̈ definita da un PC configurato come NAS (Network Attached Storage).
L’unità 8 definisce uno spazio disco per gli utenti denominato “area Home†dove, ad esempio, conservare i risultati delle elaborazioni eseguite dai singoli utenti 6.
L’area Home à ̈ preferibilmente realizzata in modalità RAID-5 che consente una ottima stabilità dei dati. In particolare, l’unità 8 computerizzata di memoria comprende dischi SATA.
Per sopperire ad un eventuale degrado della velocità di scrittura/lettura dei dati, il sistema 1 prevede uno spazio temporaneo, schematizzato con un blocco 20 in figura 1, realizzato allocando temporaneamente e per la durata della sessione corrente parte dello spazio disco delle unità 2 non utilizzato dal sistema. Questo permette ai processi in esecuzione di accedere direttamente all’area temporanea connessa direttamente al bus SATA delle unità 2, utilizzando così la massima velocità di accesso possibile.
In pratica, in questo caso, per il calcolo vero e proprio si sfrutta lo spazio disco delle macchine 2 allocate dall’utente, o parte di esso.
In una seconda forma di realizzazione, anch’essa indicata nella figura 1, il sistema 1 comprende uno spazio temporaneo realizzato tramite un hard disk 9 di tipo convenzionale (ad esempio da 2 Tera Bytes), connesso direttamente al bus SATA dell’unità 8.
Preferibilmente, secondo la presente invenzione, il sistema 1 di calcolo à ̈ programmato in modo da occuparsi automaticamente degli spostamenti dei dati tra l’area temporanea definita dall’hard disk 9 o dallo spazio disco 20 non utilizzato nelle unità 2 e l’area home nell’unità 8, consentendo un notevole miglioramento della velocità di scrittura/lettura (fino ad un fattore 12).
Il sistema 1 di calcolo comprende una unità 10 computerizzata per la connettività della rete 3 con l’ambiente esterno ed à ̈ inserita fra l’utente 6 ed il cluster C.
L’unità 10 assolve alla funzione di firewall per garantire la sicurezza della rete 3; preferibilmente, l’unità 10 à ̈ costituita da un PC di tipo noto.
Ritornando alla struttura 4 di contenimento dati, si osserva che, preferibilmente, la stessa comprende due unità gemelle 4a, 4b, ad esempio Nexsan Sata Beast.
Preferibilmente, tali due unità gemelle 4a, 4b sono gestite da tre PC server, anch’essi non illustrati, con capacità di alloggiare, ad esempio, fino a 84 dischi da 1 Tera Bytes in modalità RAID-6.
Le unità 4a, 4b sono ridondanti e, preferibilmente, definiscono, nel sistema 1 di calcolo, una unica unità per il contenimento dei dati.
La connettività interna verso il Data Storage in totale sicurezza anti intrusione à ̈ garantita da un PC dedicato alla funzione di firewall.
In pratica, il sistema 1 comprende una unità 11 computerizzata di controllo con funzioni di firewall (ad esempio utilizzando il software Untangle 7.4). Questo colloquia con gli utenti del Cluster C permettendo la condivisione dei dati con il data storage 4 in modo controllato e ne garantisce la protezione. Consente inoltre una connessione protetta del data storage 4 verso l’esterno, schematizzato con un blocco 12.
L’unità 11 computerizzata à ̈ inserita fra il data storage 4 ed il cluster C.
L’unità 11 computerizzata à ̈ inserita fra il data storage 4 ed l’ambiente esterno 12.
Nella soluzione preferita illustrata a titolo di esempio, l’esterno à ̈ definito dall’ISDC per la sincronizzazione dei dati di INTEGRAL nella struttura 4 di contenimento dati con l’archivio centrale.
In altre parole, la memoria 4 Ã ̈ configurata anche per sincronizzare i dati in essa memorizzati con eventuali archivi esterni.
Secondo quanto illustrato, il sistema 1 di calcolo comprende un gruppo 13 di continuità per la sicurezza di alimentazione del cluster C.
A titolo di esempio, il gruppo 13 comprende un UPS da 10Kva.
Il sistema 1 comprende un secondo gruppo 14 di continuità per la sicurezza di alimentazione del data storage 4; ad esempio, il gruppo 14 comprende un UPS da 10Kva.
Nella preferita forma di realizzazione illustrata nella figura 1, il sistema 1 di calcolo comprende una unità 15 computerizzata che definisce una interfaccia web di accesso al sistema 1. In tal modo, à ̈ possibile accedere al sistema 1 tramite web.
Il software, o l’insieme di programmi, che gestisce tutte le operazioni del sistema 1 di calcolo comprende un sistema operativo free, ad esempio Linux Debian Lenny, kernel 2.6.26-1-686.
Il software che gestisce tutte le operazioni del sistema 1 di calcolo comprende, come accennato, un gestore delle risorse di clustering, preferibilmente SLURM free.
Il software del sistema 1 di calcolo comprende inoltre un insieme di programmi dedicati, preferibilmente scritti in Shell Bash.
Preferibilmente, il software di gestione del sistema 1 di calcolo à ̈ localizzato nelle unità 5, 7 di controllo. Riepilogando, il sistema 1 di calcolo comprende i PC 2, definiti “Nodi†, alloggiati in cabinet di tipo convenzionale a basso costo e degli switch 2a di interconnessione tra i nodi 2 con il relativo cablaggio, vantaggiosamente posizionati su una scaffalatura di tipo commerciale. La scaffalatura ospita, in particolare in un modulo estraibile, il sistema di gestione locale del Cluster C, comprendente, ad esempio, due monitor da 19 pollici, una tastiera ed un mouse non illustrati. La struttura à ̈ preferibilmente modulare e quindi espandibile a costi contenuti. Uno dei vantaggi maggiori che deriva da questa implementazione consiste essenzialmente in un notevole risparmio economico in alternativa all’utilizzo di RACK professionali solitamente utilizzati nei centri di calcolo.
I singoli elementi “Nodi†2 del Cluster C sono realizzati con Personal Computer di tipo commerciale di fascia media. Questa scelta realizza un ottimo compromesso tra qualità e costo dei singoli Nodi 2 rendendo economica la sostituzione dei vari componenti in caso di rottura anche in considerazione del fatto che la comunicazione tra i nodi à ̈ stata realizzata utilizzando l’hardware in dotazione alle Motherboard, quindi senza costi addizionali.
Il software del sistema 1 comprende una procedura di avvio che si attiva, in uso, quando il sistema 1 di calcolo, in particolare il cluster C, viene avviato o riavviato.
All’avvio, il software esegue una procedura di avvio che implementa una analisi ed una definizione del sistema 1 all’avvio.
La procedura di avvio comprende una pluralità di operazioni, il cui diagramma a blocchi à ̈ schematizzato nella figura 2.
Per semplicità si farà nel seguito riferimento alla terminologia LINUX, senza per questo perdere di generalità .
Il riferimento alla terminologia del sistema operativo LINUX à ̈ utilizzata, per semplicità , anche nel diagramma a blocchi di figura 2.
La procedura di avvio comincia con un comando di partenza o inizio (“ClustStorageInit†).
La procedura di avvio prosegue con una fase di controllo dei nodi 2 attivi, ovvero una fase di verifica di quali nodi 2 siano connessi in rete (“Wait for Hosts Online†).
La procedura verifica se tutti i nodi della rete sono attivi (“All Hosts On-Line†).
In caso negativo ovvero se non tutti i nodi sono attivi (“Status=Hosts Off-Line†), la procedura di avvio ritorna alla verifica dello stato.
In caso affermativo, ovvero se tutti i nodi 2 sono connessi, la procedura di avvio prosegue con una fase di collegamento o aggancio, fase che nel gergo LINUX si chiama di montaggio, locale dello spazio libero su ogni nodo 2 (“Mount Local Storage†).
Il montaggio locale dello spazio libero su ogni nodo 2 viene quindi verificato.
In caso negativo (“Status=NoLocMount†) la procedura ritorna alla verifica dello stato dei nodi.
In caso affermativo, ovvero se lo spazio locale di ciascun nodo risulta invece montato (“Mounted?†), la procedura prosegue con una fase di aggancio o montaggio dello spazio libero di ogni nodo 2 su tutti i nodi (“Master Shared Storages†).
Il montaggio dello spazio libero di ogni nodo 2 su tutti i nodi viene verificato (“Mounted?†).
In caso negativo (“Status=NoSharMount†), la procedura ritorna alla verifica dello stato.
In caso affermativo, ovvero se il montaggio dello spazio libero di ogni nodo 2 su tutti i nodi viene verificato, preferibilmente, il procedimento comprende una fase di fusione di tutto lo spazio in un unico file system (“Collate Storages†) visibile dagli utenti.
Attraverso le operazioni sopra descritte, viene creata un’area UFS (Union File System) ovvero uno spazio disco supplementare che soddisfa la necessità di un notevole spazio disco richiesto dalle analisi, ad esempio di quelle eseguibili tramite OSA che, come accennato, à ̈ installato in tutte le unità 2 di calcolo.
L’architettura UFS (Union File System) à ̈ stata scelta in quanto, vantaggiosamente, in caso di arresto o guasto distruttivo di singoli nodi, la perdita di dati viene limitata alle sole porzioni di UFS interessate al guasto o all’arresto.
Vantaggiosamente, la presenza di questo spazio disco supplementare richiesto dalle analisi consente di mantenere nello spazio denominato “home directory†, solo i dati delle ultime analisi.
Preferibilmente, il sistema 1 comprende uno spazio supplementare utilizzabile genericamente come ulteriore area di storage.
In alternativa, il sistema 1 comprende, al posto del file system basato sul sistema UFS, un sistema PVFS2 (Parallel Virtual File System) ovvero un file system di tipo parallelo o distribuito che consente di velocizzare gli accessi ai dati mantenendo inalterato il grado di affidabilità .
La procedura di avvio comprende quindi una fase di verifica dell’avvenuta collazione degli spazi disco (“Collated?†).
In caso negativo (Status=NoCollate) la procedura ritorna alla verifica dello stato.
In caso affermativo, ovvero se à ̈ avvenuta la collazione degli spazi disco, la procedura di avvio si conclude con successo (“Status=Success†).
Il procedimento di analisi o di calcolo comprende anche una procedura per l’aggiunta di un nuovo nodo 2 al cluster C.
La procedura di aggiunta prevede che il sistema operativo compreso del software di gestione del sistema 1 utilizzato su tutti i nodi venga clonato sul nuovo nodo 2. È quindi possibile estendere facilmente e rapidamente il numero dei nodi che compongono il cluster C.
In figura 3 à ̈ illustrato lo schema a blocchi relativo alla procedura di login, avviata da una richiesta di accesso al sistema 1 da parte di un utente 6 (“Login†). In altre parole, lo schema di figura 3 esemplifica l’avvio del software di gestione del sistema 1, in particolare per l’attribuzione e la selezione delle risorse dello stesso agli utenti.
In seguito all’accesso dell’utente, il sistema 1 effettua il settaggio automatico delle variabili di ambiente che sono opportunamente definite in un file di configurazione.
Successivamente, al login, ogni utente può ridefinire a proprio piacere il settaggio delle variabili d’ambiente o lavorare con quelle già definite. Questo procedimento facilita l’uso del software d’analisi rendendo superflua la conoscenza dei settaggi di partenza che richiedono altrimenti una specifica conoscenza del sistema operativo in uso.
La procedura di login (“Login†) prevede in prima istanza il riconoscimento dell’utente (“Valid User†) ovvero se l’utente à ̈ abilitato all’interazione con la rete 3 informatica.
Nel caso in cui l’utente non sia riconosciuto come valido, tramite una segnalazione di errore (“Error†), la procedura di avvio viene terminata.
Nel caso in cui l’utente sia riconosciuto, la procedura verifica se l’utente à ̈ abilitato a scambiare informazioni con il sistema (“Interactive?†) ovvero se l’utente 6 à ̈ abilitato all’interazione con il cluster C. In caso negativo, viene attivato un server Sftp (“Activate Sftp Server†) e la procedura di login ha termine.
Preferibilmente, nel caso in cui l’utente 6 richieda un collegamento orientato al trasferimento dati viene automaticamente invocato il server SFTP (“Activate Sftp Server†).
Nel caso in cui l’utente valido sia interattivo, ovvero con possibilità di scambiare informazioni con il sistema 1 e con il cluster C in particolare, la procedura prevede, se esistono, di ripristinare sessioni esistenti (“Resume?†).
Più in particolare, si osserva che gli utenti effettuano il login da remoto attraverso l’uso di vari client ssh, disponibili su qualunque sistema operativo (Microsoft, Linux, Unix, MacOS, ecc.). Il software d’analisi del sistema 1 di elaborazione richiede a volte tempi di esecuzione di molte ore e pertanto à ̈ previsto un sistema che una volta lanciata l’analisi, consente agli utenti di effettuare il logout sganciando la sessione di lavoro senza interrompere l’analisi in corso. Al successivo login, à ̈ quindi presentata una lista contenete le analisi ancora attive con la possibilità di ripristinare il controllo di ogni sessione. In questo modo l’utente può effettuare una pluralità di login e lanciare tutte le analisi che vuole fino ad esaurimento delle risorse a sua disposizione (il numero di nodi per ogni utente, come sarà meglio chiarito in seguito).
Le sessioni contenenti le analisi terminate saranno chiuse automaticamente e le risorse liberate saranno rese disponibili agli utenti.
Nel caso in cui l’utente sia identificato come interattivo, à ̈ quindi offerta la possibilità di ripristinare il controllo su una sessione ancora attiva (“Resume?†).
In caso affermativo, ovvero nel caso in cui venga ripristinata, ovvero ripresa, una sessione esistente (“Resume Session†), la procedura di login ha termine.
Viceversa, in caso negativo, l’utente deve preferibilmente selezionare il numero di nodi da dedicare alla propria analisi o sessione (“Select Nodes Number†).
Il programma consente in pratica l’allocazione delle risorse di calcolo. Ad ogni utente viene assegnata una risorsa di calcolo definita come numero massimo di nodi utilizzabili. Gli utenti possono effettuare un numero di login e di analisi indipendenti fino all’esaurimento delle risorse a propria disposizione.
L’utente 6 usufruisce della rispettiva unità computerizzata per l’immissione, nella rete 3 informatica, di almeno una istanza di elaborazione.
Le unità 2 di calcolo sono programmate per eseguire una pluralità di istruzioni facenti parte di un programma di calcolo e l’ unità 5 e/o 7 à ̈ programmata per ricevere detta istanza di elaborazione e comandare, su almeno una delle unità 2 di calcolo l’esecuzione di un sottoinsieme delle istruzioni del programma di calcolo.
Preferibilmente l’unità o le unità 2 di calcolo, destinate ad eseguire le istruzioni del programma di calcolo, sono selezionate fra un sottoinsieme di unità 2 di calcolo del cluster C disponibili al determinato utente.
Preferibilmente, la o le unità 2 di calcolo eseguono il sottoinsieme di istruzioni del programma di calcolo su una porzione di dati per definire una cosiddetta analisi sulla porzione di dati.
Preferibilmente, il sottoinsieme di istruzioni à ̈ selezionato in funzione della istanza di elaborazione. Preferibilmente, la porzione di dati à ̈ selezionata fra la pluralità di dati contenuti nella citata memoria 4 in funzione della istanza di elaborazione.
Nel caso in cui il cluster C sia totalmente occupato, in questa fase verrà segnalato all’utente che potrà decidere di attendere la disponibilità di nodi oppure effettuare un nuovo login successivamente.
Con riferimento alla figura 3 infatti si osserva che in seguito alla selezione del numero di nodi il sistema 1 verifica se il numero di nodi à ̈ superiore al numero massimo di nodi ammissibile (“Nodes>MAX†).
In caso affermativo, all’utente vengono comunque assegnati il numero massimo di nodi disponibili all’utente (“Nodes=Max User Nodes†) e la procedura prosegue analogamente al caso in cui il numero di nodi à ̈ inferiore al numero massimo di nodi ammissibile.
In entrambi i casi (numero di nodi uguali al massimo o inferiore)il sistema verifica se i nodi selezionati sono maggiori dei nodi disponibili per l’utente per una nuova analisi (“Nodes>Left Nodes†).
In caso affermativo, viene comunque assegnato un numero di nodi uguale al massimo dei nodi disponibili per una nuova analisi (“Nodes=Left Nodes†).
Sia in caso affermativo che in caso negativo, il sistema verifica la disponibilità effettiva di tali nodi (“Available?†).
In caso negativo, ovvero nel caso in cui i nodi disponibili all’utente per una nuova analisi non siano effettivamente disponibili, la procedura prevede di porre l’utente in attesa (ovvero pone l’utente in coda, in attesa che si liberino dei nodi 2).
In caso positivo, ovvero nel caso in cui i nodi 2 disponibili all’utente per una nuova analisi siano effettivamente disponibili, il sistema 1 alloca i nodi all’utente (“Allocate Nodes†).
La procedura di avvio ha quindi termine (“Exit†).
Preferibilmente, il numero massimo dei nodi che possono essere attributi all’utente à ̈ modificabile da un amministratore del sistema.
Una volta effettuato il login tramite un opportuno comando, preferibilmente seguito dalla password dell’utente, si apre una finestra grafica, non illustrata, che riassume le caratteristiche del Cluster C con i programmi installati. Successivamente viene preferibilmente mostrata una lista sintetica dei progetti di analisi, in particolare dei progetti di analisi OSA, realizzati dal solo utente che effettua il login e preferibilmente contenente informazioni riguardanti il nome, la directory che li contiene ed il numero di nodi su cui à ̈ stato effettuato il run o analisi. In funzione del programma utilizzato l’utente dovrà interagire con una serie di interfacce grafiche dotate di menù a risposta singola o multipla che gli consentiranno di preparare con facilità tutti i parametri necessari all’analisi e di salvare le scelte effettuate su file richiamabili e modificabili successivamente.
Nel caso specifico di OSA, ad esempio, i programmi disponibili sul Cluster, oltre a quelli implementati sul sistema operativo sono:
cog_create_gui: realizza un adattamento al programma “og_create†del pacchetto OSA, in grado di predisporre oggetti per analisi successive.
cibis_science_gui: che realizza un adattamento al programma “ibis_science_analysis†del pacchetto OSA.
I suddetti adattamenti, sono simili al cosiddetto “porting†. Il termine “porting†usualmente indica la conversione di un software realizzato per girare in flussi seriali (dove l’istanza à ̈ inviata ad una singola CPU) in una soluzione compilata per girare in parallelo (più istanze su più CPU contemporaneamente).
In altre parole,
cog_create_gui: effettua il porting verso il programma “og_create†del pacchetto OSA, che effettua la preparazione degli oggetti per le analisi successive; cibis_science_gui: che effettua il porting verso il programma “ibis_science_analysis†del pacchetto OSA.
Quest’ultimo porting introduce una caratteristica nuova nell’analisi scientifica dei dati di INTEGRAL, che consiste nella possibilità di effettuare uno splitting asimmetrico dei prodotti di analisi. Attraverso questa caratteristica à ̈ ora possibile raggruppare per orbite le osservazioni da analizzare migliorando notevolmente la bontà delle analisi degli spettri e delle curve di luce. Inoltre, tali programmi permettono l’ottimizzazione della gestione delle risorse allocate; suddividono il singolo lavoro seriale in più lavori destinati a girare su ciascuna CPU allocata.
Altri programmi disponibili sono:
search: che consente di effettuare una ricerca veloce di parole all’interno delle strutture dati. Questa utility à ̈ stata in particolare sviluppata per consentire l’identificazione veloce di eventuali errori negli output di analisi;
qc: à ̈ un programma che risolve totalmente il problema della validazione dei dati di INTEGRAL contenuti nell’archivio.
L’uso di qc produce in uscita tre file:
file1.swg: che contiene il file di input verificato e corretto;
file1.swc: che contiene i file corrotti e scartati automaticamente dal file di input corretto; file1.swm: che contiene i file mancanti dall’archivio e scartati automaticamente dal file di input corretto.
L’uso dei due file file1.swc, file1.swm consente di costruire un database utilizzabile da tutti gli utenti e contenente informazioni utili per le successive analisi. Questo database dotato di tempi di accesso molto rapidi permette di definire i file corrotti o mancanti dell’intero archivio dati. Attraverso una semplice procedura automatica sarà quindi possibile tentare la correzione di questi file effettuando nuovamente il loro download dall’archivio centrale all’ISDC.
Più nel dettaglio, la verifica dei dati da analizzare avviene attraverso due controlli, uno di consistenza ed uno do congruità .
In particolare, la verifica dei dati da analizzare avviene attraverso almeno una procedura, preferibilmente due, scritte, ad esempio, in linguaggio “bash†che eseguono entrambe un controllo di consistenza su due file che nel caso presentino difetti di formato causano l’interruzione irreversibile dell’analisi in corso.
Le due procedure, prima di effettuare il controllo di congruità sui file, verificano se questi sono stati già classificati come non utilizzabili accedendo ad un archivio, denominato per semplicità “IbisDB†, e preferibilmente basato su “MySQL†, che, come sarà chiarito in seguito, contiene lo stato di ogni singolo file dell’intero Data-Storage 4, nel formato “fits†preferibilmente compresso.
Più in particolare, con “controllo di consistenza†si intende la verifica dell’esistenza del file esaminato all’interno della struttura mentre per “controllo di congruità †si intende la verifica della correttezza del formato del file. Nell’esempio preferito, le verifiche consistono nell’analizzare il file con il tool “fitsverify†della libreria open source CFITSIO.
Questi file sono, come accennato, preferibilmente in formato “fits†compresso e vengono verificati da specifici programmi, ad esempio attraverso l’uso di un tool della libreria CFITSIO. La verifica viene effettuata utilizzando come parametro di input il file preparato dall’utente contenente tutte le SCW interessate all’analisi.
Preferibilmente, entrambe le procedure generano automaticamente tre file con le seguenti estensioni: file.swg contenente la lista delle SCW che hanno superato il test di congruenza;
file.swm contenente la lista delle SCW mancanti nell’archivio o data-storage;
file.swc contenente la lista delle SCW corrotte, che quindi non hanno superato il test di congruenza.
Il file.swg sarà quindi utilizzato dall’utente per lanciare l’analisi.
I file file.swg, file.swm, file.swc sono utilizzati da un processo di sistema che si incarica di realizzare un download automatico dall’ISDC dei file mancanti e/o corrotti.
Una procedura di archiviazione provvede all’utilizzo finale dei tre file.swg ,files file.swm, file.swc inserendo in detto archivio denominato “IbisDB†informazioni inerenti ad almeno uno dei suddetti file. In pratica l’archivio denominato “IbisDB†contiene lo stato di tutti i file utilizzati per le analisi. Mentre il data storage, l’unità 4, contiene tutti i file del satellite INTEGRAL.
Tale archivio à ̈ utilizzato per accelerare la verifica della congruità dei dati, effettuata ad esempio mediante le citate due procedure, denominate “qc.sh†e “ qclt.sh†, e per generare dei report statistici.
I due programmi cog_create_gui e cibis_science_gui, consentono di utilizzare a pieno la potenzialità di calcolo del cluster C. Essi si occupano infatti di: gestire le risorse di calcolo, ovvero i nodi 2; allocare e suddividere il job o istanza unica e seriale in tanti job o istanze, mandati in esecuzione su ogni singola CPU allocata. Attraverso questo meccanismo à ̈ possibile realizzare un incremento della velocità totale di calcolo e quindi di analisi scientifica dei dati fino ed oltre di un fattore 100 se paragonato con i mezzi attualmente utilizzati dalla comunità scientifica del satellite INTEGRAL.
Più nel dettaglio, nel preferito esempio di utilizzo per analisi effettuate tramite OSA, si osserva che un’analisi scientifica effettuata tramite il pacchetto OSA prevede una fase di preparazione dell’ambiente di analisi utilizzando come parametro di ingresso il file di lista delle SCW ovvero, in generale, un file espressione del o dei pacchetti di dati che si intendono utilizzare per l’analisi.
Durante questa fase viene preferibilmente costruita una struttura di liste, cartelle e sottocartelle.
Tale struttura contiene la copia di tutti i dati che saranno utilizzati per l’analisi vera e propria.
Più in particolare, nell’esempio preferito le liste contengono le definizioni che il software OSA utilizza per costruire le strutture di analisi e poi per effettuare le analisi stesse.
Per superare il limite del processamento seriale dell’intera struttura determinata dal file di lista, la procedura “cog_create_gui†effettua sostanzialmente una suddivisione della lista principale in sottoliste creando di fatto una struttura distinta per ogni sottolista. La suddivisione tiene conto delle risorse effettivamente allocate dall’utente e genera un file di log che sarà utilizzato per mostrare lo stato dei lavori effettuati.
Preferibilmente, la procedura memorizza su alcuni file di sistema i parametri che saranno poi utilizzati dalla procedura di analisi scientifica.
L’ analisi scientifica del pacchetto dati, ovvero delle SCW nel caso in esempio, utilizza le strutture, ovvero le citate cartelle e sottocartelle.
L’ analisi scientifica comprende una fase di controllo per controllare che il numero delle risorse allocate all’utente coincida con quello utilizzato dalla procedura di preparazione; in caso contrario, viene segnalato all’utente un errore.
Si osservi che, preferibilmente, quest’ultima procedura effettua il lancio delle istanze multiple contemporaneamente sulle CPU dei nodi 2 allocati.
Preferibilmente le citate sottoliste associate alla lista principale sono ottenute suddividendo linearmente il pacchetto di dati, ad esempio il numero delle SCW, tra le CPU delle unità 2 di calcolo effettivamente allocate all’utente.
Per esempio, nel caso di un file di lista contenete 200 SCW eseguito su 5 Nodi produce una struttura con 20 sottoliste contenenti ciascuna 10 SCW.
Nel momento in cui l’analisi scientifica richieda una suddivisione non lineare determinata ad esempio dalla distribuzione irregolare dei dati, ad esempio dei conteggi (fotoni) contenuti nelle SCW da analizzare, si preferisce la compilazione manuale della suddivisione delle sottoliste. Questo viene preferibilmente realizzato dall’utente 6 separando con una riga vuota nel file di lista principale le varie sottoliste. La citata procedura “cog_create_gui†riconosce il contenuto asimmetrico della lista e permette all’utente di definire l’ambiente per l’analisi successiva in forma “simmetrica†o “asimmetrica†. In questo modo l’utente conduce delle analisi sugli stessi file di lista scegliendo fra diverse suddivisioni.
Vantaggiosamente, l’utente 6, confrontando i risultati ottenuti, à ̈ in grado di calibrare al meglio la sensibilità del tool di analisi scientifica.
A titolo di esempio, sono stati eseguiti dei test su un pacchetto di dati costituito da 200 SCW (singole osservazioni) dell’orbita 224 ottenuta dal satellite INTEGRAL. Le analisi sono state condotte sul cluster C del sistema 1 di calcolo con il pacchetto OSA.
Come termine di paragone per caratterizzare l’incremento di prestazioni riguardante il tempo di analisi à ̈ usato stato un PC denominato “PC di riferimento†. Questo PC di riferimento à ̈ del tipo solitamente impiegato per le analisi dei dati scientifici ed à ̈ dotato di una architettura a singolo processore multithread di tipo Intel Pentium 4 con sistema operativo LINUX OPEN-SUSE. Su questo stesso PC à ̈ stata condotta l’analisi fino al livello di estrazione degli spettri utilizzando lo stesso pacchetto di dati e la stessa versione di OSA utilizzati per il sistema 1. Il tempo impiegato à ̈ stato di circa 900 secondi per ogni SCW. Per meglio caratterizzare il comportamento del cluster C in condizioni di esercizio reali, sono stati condotti tre tipi di test:
- test di singoli run; in cui un solo utente ha impegnato una parte delle risorse di calcolo realizzando delle analisi con diversi livelli di suddivisione dei job;
- test su run contemporanei; in cui più utenti hanno impegnato più risorse contemporaneamente per un totale di 20 nodi su 30 (80 processori su 120);
- test su un set di dati di grandi dimensioni.
In un primo test su singoli run si sono utilizzati 5 Nodi 2 per processare una lista contenente 200 SCW totali, in modalità simmetrica.
In queste condizioni, il sistema 1, dopo l’allocazione di 5 nodi (20 cpu) effettua una suddivisione delle 200 SCW da analizzare distribuendo il carico di lavoro sulle 20 cpu (come accennato, i PC dei singoli nodi hanno, ad esempio, 4 processori) che corrispondono a 20 slice (con il termine “slice†si intendono i processori utilizzati in ciascuna sessione). Ognuna delle slice realizza l’analisi successiva (seriale) di 10 SCW. Quindi il lavoro totale viene distribuito sui 5 nodi che effettuano contemporaneamente (in parallelo) 20 run, tenendo in coda le rimanenti SCW da analizzare. Il tempo di calcolo totale dell’analisi di tutte le SCW à ̈ stato: T=2650 s che espressi in secondi per SCW equivalgono a TS=13 s per SCW (2650/200 SCW).
Considerando il tempo di circa 900 secondi per analizzare ogni SCW occorrente al PC di riferimento, si definisce come fattore di incremento R l’incremento della velocità di analisi del sistema 1 rispetto al PC di riferimento:
R = 69 (dove R=900/TS).
Un secondo test à ̈ stato realizzato utilizzando una suddivisione su 10 slice; 20 SCW/slice, 200 SCW totali, T=4200 s;
TS=21 s per SCW;
R=43.
L’aumento del tempo di calcolo à ̈ dovuto al maggior accodamento dei job sulle slice, che in questo caso raddoppia rispetto al test precedente determinando quasi un raddoppio del tempo di calcolo. Questo à ̈ significativo nei confronti della scelta che l’utente deve effettuare rispetto alla allocazione delle risorse di calcolo del cluster per una determinata analisi dei dati del satellite.
Effettuando lo stesso test utilizzando in questa modalità tutti i nodi del cluster (nell’esempio preferito 30) à ̈ stato raggiunto un fattore di incremento di circa R=200
I test effettuati in modalità contemporanea rispecchiano maggiormente il comportamento in condizioni reali di lavoro del cluster C, in cui diversi utenti lanciano dei job contemporaneamente.
In un primo test, tre utenti allocano contemporaneamente:
Utente 1: 10 slice, 20 SCW/slice, 200 SWC totali:
T= 3120 s;
TS= 30 s per SCW;
R= 31;
3 nodi, 9 job contemporanei.
Utente 2: 20 slice 10 SCW/slice 200 SCW totali:
T= 4200 s;
TS= 21 s per SCW;
R=43;
6 nodi, 19 job contemporanei.
Utente 3: 40 slice 5 SCW/slice, 200 SCW totali;
T= 3120 s;
TS=15 s per SCW;
R=58;
11 nodi, 39 job.
Per i test effettuati nella modalità di run multiutenti in contemporanea sono stati utilizzati complessivamente 20 nodi su 30 per un totale di 68 istanze contemporanee. E' stato inoltre effettuato un test su un set di dati di 5500 SCW, ovvero di grandi dimensioni,su 10 nodi, il tempo di calcolo à ̈ risultato essere di circa:
T=72000 s;
TS=13 s per SCW;
R=69.
Sulle base dei test effettuati appare evidente la linearità di comportamento del sistema.
Si osservi che per l’ultimo test il paragone con il sistema di riferimento à ̈ stato solo ipotizzato in quanto il tempo necessario per effettuare l’analisi sul PC di riferimento (circa 60 giorni) non ha consentito all’analisi di giungere a conclusione. Durante il run sono infatti intervenuti vari crash dovuti alla debolezza intrinseca del PC di riferimento.
In generale, il sistema 1 di calcolo ed il relativo software sono idonei per tutti i progetti che usano software non ricompilabile su architetture parallele. Il sistema di calcolo proposto, ad esempio dedicato all’analisi scientifica del satellite INTEGRAL, realizza essenzialmente un adattamento al calcolo parallelo dei software di analisi, ad esempio OSA, che non possono essere ricompilati per il calcolo parallelo.
Il sistema 1 di calcolo permette al software di poter funzionare in una modalità ad istanze multiple che ha un effetto simile in termini di prestazioni generali, a quelle ottenibili su architetture parallele.
Il sistema 1 di calcolo à ̈ preferibilmente dedicato ad un satellite per Astronomia.
Come accennato, il software di gestione del sistema 1 comprende una pluralità di programmi, preferibilmente scritti in Shell Bash, le cui caratteristiche essenziali sono la realizzazione di una memoria condivisa utilizzabile dagli utenti ed espandibile a costi estremamente contenuti; il software di adattamento consente il lancio di più istanze di analisi che permettono al sistema di aumentare la velocità di esecuzione di processi di un fattore medio compreso tra 30 e 100 rispetto ai sistemi impiegati fino ad ora; la realizzazione di un software di validazione dei file contenuti in archivio che risolve i problemi di fallimento durante i run di analisi scientifica dovute a dati incompleti o corrotti. Inoltre considerando la grande complessità dei parametri necessari all’analisi à ̈ stato creato uno strumento in grado di memorizzare i parametri di lavoro utilizzati e di riutilizzarli successivamente permettendone le dovute modifiche.
Nel caso preferito di analisi astronomica, il sistema 1, in condizioni di utilizzo di medio carico, à ̈ in grado di effettuare il trattamento di una singola SCW in circa 15 secondi, contro i 900 secondi necessari ai sistemi a singola CPU. Un insieme di interfacce grafiche di facile utilizzo per l’utente consente di interagire in modo semplice ed efficace con i programmi di analisi.
Come accennato, il superamento della perdita di velocità insita nei sistemi RAID-5 presenti nel sistema 1 per gestire in maniera ridondata lo spazio utente, à ̈ stato ottenuto grazie all’utilizzo di un disco temporaneo direttamente connesso al bus SATA-2 del PC che gestisce lo spazio utente.
Si osservi che, preferibilmente, sul disco temporaneo gira una delle istanze di calcolo della sessione corrente.
Sulle aree temporanee, indicate ad esempio nella figura 1 con il riferimento 20, sono presenti le strutture dati utilizzate dalle istanze di calcolo della sessione corrente, le quali “girano†sul nodo/i 2 allocato/i.
La particolare gestione delle operazioni di scrittura/lettura su questa area temporanea aumenta le performance totali di accesso determinando un miglioramento delle prestazioni di calcolo del sistema 1 di calcolo di un fattore 12.
Il software proposto comprende anche uno strumento di verifica dei dati, in modo da eliminare i file sospetti che potrebbero risultare corrotti e quindi potrebbero determinare una perdita dei risultati di analisi.
Si osservi che il satellite fa osservazioni cicliche sugli stessi oggetti spalmate in directory che si riferiscono alle distinte sorgenti; tutti i dati sono archiviati nello stesso posto.
I dati che arrivano dal satellite sono pre-processati e sono organizzati in file fra i quali alcuni file sono validi mentre altri sono corrotti ovvero illeggibili. Questi ultimi file bloccano l’analisi in corso, anche al sessantesimo giorno causando danni inimmaginabili.
L’analisi viene spalmata su varie macchine e nel caso di errore nel file in lavorazione, si interrompe l’esecuzione dell’analisi solo nella macchina in cui à ̈ localizzato l’errore.
Il pacchetto di dati, ad esempio OSA, viene diviso in n parti, ciascuna parte viene inviata ad una corrispondente macchina ottenendo n risultati, ciascuno dei quali utilizzabile dal ricercatore interessato.
Sono previsti dei tool che fanno la ricombinazione altrimenti l’utente può eseguire un differente tipo di analisi.
Le interfacce grafiche che si presentano al login pilotano le scelte dell’utente in funzione delle risorse disponibili.
In particolare, l’utente à ̈ vincolato all’uso dei dati di INTEGRAL e trova un ambiente già settato per questo tipo di analisi. I comandi sono comunque preferibilmente destinati al software OSA
Vantaggiosamente, il software di gestione del sistema 1 comprende un interprete di comandi che consente di inibire o abilitare un utilizzo di determinati comandi di sistema.
In tal modo à ̈ possibile impedire l’utilizzo di applicazioni come browser, clienti di posta elettronica, editor grafici ed applicazioni ad alto consumo di CPU. Preferibilmente, tale interprete di comandi à ̈ personalizzabile dall’amministratore del sistema.
Ciascun utente non intralcia il lavoro degli altri; può esportare il risultato della sua analisi per elaborarla sul proprio pc in modo che sul cluster non c’à ̈ mai traffico di applicazioni che non siano di calcolo, consentendo il raggiungimento di prestazioni elevate. Il sistema consente il riutilizzo di tutto lo spazio disco, compresa la RAM, non utilizzato dal sistema operativo; all’avvio del sistema, il software mette insieme tutto lo spazio disco non utilizzato in un unico folder condivisibile dagli utenti dove poter mettere o i prodotti di analisi o le aree home.
All’interno del sistema viene quindi a trovarsi un datastorage con i dati del satellite, uno user data storage (interno alla macchina) che può in teoria crescere in maniera illimitata (in funzione della dimensione dei dischi).
La macchina dell’utente à ̈ al di fuori dei firewall, entra con il login e invia la sua istanza alla macchina denominata master che consente l’allocazione delle risorse (la prima cosa che viene chiesta all’utente à ̈ il numero di macchine che vuole utilizzare per il job che sta per fare).
L’invenzione come descritta consegue importanti vantaggi.
La struttura hardware del sistema à ̈ robusta, economica ed espandibile. Il cablaggio à ̈ preferibilmente realizzato con materiali e tecniche utilizzati in impianti elettrici di tipo convenzionale e quindi estremamente economico.
Il sistema di calcolo à ̈ estremamente veloce rispetto alle soluzioni note, à ̈ robusto ed affidabile, in quanto permette la verifica dei pacchetti di dati.
Il sistema à ̈ utilizzabile contemporaneamente da più utenti, ovvero, nel caso in esempio, da più ricercatori, senza incorrere in rischi di sovraccarico per il sistema stesso.
L’analisi preventiva del pacchetto di dati, riduce drasticamente la possibilità di perdita dei dati di analisi a causa di pacchetti dati corrotti.
Da un punto di vista economico, inoltre, un sistema di calcolo come quello descritto, essendo realizzato per intero con macchine tipo PC quindi relativamente economiche, comporta un significativo risparmio rispetto ai sistemi di calcolo più sofisticati.
Claims (24)
- RIVENDICAZIONI 1. Sistema di elaborazione comprendente una rete (3) informatica comprendente almeno una unità (6) computerizzata per l’immissione, da parte di un utente, in detta rete (3) informatica, di almeno una istanza di elaborazione una memoria (4) di contenimento di una pluralità di dati, una pluralità di unità (2) di calcolo provviste di uno spazio disco, fra loro collegate e definenti un cluster (C) di calcolo, dette unità (2) di calcolo essendo programmate per eseguire una pluralità di istruzioni facenti parte di un programma di calcolo, detto sistema essendo caratterizzato dal fatto di comprendere almeno una unità (5, 7) di controllo interposta fra detta unità (6) computerizzata e dette unità (2) di calcolo e programmata per ricevere detta istanza di elaborazione e comandare, su almeno una di dette unità (2) di calcolo selezionata fra un sottoinsieme di unità (2) di calcolo disponibili all’utente, l’esecuzione di un sottoinsieme di dette istruzioni di detto programma di calcolo su una porzione o pacchetto di dati, per definire un’analisi su detta porzione o pacchetto di dati, detto sottoinsieme di istruzioni e detta porzione di dati essendo selezionati in funzione di detta istanza di elaborazione.
- 2. Sistema di elaborazione secondo la rivendicazione 1, in cui dette unità (2) di calcolo comprendono ciascuna una memoria, detta unità (5) di controllo essendo programmata per definire una memoria condivisa comprendente lo spazio libero di dette memorie.
- 3. Sistema di elaborazione secondo le rivendicazioni 1 o 2 comprendente almeno un server, associato a detta memoria (4) di contenimento, connettibile ad un archivio (12) di dati per sincronizzare detta memoria (4) di contenimento con detto archivio (12) di dati.
- 4.Sistema di elaborazione secondo una qualsiasi delle rivendicazioni precedenti, in cui detta unità (6) computerizzata à ̈ predisposta per richiedere una quantità di unità (2) di calcolo per detta analisi da parte di detto utente.
- 5.Sistema di elaborazione secondo la rivendicazione precedente in cui detta unità (5, 7) di controllo à ̈ programmata per confrontare detta quantità di unità (2) di calcolo richiesta con una predeterminata massima quantità di unità (2) di calcolo attribuibili a detto utente (6), detta unità (5, 7) di controllo essendo programmata per: - attribuire detta quantità di unità (2) di calcolo richiesta a detto utente (6) se detta quantità di unità (2) di calcolo richiesta non à ̈ maggiore di detta predeterminata massima quantità di unità (2) di calcolo; - attribuire detta predeterminata massima quantità di unità (2) di calcolo a detto utente (6) se detta quantità di unità (2) di calcolo richiesta à ̈ maggiore di detta predeterminata massima quantità di unità (2) di calcolo.
- 6.Sistema di calcolo secondo la rivendicazione 5, in cui detta unità (5, 7) di controllo à ̈ programmata per - determinare, in funzione di detta predeterminata massima quantità di unità (2) di calcolo e del numero di unità (2) di calcolo in uso da detto utente per almeno una precedente analisi, una quantità di unità (2) di calcolo disponibile per detto utente per detta analisi corrispondente a detta istanza di elaborazione; - confrontare detta quantità di unità (2) di calcolo attribuita all’utente (6) con detta quantità di unità (2) di calcolo disponibile per detto utente, detta unità (5, 7) di controllo essendo programmata per: - assegnare a detto utente una quantità di unità di calcolo uguale a detta quantità di unità (2) di calcolo disponibile per detto utente se detta quantità di unità (2) di calcolo disponibile non à ̈ maggiore di detta quantità di unità (2) di calcolo attribuita a detto utente; - assegnare a detto utente una quantità di unità di calcolo uguale a detta quantità di unità (2) di calcolo attribuita se detta quantità di unità (2) di calcolo disponibile à ̈ maggiore di detta quantità di unità (2) di calcolo attribuita a detto utente; - verificare che in detto cluster (C) sia presente una quantità di unità (2) di calcolo effettivamente disponibili per detta analisi uguale a detta quantità di calcolo assegnata; detta unità (5, 7) di controllo essendo programmata per: - allocare detta quantità di unità (2) di calcolo effettivamente disponibili a detto utente per l’esecuzione di detta analisi relativa a detta istanza di elaborazione in caso di esito positivo di detta verifica; - mettere in attesa detta istanza di elaborazione in caso di esito negativo di detta verifica.
- 7.Sistema di elaborazione secondo una qualsiasi delle rivendicazioni precedenti in cui detta unità (5, 7) di controllo à ̈ programmata per verificare la connessione a detta rete (3) informatica di dette unità (2) di calcolo.
- 8. Sistema di elaborazione secondo una qualsiasi delle rivendicazioni precedenti in cui detta unità (5, 7) di controllo à ̈ programmata per - verificare se detto utente à ̈ abilitato all’interazione con detta rete (3) informatica per consentire a detto utente l’interazione con detta rete (3) informatica se detto utente à ̈ abilitato all’interazione con detta rete (3) informatica.
- 9.Sistema di elaborazione secondo la rivendicazione 8,in cui detta unità (5,7) di controllo à ̈ programmata per - verificare se detto utente (6) abilitato all’interazione con la rete (3) informatica à ̈ abilitato anche all’interazione con detto cluster (C), - verificare se detto utente (6) desidera ripristinare un controllo su una analisi definita da una precedente istanza di elaborazione se detto utente (6) à ̈ abilitato anche all’interazione con detto cluster (C); - richiedere una quantità di unità (2) di calcolo per detta analisi da parte di detto utente (6) se detto utente (6) non desidera riprendere il controllo di una precedente analisi.
- 10.Sistema di elaborazione secondo una qualsiasi delle rivendicazioni precedenti in cui detta unità (5) di controllo à ̈ programmata per installare automaticamente il software di gestione presente in ciascuna di dette unità (2) di calcolo facente parte di detto cluster (C) in ogni nuova unità (2) di calcolo che viene aggiunta a detto cluster (C).
- 11. Sistema di elaborazione secondo una qualsiasi delle rivendicazioni precedenti in cui detta rete (3) informatica comprende una unità (8) computerizzata di memoria collegata a detta rete (3) informatica, detto sistema di elaborazione essendo programmato per salvare in detta unità (8) computerizzata di memoria un risultato di detta analisi.
- 12. Sistema di elaborazione secondo la rivendicazione 6 in cui detta rete (3) informatica comprende uno spazio temporaneo (20) definito da una allocazione temporanea di almeno parte dello spazio disco di dette unità (2) di calcolo effettivamente disponibili a detto utente (6) e non utilizzato da detta analisi.
- 13. Sistema di elaborazione secondo una qualsiasi delle rivendicazioni precedenti, in cui detta unità (5, 7) di controllo à ̈ programmata per eseguire almeno una procedura di controllo comprendente una verifica di congruità e/o una verifica di consistenza di detti dati.
- 14. Sistema di elaborazione secondo la rivendicazione 13 in cui detta unità (5, 7) à ̈ programmata per - generare un primo file contenente una lista dei pacchetti di dati che hanno superato detta verifica di congruità e detta verifica di consistenza; - generare un secondo file contenente una lista dei pacchetti di dati non presenti in detta pluralità di dati della memoria (4) di contenimento e necessari per detta analisi ovvero un secondo file contenente una lista dei pacchetti di dati che non hanno superato detta verifica di consistenza. - generare un terzo file contenente una lista dei pacchetti di dati corrotti che non hanno superato detta procedura di controllo.
- 15. Sistema di elaborazione secondo la rivendicazione 14, comprendente un secondo archivio di dati in cui sono archiviati detti primo, secondo e terzo file espressione di detta procedura di controllo.
- 16. Sistema di elaborazione secondo la rivendicazione 14 o 15, in cui detta unità (5, 7) di controllo à ̈ programmata per sostituire in detta memoria (4) di contenimento detti pacchetti di dati mancanti o corrotti tramite una sincronizzazione con detto primo archivio dati.
- 17. Sistema di elaborazione secondo la rivendicazione 16, in cui detta unità (5, 7) di controllo à ̈ programmata per - verificare se detta porzione di dati su cui à ̈ definita detta analisi à ̈ etichettata in detto secondo archivio di dati come corrotta o come mancante; - eseguire detta analisi su detta porzione di dati nel caso in cui detta porzione abbia superato detta procedura di controllo; - inibire l’esecuzione di detta analisi nel caso in cui detta porzione di dati risulti etichettata come corrotta o come mancante per evitare l’arresto del sistema.
- 18. Sistema di elaborazione secondo una qualsiasi delle rivendicazioni da 13 a 17, in cui detta unità (5, 7) di controllo à ̈ programmata per eseguire detta procedura di controllo su detti dati in funzione di detta istanza di elaborazione immessa da detto utente.
- 19. Sistema di elaborazione secondo una qualsiasi delle rivendicazioni precedenti, in cui detta unità (5, 7) di controllo à ̈ programmata per eseguire una procedura di preparazione di detta porzione di dati comprendente le fasi di: - suddividere detta porzione di dati in sottogruppi di dati in funzione delle unità (2) di calcolo disponibili all’utente; - creare una struttura di sottocartelle contenenti una corrispondente copia di detti sottogruppi di dati; - suddividere detta istanza di elaborazione in sottoistanze di elaborazione; - eseguire ciascuna sottoistanza su una corrispondente sottocartella di detti sottogruppi di dati.
- 20. Sistema di elaborazione secondo la rivendicazione 19, in cui l’esecuzione di dette sottoistanze à ̈ eseguita in una singola unità (2) di calcolo o in un singolo processore di una unità (2) di calcolo.
- 21. Sistema di elaborazione secondo la rivendicazione 19 o 20, in cui detta unità (5, 7) di controllo à ̈ programmata per: - suddividere linearmente detta porzione di dati nei sottogruppi di dati in funzione delle unità (2) di calcolo disponibili all’utente.
- 22. Sistema di elaborazione secondo la rivendicazione 19, in cui detta unità (6) computerizzata à ̈ programmata per consentire all’utente di selezionare una suddivisione di detta porzione di dati, detta unità (5, 7) di controllo essendo programmata per suddividere detta porzione di dati in sottogruppi di dati in funzione di detta suddivisione selezionata.
- 23. Sistema di elaborazione secondo una qualsiasi delle rivendicazioni da 19 a 22 in cui detta unità (5, 7) di controllo à ̈ programmata per: - comandare l’esecuzione di dette sottoistanze di elaborazione contemporaneamente su dette unità (2) di calcolo disponibili all’utente (6).
- 24. Sistema di elaborazione secondo la rivendicazione 6 e una qualsiasi delle rivendicazioni da 19 a 22, in cui detta unità (5, 7) di controllo à ̈ programmata per - verificare se il numero di dette unità (2) di calcolo disponibili all’utente in detta procedura di preparazione coincide con il numero di unità (2) di calcolo effettivamente disponibili e allocate all’utente (6); - generare un segnale di errore in cui il numero di dette unità (2) di calcolo disponibili all’utente in detta procedura di preparazione sia differente dal numero di unità (2) di calcolo effettivamente disponibili e allocate all’utente (6).
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IT000239 IT1406449B1 (it) | 2011-04-29 | 2011-04-29 | Sistema di calcolo. |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IT000239 IT1406449B1 (it) | 2011-04-29 | 2011-04-29 | Sistema di calcolo. |
Publications (2)
Publication Number | Publication Date |
---|---|
ITBO20110239A1 true ITBO20110239A1 (it) | 2012-10-30 |
IT1406449B1 IT1406449B1 (it) | 2014-02-28 |
Family
ID=44513025
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
IT000239 IT1406449B1 (it) | 2011-04-29 | 2011-04-29 | Sistema di calcolo. |
Country Status (1)
Country | Link |
---|---|
IT (1) | IT1406449B1 (it) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100223385A1 (en) * | 2007-02-02 | 2010-09-02 | The Mathworks, Inc. | Scalable architecture |
-
2011
- 2011-04-29 IT IT000239 patent/IT1406449B1/it active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100223385A1 (en) * | 2007-02-02 | 2010-09-02 | The Mathworks, Inc. | Scalable architecture |
Also Published As
Publication number | Publication date |
---|---|
IT1406449B1 (it) | 2014-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220334725A1 (en) | Edge Management Service | |
EP2701064B1 (en) | Robust tenant placement and migration in database-as-a-service environments | |
CN108351806B (zh) | 分布式基于流的数据库触发器 | |
US20220083245A1 (en) | Declarative provisioning of storage | |
US11734169B2 (en) | Optimizing spool and memory space management | |
US20220300413A1 (en) | Optimizing spool and memory space management | |
US20220334990A1 (en) | Zone drive data format | |
US10310900B2 (en) | Operating programs on a computer cluster | |
US20220261170A1 (en) | Data migration for zoned drives | |
US20220350495A1 (en) | Differing erasure coding schemes with non-uniform storage sizes | |
US20220147365A1 (en) | Accelerating Segment Metadata Head Scans For Storage System Controller Failover | |
US12008266B2 (en) | Efficient read by reconstruction | |
CN109799998B (zh) | OpenStack集群配置及批量部署方法及系统 | |
CN109614227A (zh) | 任务资源调配方法、装置、电子设备及计算机可读介质 | |
EP4204941A1 (en) | Data path virtualization | |
US9195528B1 (en) | Systems and methods for managing failover clusters | |
WO2022164490A1 (en) | Optimizing storage device access based on latency | |
Toor et al. | A scalable infrastructure for CMS data analysis based on OpenStack Cloud and Gluster file system | |
US20230350858A1 (en) | Providing Block-Based Storage | |
US20230283666A1 (en) | Establishing A Guarantee For Maintaining A Replication Relationship Between Object Stores During A Communications Outage | |
US20230195535A1 (en) | Containerized Application Deployment to Use Multi-Cluster Computing Resources | |
US20230315586A1 (en) | Usage-based Restore Prioritization | |
ITBO20110239A1 (it) | Sistema di calcolo. | |
Qian et al. | Reliability of large scale GPU clusters for deep learning workloads | |
WO2017055708A1 (fr) | Procede de controle de la capacite d'utilisation d'un systeme partitionne de traitement de donnees |