High Performance Computing

98

Il livello prestazionale richiesto dagli attuali DSS è il risultato di un bilanciamento tra le caratteristiche delle varie risorse elaborative in gioco

La nostra società si caratterizza per il numero estremamente elevato di informazioni che produce, distribuisce e consuma. La posibilità di prendere decisioni corrette dipende in modo cruciale dalla tempestiva disponibilità di informazioni aggiornate e dalla capacità di prevederne lo sviluppo. Come è noto, la stragrande maggioranza delle notizie, delle informazioni e delle conoscenze è prodotta, archiviata e distribuita mediante strumenti informatici. Chi ha il compito di prendere delle decisioni utilizza tutte le informazioni pertinenti disponibili, sfruttando appieno le competenze, i database, il know-how e l’esperienza propria e di altri.
La variabile tempo è un fattore cruciale, spesso determinante, per il successo dei processi decisionali. Assumere iniziative corrette in momenti sbagliati è equivalente a sbagliare le decisioni, quindi, da un lato, la tempestività nel decidere, dall’altro l’elevata velocità di obsolescenza delle informazioni su cui si basa il processo decisionale, restringono drasticamente i tempi in cui tale processo deve avvenire. Ma il tempo, o meglio ancora la rapidità nel prendere decisioni, non è l’unico elemento che influenza il processo decisionale: le informazioni, infatti, provengono spesso da fonti disaggregate, disomogenee e disperse, perché sono raccolte con strumenti, sia hardware che software, eterogenei e scarsamente compatibili o integrati. Le fonti distribuite sul territorio generano un’informazione che, fisicamente dispersa, va raccolta e aggregata. E’ opportuno anche ricordare come i sistemi informatici su cui le aziende archiviano i dati siano stati spesso acquisiti in tempi diversi e riflettano, quindi, anche dal punto di vista tecnologico, la complessità dell’evolvere del tempo. Si aggiunge a questa situazione, che esibisce innegabilmente caratteri di complessità e spesso frammentarietà, la necessità di estrarre informazioni sintetiche e mirate da una massa di dati enorme, rendendone facilmente interpretabile e fruibile il contenuto.  Oggi le nuove architetture informatiche permettono di affrontare con successo questo tipo di problemi e di schiudere nuovi orizzonti ai sistemi per il supporto decisionale.

