SCIENZA E TECNOLOGIE DELL' INFORMAZIONE

di Marco Vanneschi* e Antonio Sgamellotti**
*Dipartimento di Informatica, Università di Pisa, Direttore Scientifico del Progetto PQE2000
**Dipartimento di Chimica, Università di Perugia, Presidente del Comitato Scientifico del Progetto PQE2000

PQE2000:
un supercalcolatore
per una nuova energia

 

1. Introduzione

È un Progetto italiano, di alto valore strategico, tecnologico e commerciale, nell'area del supercalcolo a parallelismo massiccio. Il Progetto si fonda sul Protocollo d'Intesa tra CNR, ENEA, INFN ed Alenia Spazio-Finmeccanica, con la partecipazione di gruppi di rilievo dell'università italiana e di centri europei.

geometria dei frattali

Tipica immagine di geometria dei frattali

Lo scopo del Progetto è di realizzare, a livello industriale, un sistema a parallelismo massiccio di uso generale per il calcolo ad alte prestazioni, caratterizzato da soluzioni innovative a tutti i livelli hardware e software, e tecnologicamente competitivo nel mercato dei sistemi e delle applicazioni del supercalcolo. Inoltre, il Progetto include lo sviluppo di un'ampia gamma di applicazioni significative nei vari campi delle scienza, della tecnica, della finanza, degli affari e dell'amministrazione pubblica, come anche sistemi embedded e in tempo reale ad alte prestazioni. È noto come molti e differenti settori possano beneficiare del successo diffuso della tecnologia del supercalcolo. Prestazioni che vanno dai 100 GigaFlops ai TeraFlops, e corrispondenti richieste di capacità di memoria in linea, saranno necessarie nei primissimi anni 2000. Inoltre, quanto meno a causa delle innovazioni tecnologiche, si prevede una nuova generazione di supercalcolatori entro il 2010, caratterizzata da prestazioni dell'ordine dei PetaFlops.

Per raggiungere un obiettivo così ambizioso, in aggiunta alla partecipazione delle più avanzate e qualificate istituzioni scientifiche e di ricerca, è assolutamente necessario un forte coinvolgimento ed investimento da parte dell'industria dell'alta tecnologia. Questa condizione è soddisfatta nel Progetto grazie al ruolo guida di Alenia Spazio e Finmeccanica, che ha fondato la società QSW (Quadrics Supercomputers World Ltd) in collaborazione con la Maiko Ltd.

Le tecnologie sulle quali si fonda il Progetto PQE2000, e che saranno integrate per creare una nuova tecnologia per il mercato del supercalcolo con prestazioni di TeraFlops e PetaFlops, sono principalmente da: a) Alenia Spazio-Quadrics, b) Meiko CS, c) CNR, d) INFN-Apemille. La progettazione del sistema sarà inoltre affiancata dallo sviluppo di applicazioni e benchmark selezionati al fine di aumentare la competizione sul mercato e la produttività, come anche allo scopo di condizionare la realizzazione stessa del sistema.

Librerie applicative, pacchetti di software applicativo, ed applicazione per l'utente finale saranno sviluppate in molti e differenti settori: fluidodinamica, chimica, analisi strutturale, basi dati, multimedia, sistemi di supporto alle decisioni, ottimizzazione discreta, tempo reale.

 

2. Architettura per applicazione generale a parallelismo massiccio

Nella progettazione dei supercalcolatori di applicabilità generale dei prossimi anni sono necessarie sia flessibilità di utilizzo e portabilità (che possono sintentizzarsi nella parola "generalità") sia prestazioni elevate (performance). La generalità comporta programmabilità indipendente dalla macchina (per la prototipazione rapida di nuove applicazioni, come anche per la riutilizzabilità del software esistente) e portabilità attraverso differenti configurazioni e sviluppi tecnologici. Il parallelismo massiccio è la chiave per raggiungere le prestazioni necessarie. Questo implica che un elevato grado di parallelismo di "grana fine" deve essere esplicitato nelle computazioni. Le architetture MIMD attuali e future, basate sull'utilizzazione di processori "commodity" e di altri componenti off-the-shelf, non sono macchine a grana fine e non possono pertanto essere massicciamente parallele. Attualmente, il parallelismo a grana fine è sfruttato efficientemente dalle macchine SIMD, mentre potenti componenti PIM (Processor In Memory, o "memorie attive") generalizzeranno in futuro il modello di calcolo massicciamente parallelo a grana fine.

La soluzione del problema di ottenere "generalità + performance" consiste nell'integrazione di macchine MIMD di grana medio-grossa per applicazioni generali con macchine SIMD/PIM a grana fine. Nel breve/medio termine, l'architettura concettuale sarà concretizzata tramite un'opportuna integrazione della tecnologia Meiko/QSW con la tecnologia Quadrics nella prima versione, con Apemille nella seconda versione. In questo modo viene adottato l'approccio più innovativo possibile, compatibilmente sia con la necessità assoluta di una strategia di breve time-to-market sia con l'evoluzione competitiva e continua dalla generazione del TeraFlops a quella del PetaFlops.

