Pietro Zanarini, Gianluigi Zanetti
Con una moderna workstation un ricercatore ha a disposizione una potenza di calcolo paragonabile ad una frazione significativa di un super computer ( 20 MFLOPS), una potenza grafica in grado di trattare con facilità oggetti tridimensionali complessi ( 200,000 poligoni/sec gouraud-shaded), e la possibilità di scambiare informazioni e dati con altri ricercatori in tutto il mondo (attraverso una rete come INTERNET) a velocità quasi comparabili ( 2 Mbit/sec) a quelle disponibili sulle LAN. Tutto questo ad un costo che è già relativamente basso (una frazione dello stipendio annuale di chi la usa) e che è destinato a calare ancora di più.
L'economicità delle workstation ha fatto sì che i laboratori di ricerca e le università evolvessero da un modello centralizzato di gestione delle risorse di calcolo scientifico a reti di personal workstation connesse tra loro in reti locali, queste ultime a loro volta connesse da reti geografiche che coprono quasi l'intero pianeta.
Le conseguenze di questo tipo di evoluzione sono molteplici: dai grossi problemi economici dei costruttori di super--computer tradizionali fino allo sviluppo della comunità mondiale in Internet, stimata dell'ordine di milioni di persone, i cui membri si mantengono in contatto giornalmente attraverso posta elettronica, gruppi di discussione come le USENET News, etc. Nell'articolo, tuttavia, considereremo solo come questa evoluzione tecnologica ha influenzato lo sviluppo dell'ambiente computazionale a disposizione dei ricercatori scientifici.
Per prima cosa, la possibilità di disporre della potenza aggregata di tutte le workstation connesse sulla rete locale di un laboratorio ha reso molto più produttivi i singoli ricercatori. Di conseguenza è notevolmente aumentato il volume dei dati prodotti dalle simulazioni e dalla succesiva analisi dei risultati, creando grossi problemi di gestione dei dati ai laboratori scientifici, tipicamente non dotati delle strutture di mass--storage presenti nei grossi centri di calcolo. Oltre al problema della quantità delle informazioni non va trascurato quello del collegamento logico delle stesse, ad esempio tra i dati grezzi (``raw data'') generati dalle simulazioni e le immagini e animazioni prodotte dalla loro analisi.
Inoltre, lo sviluppo delle reti di connessione tra centri di ricerca sta cambiando il modo in cui ricercatori affiliati a diverse organizzazioni collaborano allo stesso progetto. Infatti, mentre fino a pochi anni fa il lavoro in collaborazione era possibile solo con visite reciproche, ora sta diventando realmente fattibile e produttivo collaborare a distanza, con scambio interattivo di dati, immagini, animazioni, etc. Questo nuovo approccio alla collaborazione, ha però reso necessario che tutti i partecipanti al progetto abbiamo modo di consultare ed operare su tutte le informazioni che sono connesse con la ricerca in questione. Per dare un idea della varietà delle informazioni coinvolte, possiamo citarne alcune: dati grezzi prodotti dalle simulazioni, immagini e animazioni generati dall'analisi dei dati, log--book contenenti traccia delle operazioni fatte durante le simulazioni, technical report, pubblicazioni, etc.
A questo punto diventa chiaro che tutte queste informazioni, connesse ad un dato progetto di ricerca, devono essere disponibili su computer, in un sistema integrato e connesso in rete.
In Fig. si possono individuare quattro classi di operazioni sull'insieme dei dati: il processo di simulazione vera e propria; l'analisi e selezione dei dati generati dalle simulazioni; la visualizzazione mediante immagini ed animazioni; la consultazione dei risultati mediante sistemi ipertestuali e collaborativi. Per quanto riguarda esempi di simulazioni numeriche effettuate al CRS4, rimandiamo all'articolo ``CRS4 - Simulazione numerica, calcolo parallelo, visualizzazione scientifica e reti: la Sardegna scommette sulla ricerca applicata''. Il secondo punto viene descritto nel riquadro di questo articolo. Per il terzo punto si rimanda all'articolo ``Visualizzazione, animazione, multimedia. Strumenti efficaci per la comprensione dei risultati'' e per l'ultimo punto all'articolo ``Il trattamento e la consultazione di dati scientifici mediante ipertesti e CSCW''.
Vediamo, con degli esempi, di rendere più concreta la spiegazione di come avviene una simulazione scientifica.
Per poter migliorare le prestazioni dei motori a reazione è importante conoscere come il processo di nebulizzazione del carburante dipende, ad esempio, dalla velocità di ingresso del getto di carburante nella camera di combustione.
Anche se l'informazione richiesta è, in pratica, una manciata di numeri, cioè un grafico che dà il raggio delle goccioline ottenute dalla nebulizzazione in funzione della velocità di ingresso, per ottenere un punto del grafico sono necessarie una serie di grosse simulazioni di fluido-dinamica su griglie tridimensionali con una risoluzione, ad esempio, di 128x128x128 punti, capaci ognuna di generare dati grezzi per svariate centinaia di Megabyte.
Le simulazioni citate sopra sono al limite di quello che è possibile fare su un'attuale workstation. Se nella simulazione si volesse aumentare ulteriormente la risoluzione (e quindi l'attendibilità, ma anche il volume di dati prodotto) sarebbe necessario utilizzare delle macchine parallele o un sistema distribuito di workstation. Spesso questo comporta, per ragioni di efficienza, la suddivisione del dominio computazionale in sottoregioni, ciascuna delle quali assegnata a processori diversi. Di conseguenza, una geometria di simulazione ``semplice'', cioè un cubo, diventa complessa, ad esempio, un insieme di parallelepipedi adiacenti.
Come altro esempio, per simulare il flusso di un fluido in un canale con pareti ruvide può essere conveniente dividere il dominio della simulazione in tre sotto-domini: due vicini alle pareti del canale ed un altro per la parte centrale. In questo modo si possono usare metodi numerici differenti in ogni sotto-dominio per risolvere l'equazione del flusso. In particolare si potrebbe usare il metodo alle differenze finite per le regioni vicino alle pareti, perchè questo si adatta bene a domini con bordi irregolari, mentre si potrà usare un metodo spettrale per la regione centrale, più regolare, per la sua efficienza dal punto di vista computazionale.
Le strategie correntemente usate per seguire e analizzare le grosse simulazioni, ossia scrivere su disco, a intervalli di tempo prefissati, i valori di alcune quantità fisiche predeterminate che si vogliono analizzare, stanno oramai diventando inadeguate a causa delle grosse moli di dati in gioco.
In questa situazione anche il formato di dati più efficiente non può soddisfare il requisito sulla limitazione dello spazio occupato. Sono possibili quindi due strade: o limitare il numero di dati prodotti, salvando solo una parte di questi, oppure eliminare la fase di scrittura su un supporto di memoria di massa, inviando i dati prodotti direttamente ad un programma di visualizzazione e di analisi.
Al CRS4 è in fase di sviluppo un sistema che agisce essenzialmente da collegamento tra ``user interface'' e simulazione distribuita, fornendo un modo sistematico per controllare ed eventualmente guidare una simulazione, nascondendo all'utente la distribuzione del dominio dei dati fra i nodi computazionali.
L'implementazione attuale e' costruita sul protocollo di comunicazione PVM (Parallel Virtual Machine), al di sopra di TCP/IP, ed è basata su Iris Explorer come interfaccia utente, ma è stato progettato in modo che sia facilmente portabile ad altri tipi di protocolli message-passing o user interface.
Le caratteristiche principali di tale sistema sono:
L'utente, attraverso le funzioni dell'interfaccia, comunica al modulo di controllo quali dati si vogliono estrarre dalla simulazione in corso (per esempio la variabile pressione), in quale regione dello spazio, e con quale risoluzione. Il modulo di controllo suddivide la richiesta in sotto-richieste, una per ogni sotto-dominio interessato, ed effettua le necessarie traslazioni di coordinate. Tali richieste vengono spedite ai nodi coinvolti dalla richiesta dell'utente. I vari nodi computazionali (per es. workstation) soddisfano la richiesta inoltrata e spediscono al modulo di controllo la risposta. Quest'ultimo riassembla quindi i dati ricevuti dai nodi e manda la risposta complessiva all'interfaccia.
Vale la pena di sottolineare che il sistema recupera i dati dai nodi, per es. per visualizzarli, soltanto su esplicita richiesta dell'utente; ciò significa che in assenza di richieste, non vengono sottratte risorse ai processi che si occupano della parte computazionale della simulazione, nè viene inutilmente sottratta banda alla rete.