Database server
Iniziamo dal lato in cui risiedono le informazioni, cioé dal database server Il parametro fondamentale che deve essere ottimizzato è l’accesso ai dati, inteso sia in termini di velocità che di possibilità di memorizzazione di una grande massa di dati. Di per sé entrambe queste esigenze non costituiscono un elemento di novità. Ciò che costituisce novità è, unitamente alla dimensione dei database da mantenere in linea, la possibilità o la necessità di consultarne più d’uno simultaneamente. Evidentemente ciò non è particolarmente problematico fintantoché si usano piattaforme comuni (medesimo hardware, middleware e software applicativo), ma comincia a diventarlo quando si devono estrarre informazioni da database che differiscono sia in termini implementativi che strutturali. Oggi esistono prodotti che consentono di “assorbire” informazioni da database eterogenei in modo coerente, in generale forniti da fornitori tradizionali di middleware. La complessità e la dimensione enorme che si devono trattare dipendono essenzialmente da due fattori. Il primo è legato al numero di dati, alla quantità di informazioni che aumenta, in definitiva dal numero di record e di entry nel database. L’altro è il contenuto dei record stessi. Infatti oggi emerge con urgenza crescente la necessità e il desiderio di memorizzare dati multimediali, quindi immagini, scene, film, animazioni con il relativo audio, costituito di parlato, commenti sonori, musica. La dimensione cui si tende è esemplificata dalla necessità di archiviare e recuperare informazioni quali impronte digitali, volti, voce ed informazioni relative a persone “particolari” (per esempio crimnali) o dalla necessità di organizzare una raccolta di dati provenienti da diverse fabbriche distribuite sul territorio, che vanno dai dati progettuali – inclusi disegni, fotografie di prototipi, etc. – alla documentazione della fase di testi di un prodotto con filmati delle prove a crash e delle simulazioni effettuate. Ancor più eclatanti sono i casi di banche d’affari, aziende di telecomunicazioni o catene di distribuzione di prodotti commerciali. Se per un’azienda come la FIAT parliamo di database fino a 200 GB di dati in linea  (ed è una dimensione ragionevolemente “piccola” ) per altre realtà arriviamo a database della dimensione di decine di Terabyte. E’ chiaro che la tecnologia di base dei server e la relativa implementazione debbono tener conto di questi fattori. Senza pretendere di essere esaustivi, cerchiamo di osservare con occhio critico quanto sta avvenendo sul mercato, da un punto di vista prettamente tecnologico. Possiamo subito notare che le architetture parallele sono quelle che, in termini prestazionali, hanno preso il sopravvento su quelle rigidamente sequenziali. Infatti è possibile fare crescere il parallelismo all’aumentare delle esigenze prestazionali, una necessità che, con il tempo, è presente pressoché in ogni ambiente di lavoro. Queste architetture si prestano particolarmente bene anche ad implementazioni molto efficienti del middleware, ad esempio mediante database engine con query parallele. Esistono varie implementazioni di server paralleli, quelle che oggi sembrano trovare maggiori favori da parte dei costruttori hardware sono le SMP (Symmetric Multiprocessor) e le MPP (Massively Parallel Processor). I vantaggi auspicabili si sintetizzano in due fattori fattori critici essenziali: l’interfaccia di programmazione deve essere naturale ed allineata con quella del calcolatore tradizionale; l’evoluzione di queste architetture deve essere coerente con la curva di incremento delle prestazioni tipica dei processori. Il primo requirement consente un facile porting del software, del middleware e dei tool di ottimizzazione relativi. In virtù di questa favorevole combinazione, non solo è relativamente facile il porting di software e middleware esistente, ma anche la loro ottimizzazione risulta esserne particolarmente facilatata dalla disponibilità di tool, librerie e quant’altro necessario ad ottimizzare il software. Il secondo requirement determina il trend di miglioramento delle prestazioni. Ovviamente questo è tanto più vero quanto più è stata curata la componente di memoria e di I/O del server. Ci riferiamo al caching, alla efficiente gestione della sincronizzazione delle memorie cache, alla velocità ed efficienza dell’infrastruttura di interconnesione. L’espandibilità e le prestazioni – in particolare per la gestione dell’I/O, almeno un ordine di grandezza oltre quelle dei server SMP o MPP della generazione precedente – proiettano chi le realizza avanti nel tempo e produce un vantaggio competitivo. Alcuni sistemi di classe High Performance Computing (HPC) forniscono non soltanto prestazioni ma anche una crescita modulare: il sistema si costruisce aggiungendo un modulo alla volta alla configurazione attuale. Infatti ogni modulo aggiunge non soltanto processori, ma anche memoria, I/O, interconnessioni, banda, rete, il che conferisce a questi sistemi avanzati delle caratteristiche peculiari di flessibilità, economicità e tutela dell’investimento del cliente .
Un aspetto talvolta negletto, ma di importanza primaria, è l’efficienza con cui il sistema operativo gestisce le risorse disponibili “spremendo” il massimo possibile delle prestazioni nominali dell’hardware. In questo contesto, vanno ricordate almeno l’efficienza nella gestione dell’I/O, la velocità di “recupero” da un crash software, l’efficienza nella gestione dei protocolli di rete. Il file system “fully journalled” e l’implementazione parallela di TCP/IP ed NFS sono due elementi cardine, mentre la necessità di supportare database sempre più grandi, fino alle decine di Terabyte, e di singoli file altrettanto cospicui conduce verso il supporto di sistemi operativi a 64 bit (almeno). Infine, un server non deve solamente eseguire il più velocemente possibile processi (applicazioni “lanciate” dai client), ma deve essere in grado di sostenere con questi un elevato livello di interazione: deve cioé poter gestire simulataneamente un numero molto elevato di processi e di utenti. In questo senso giocano un ruolo determinante i punti di ingresso nel kernel del sistema operativo, i cosiddetti “preemption-point”. Inoltre la gestione delle priorità e degli accessi alle risorse – dischi e memorie in particolare – costituisce elemento determinante nel raggiungimento di adeguati livelli prestazionali reali. In definitiva: non ha senso “reperire” un dato molto velocemnte se non si è in grado di trasmetterlo altrettanto rapidamente a chi l’ha richiesto. è dall’insieme delle due cose che nasce la prestazione sul campo.  Si è notato come l’I/O sia un elemento cruciale della prestazione, e altro non potrebbe essere visto che è la prestazione in throughput che interessa nei sistemi HPS. In questo caso si scontrano due esigenze contrastanti. La prima è la necessità di andare verso soluzioni non troppo onerose dal punto di vista economico, quindi mantenendo in termini ragionevoli l’entità dell’investimento in memoria di massa che l’utente è chiamato a fare. L’altro è la prestazione che si deve ottenere. Certamente RAID0 e RAID5 [NdA: Redundant Array of Independent Disks] in combinazione affrontano con discreto successo la sfida di combinare economicità, spazio su disco dell’ordine delle decine di terabyte e velocità di trasferimento, posto si disponga di un numero molto elevato di canali di I/O dedicati. Tra i produttori di questi sistemi troviamo attori che spesso provengono dal mercato tecnico scientifico o che addirittura sono ben noti nell’ambito della grafica e della visualizzazione scientifica. Ciò non deve stupire perché proprio alcuni settori del mercato tecnico scientifico, e tra questi spicca la grafica tridimensionale, richiedono altissimo throughput e grande capacità di memorizzazione. Settori come il multimediale interattivo via rete, di cui la TV interattiva è il progetto più noto ed eclatante, sono aree di sviluppo che richiedono livelli prestazionali di prim’ordine e che guidano l’innovazione tecnologica, anche in altri settori, primo fra tutti quello dei database server.
Questo cambio di paradigma, quasi come fosse il segnale del mutamento di questo indirizzo tecnologico è rafforzato da significativi esempi di notissime aziende e realtà nel mercato dei servizi finanziari. Aziende come Merryl Lynch o NYSE (New York Stock Exchange) testimoniano l’elevatissimo interesse verso le architetture sia dei server che dei motori del database.