Altri aspetti importanti dell'architettura sono i seguenti:

a) utilizzazione di nuovi componenti molto efficienti, in particolare gli UltraSpark per i processori MIMD e nuovi coprocessori di comunicazione e routing;

b) integrazione a livello dei meccanismi di base di scambio di messaggi (MPI) e di memoria virtuale condivisa;

c) supporti e strutture architetturali che assicurano la predizione del costo di esecuzione (tempi di esecuzione, latenze e bande passanti di comunicazione, occupazione di memoria) al fine di supportare ristrutturazioni molto efficienti dei programmi paralleli a tempi di compilazione.

potensiale elettrostatico

Chimica computazionale. L'immagine rappresenta il potenziale elettrostatico calcolato ab initio, di un'immide

3. Tecnologia software

L'altro punto chiave del Progetto è lo sviluppo di una tecnologia software avanzata per lo sviluppo di applicazioni massicciamente parallele. Le macchine parallele attuali sono limitate per quanto riguarda gli strumenti di sviluppo software che possano essere realmente definiti come di applicazione generale e di alto livello. Negli ultimi anni, è stato ampiamente riconosciuto che per ottenere un livello accettabile di produttività nella progettazione delle applicazioni sono assolutamente necessari metodologie, ambienti e strumenti per la programmazione parallela, nuovi e maggiormente orientati all'utente. In particolare, la tecnologia di compilazione sarà uno dei punti chiave per il successo dei sistemi a parallelismo massiccio.

Negli ultimi anni, modelli che "restringono" le forme in cui le elaborazioni possono essere espresse sono stati riconosciuti come i più promettenti per i sistemi a parallelismo massiccio della prossima generazione. L'High Performance Fortran (HPF) ed altri modelli con estensioni data parallel, appartengono a questo approccio. Modelli "ristretti" più avanzati, sperimentati con successo, sono caratterizzati come programmazione parallela strutturata, anche detta programmazione basata su template. Questi modelli adottano un piccolo insieme di forme parallele come costrutti primitivi (per esempio: data parallel map, reduce geometric, control parallel pipeline, farm, data-flow loop, tree), ed un qualsiasi programma è ottenuto dalla composizione di questo solo costrutto. Molte caratteristiche importanti (per esempio, l'esistenza di un performance calculus associato, la riutilizzabilità dei moduli software esistenti, l'indipendenza dal linguaggio sequenziale ospite) rendono questo approccio molto potente per raggiungere "generalità + performance" sfruttando tecnologie avanzate di compilazione.

Nel PQE2000 le metodologie avanzate e le tecniche di compilazione della programmazione parallela strutturata consentiranno di risolvere i problemi di implementazione in un modo realmente indipendente dalla macchina, inclusi i problemi del mapping e del bilanciamento del carico, come pure il problema della distribuzione dei compiti ai processori MIMD e SIMD.

L'ambiente di programmazione include (in aggiunta agli strumenti "tradizionali" come PVM, CS-Tools, versione parallele di Fortran, C, C++) una versione stabile di HPS, un linguaggio di coordinamento basato su template con linguaggi ospiti F77, F90, HPF, C, C++, e di linguaggi di Quadrics Tao e QFOR, il compilatore ottimizzante secondo l'approccio della programmazione parallela strutturata, un insieme completo di strumenti di supporto (monitor, profiler, debugger) ed una potente interfaccia per la programmazione grafica, un'interfaccia parallela a sistemi di gestione di basi di dati sia "standard" sia specializzati.

 

4. Applicazioni

Il Progetto PQE2000 intende prestare particolare attenzione alle applicazioni che, richiedendo massicce e qualificate risorse di calcolo, rappresentano grandi sfide in campo scientifico, con ricadute ed impatto anche dal punto di vista industriale.

Le applicazioni riguardano diversi campi della ricerca:

­ le basi di dati parallele per la risoluzione e l'ottimizzazione del trattamento delle informazioni (data mining) in diversi settori del sapere: territorio, ambiente, meteorologia e multimedia;

­ la chimica computazionale e le sue applicazioni per la progettazione di materiali innovativi e di farmaci con proprietà specifiche per l'analisi conformazionale di biomolecole, lo studio delle proprietà elettroniche di sistemi molecolari, la determinazione della dinamica e della cinetica delle reazioni, la combustione e i processi che coinvolgono stati ionizzati;

­ la fisica computazionale e le applicazioni riguardanti i controlli di qualità non distruttivi di prodotti industriali, la simulazione di sistemi complessi nel campo della fluidodinamica, le reti di automi cellulari e neurali, la modellazione meccanico-statistica e metodi di simulazione Monte Carlo;

­ la matematica computazionale e la applicazione di algebra lineare numerica, e di risoluzione di equazioni differenziali, lo sviluppo di algoritmi paralleli di importanza applicativa quali quelli per la quadratura multidimensionale e per la trasformata discreta di Fourier.

Nell'ambito del Progetto si intende, inoltre, sviluppare applicazioni specifiche per la simulazione sia dei fenomeni di inquinamento atmosferico sia di modellistica dei processi di interesse aerospaziale.