Realtà virtuale
Può forse sembrare strano o “eretico” parlare di tecniche di realtà virtuale ad applicazioni serie come quelle tipiche dei sistemi operazionali business-critical o dei sistemi di supporto alle decisioni. Prima di spiegare meglio cosa intendiamo per tecniche di realtà virtuale e di visualizzazione per database, è opportuno sgomberare il campo da alcune idee relative alla grafica in generale, e alla realtà virtuale in particolare. Quest’ultima è essenzialmente una metodologia, uno strumento per modificare l’interfaccia utente, consentendo all’essere umano di interagire in modo naturale con i dati che sta consultando, navigando nello “spazio dati”. Questo modo di visualizzare le informazioni è particolarmente utile quando vogliamo estrarre informazioni qualitative in modo rapido. Sono le risposte “quick & dirty” quelle che costituiscono spesso la base delle decisioni rapide, quando abbiamo poco tempo per decidere e la tempestività dell’azione assume un aspetto determinante. La vista è infatti lo strumento più rapido sviluppato dal genere umano per interpretare la realtà. La navigazione all’interno dello “spazio dati” è la risposta all’obiezione fondamentale che può essere mossa allo stesso concetto di sistema di supporto alle decisioni, ovvero: “Ha senso cercare informazioni utili consultando un’enorme massa di dati per produrre risultati in quantità e forma tali che è comunque oneroso e difficile consultare?”. E’ chiaro che l’interesse è rivolto all’ottenimento di un’informazione mirata, consultabile in modo rapido, efficiente e soprattutto esaustivo. Non solo: quello che maggiormente interessa è scoprire ciò che in realtà i dati celano, le verità che sono “oltre” le informazioni trattate. E’ qui che la rappresentazione grafica dello “spazio dati” ci dà il massimo supporto, perché mediante un’opportuna rappresentazione grafica dei dati stessi e del loro reciproco significato riusciamo a “vedere” trend, situazioni, casi o imprevisti o particolari o che comunque ci possono in qualche misura interessare.  Probabilmente un esempio chiarisce meglio il concetto. La grande distribuzione è tipicamente interessata cercare risposte a domande del tipo: “Dato un prodotto, chi lo compra? Uomo o donna? Giovane, anziano o di mezza età? In quali momenti o periodi dell’anno si hanno i migliori risultati? Il prodotto che stiamo valutando viene in generale acquistato in associazione con quali altri prodotti?”. Non è significativo tanto il fatto di rispondere singolarmente a ciascuno dei quesiti singoli (che peraltro sono un piccolo sottoinsieme di quelli possibili) quanto la capacità di incrociare le informazioni. Per esempio capire se il prodotto viene acquistato principalmente dalle donne giovani, tranne che nei mesi estivi in cui viene acquistato da clienti di sesso maschile anziani. E’ chiaro che la disponibilità di queste informazioni permette di massimizzare il fatturato, curando la disposizione dei prodotti sulla base delle associazioni di prodotto in fase di acquisto, associazioni che sono a loro volta funzione della tipologia di utente. La rappresentazione grafica aiuta ad individuare particolari importanti che altrimenti sarebbero sfuggiti, dispersi come sono in mezzo alla massa di dati. Consente inoltre di esaminare molti più casi, scartando immediatamente quelli meno significativi e focalizzando l’attenzione su quelli più interessanti.

Integrazione e comunicazione
E’ chiaro che è sensato raccogliere informazioni per prendere delle decisioni solamente se poi si è in grado di distribuirne il contenuto in base a direttive, informazioni di sintesi, elementi di interpretazione. In questo contesto le reti e l’integrazione degli strumenti di comunicazione multimediale sono elementi di chiaro interesse e stanno modificando il nostro modo di lavorare e di vivere la società. Basti pensare alla rivoluzione di Internet e ci si rende conto dell’entità del cambiamento e del livello di interesse che suscitano questi temi e le relative tecnologie. Anche le applicazioni discusse in questo articolo non sono aliene a queste novità: si pensi ai servizi e ai prodotti che già vengono trattati su Internet. E’ prevedibile che la videoteleconferenza, la posta multimediale e tecnologie simili entrino presto a far parte degli strumenti abituali di lavoro anche nell’ambito di applicazioni transazionali o di sistemi di supporto alle decisioni, almeno per quel riguarda la distribuzione della decisioni stesse. Al di là della rapidità della distribuzione delle informazioni, il maggior vantaggio è dato dalla integrazione che questi strumenti rendono possibile tra le varie aree e dipartimenti di un’azienda o di un fornitore di servizi. In questo contesto si rileva che gli interlocutori più attenti sono gli operatori dei servizi finanziari, per I quali la complessità dell’informazione, la tempestività delle decisioni e loro rapida distribuzione costituiscono un elemento cruciale di business, un fattore critico che può trasformare un’operazione da un clamoroso successo a un altrettanto clamoroso fallimento. Per concludere, una (facile) previsione: è certo che, nell’ambito dei sistemi distribuiti per il supporto alle decisioni e per le applicazioni transazionali e commerciali in genere, si assisterà a una convergenza crescente delle tecnologie nate in ambiti diversi, quali il multimediale interattivo su rete geografica, la grafica computerizzata (includendo anche tecniche di realtà virtuale) nonché le architetture innovative, ad alta intensità di parallelismo, per quanto riguarda i database server.