Fusione termonucleare controllata e High Performance Computing. S. Briguglio e G. Vlad ENEA Frascati



Documenti analoghi
Fusione termonucleare controllata e High Performance Computing. S. Briguglio, G. Fogaccia e G. Vlad ENEA Frascati

Sommario. Analysis & design delle applicazioni parallele. Misura delle prestazioni parallele. Tecniche di partizionamento.

quale agisce una forza e viceversa. situazioni. applicate a due corpi che interagiscono. Determinare la forza centripeta di un

La distribuzione Normale. La distribuzione Normale

La propagazione delle onde luminose può essere studiata per mezzo delle equazioni di Maxwell. Tuttavia, nella maggior parte dei casi è possibile

Benchmark Ansys Fluent su CRESCO

e-dva - eni-depth Velocity Analysis

V= R*I. LEGGE DI OHM Dopo aver illustrato le principali grandezze elettriche è necessario analizzare i legami che vi sono tra di loro.

Gestione della memoria centrale

Introduzione all analisi dei segnali digitali.

RIVELAZIONE DELLE RADIAZIONI IONIZZANTI. Nelle tecniche di rivelazione delle radiazioni ionizzanti le grandezze da rivelare possono essere diverse:

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

CORRENTE ELETTRICA Intensità e densità di corrente sistema formato da due conduttori carichi a potenziali V 1 e V 2 isolati tra loro V 2 > V 1 V 2

Sistemi Informativi Territoriali. Map Algebra

SCIENZE INTEGRATE FISICA

Elementi di teoria dei segnali /b

Campione sciolto in un solvente (deuterato) e. posto in un tubo. di vetro a pareti sottili di diametro di 5 mm e lungo circa 20 cm

Algoritmi di clustering

Calcolatori Elettronici A a.a. 2008/2009

Parallelizzazione Laplace 2D: MPI e MPI+OMP. - Cineca - SuperComputing Applications and Innovation Department

13. Campi vettoriali

Le fattispecie di riuso

La corrente elettrica

Automazione Industriale (scheduling+mms) scheduling+mms.

Esame di INFORMATICA

a t Esercizio (tratto dal problema 5.10 del Mazzoldi)

Gestione delle transazioni. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 1

Programmazione Modulare

SOMMARIO Coda (queue): QUEUE. QUEUE : specifica QUEUE

Tecniche di Simulazione: Introduzione. N. Del Buono:

Strane anomalie di un motore omopolare Di Valerio Rizzi e Giorgio Giurini

COMPONENTI TERMODINAMICI APERTI

IL RISPARMIO ENERGETICO E GLI AZIONAMENTI A VELOCITA VARIABILE L utilizzo dell inverter negli impianti frigoriferi.

Più processori uguale più velocità?

Approccio stratificato

I processi di tempra sono condotti sul manufatto finito per generare sforzi residui di compressione in superficie. Vengono sfruttate allo scopo

L idea alla base del PID èdi avere un architettura standard per il controllo di processo

Forza. Forza. Esempi di forze. Caratteristiche della forza. Forze fondamentali CONCETTO DI FORZA E EQUILIBRIO, PRINCIPI DELLA DINAMICA

Architettura hardware

Energia e Lavoro. In pratica, si determina la dipendenza dallo spazio invece che dal tempo

TECNICHE DI SIMULAZIONE

Prova scritta di Fisica Generale I Corso di studio in Astronomia 22 giugno 2012

Cap.1 - L impresa come sistema

L EQUILIBRIO UNIVERSALE dalla meccanica celeste alla fisica nucleare

Il mercato di monopolio

Speedup. Si definisce anche lo Speedup relativo in cui, invece di usare T 1 si usa T p (1).

6.1. Risultati simulazioni termovalorizzatore Osmannoro2000

CAPACITÀ DI PROCESSO (PROCESS CAPABILITY)


L elettromagnetismo nella ricerca per l energia da fusione nucleare di plasma d idrogeno. R Cesario

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

Gestione della Memoria

Simulazioni accoppiate 1D-3D per scenari d incendio

ENERGIA. Energia e Lavoro Potenza Energia cinetica Energia potenziale Principio di conservazione dell energia meccanica

La memoria - generalità

Il magnetismo nella materia

Scheduling della CPU:

Cap Misure di vi braz di vi ioni

Convertitori elettronici di potenza per i veicoli elettrici

Scaletta della lezione:

Grandezze fisiche e loro misura

Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web: Prof. G. Quarella prof@quarella.

Generatori di segnale. Generatore sinusoidale BF. Generatori di funzione. Generatori sinusoidali a RF. Generatori a battimenti. Oscillatori a quarzo

Laboratorio sulle dinamiche Socio-Economiche

Domande a scelta multipla 1

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09

Librerie digitali. Video. Gestione di video. Caratteristiche dei video. Video. Metadati associati ai video. Metadati associati ai video

Esercitazione 5 Dinamica del punto materiale

Implementing a new ADT based on the HL7 version 3 RIM. Esempio

La memoria centrale (RAM)

Dimensione di uno Spazio vettoriale


Prof. Ing. Andrea Giuseppe CAPODAGLIO. Prof. Ing. Arianna CALLEGARI

Lunedì 20 dicembre Docente del corso: prof. V. Maiorino

Sistema operativo: Gestione della memoria

Esercizi su elettrostatica, magnetismo, circuiti elettrici, interferenza e diffrazione

Testo alla base del Pitgame redatto dal prof. Yvan Lengwiler, Università di Basilea

LA CORRENTE ELETTRICA CONTINUA

Ricerca di outlier. Ricerca di Anomalie/Outlier

La Gestione delle risorse Renato Agati

POLITECNICO DI MILANO CORSO DI LAUREA ON LINE IN INGEGNERIA INFORMATICA ESAME DI FISICA

ELETTROSTATICA + Carica Elettrica + Campi Elettrici + Legge di Gauss + Potenziale Elettrico + Capacita Elettrica

Compressori volumetrici a) Compressori alternativi

Lezione 10: Il problema del consumatore: Preferenze e scelta ottimale

Classificazione dei Sensori. (raccolta di lucidi)

Gli input sono detti anche fattori di produzione: terra, capitale, lavoro, materie prime.

Application note. CalBatt NomoStor per i sistemi di accumulo di energia

Introduzione al Campionamento e

STRATEGIA DI TRADING. Turning Points

Per migliorare le performance aziendali

Blade cooling Gas Turbine. Impianti per l Energia l

Appendice III. Criteri per l utilizzo dei metodi di valutazione diversi dalle misurazioni in siti fissi

11. Evoluzione del Software

Progettazione di una base di dati Ufficio della Motorizzazione

Sistemi Operativi Kernel

Il Sistema Operativo (1)

Tipi classici di memoria. Obiettivo. Principi di localita. Gerarchia di memoria. Fornire illimitata memoria veloce. Static RAM. Problemi: Dynamic RAM

GLI STATI DI AGGREGAZIONE DELLA MATERIA. Lo stato gassoso

Transcript:

Fusione termonucleare controllata e High Performance Computing S. Briguglio e G. Vlad ENEA Frascati

Sommario La fusione nucleare La simulazione particle in cell (PIC) Il porting di un codice PIC su architetture parallele Risultati

La fusione nucleare 3.5 MeV Schema di reattore 14.1 MeV Il neutrone cede la sua energia a un mantello che circonda la camera calore raffreddamento ad acqua vapore turbina energia elettrica Vantaggi: combustibile quasi inesauribile; scarsa produzione di scorie rischio di fuga radioattiva trascurabile; sistema intrinsecamente sicuro

La fusione nucleare (segue ) D + T: repulsione elettrostatica a grandi distanze; attrazione nucleare a piccolissima distanza (10-15 m) Energia cinetica iniziale dei nucleoni molto alta Acceleratore? Non conviene Alta temperatura (>107 C): centro delle stelle B Contenimento? Nucleoni carichi: forza di Lorentz Solenoide campo magnetico E le pareti di fondo?

La fusione nucleare (segue ) Tokamak: тороидальная камера с магнитными катушками (camera toroidale con bobine magnetiche) JET: il più grande tokamak in attività

La fusione nucleare (segue ) Road map verso il reattore: riscaldare un gas (plasma) di deuterio-deuterio (corrente, microonde, fasci di particelle) idem, con deuterio-trizio (attivazione dei materiali, ma reazioni di fusione numerose) garantire che i nuclei di elio siano ben confinati e trasferiscano la loro energia al plasma spegnere il riscaldamento dall esterno e lasciare che siano i nuclei di elio a tener caldo il plasma (ignizione)

La fusione nucleare (segue ) Per tenere caldo il centro del plasma è necessario un trasporto di energia e di particelle ridotto Onde elettromagnetiche che si sviluppano nel plasma, però, incrementano il trasporto Risonanze tra onde elettromagnetiche e particelle cariche che viaggiano in fase con l onda: l onda cresce in ampiezza a spese dell energia della particella il campo elettromagnetico che così si produce trascina la particella verso il bordo del plasma

Le equazioni del sistema Funzione di distribuzione (densità nello spazio x,v) Equazione di Vlasov Forza su ciascuna particella Equazioni per i campi nel limite non relativistico: Eq. Coulomb Eq. Ampère

Perché l approccio computazionale? Tipiche semplificazioni per una trattazione analitica: limite perturbativo (la struttura del campo elettromagnetico è data; le particelle agiscono su di esso come una piccola perturbazione) limite fluido (le particelle sono caratterizzate da pochi parametri medi: densità, temperatura, etc.; non conta il loro comportamento individuale) limite lineare (si valuta solo il grado di stabilità di un equilibrio, non la sua evoluzione in caso di instabilità) Una conoscenza piena del comportamento del sistema richiede invece una trattazione auto-consistente (campi determinati dalle particelle; moto delle particelle determinato dai campi) cinetica (particelle con velocità diverse interagiscono con i campi in modo diverso: risonanze) non lineare (il confinamento delle particelle dipende da quanto i campi modificano le loro orbite: ampiezza di saturazione) approccio computazionale

La simulazione a particelle Discretizzazione: Eq. moto: Eq. campi:

Plasma numerico e plasma fisico Discretizzazione dello spazio fisico e dello spazio delle velocità: ciascuna particella rappresenta un gran numero di particelle fisiche con coordinate x,v in un intorno di x i,v i (macroparticella) Nota: è una scelta obbligata: in un Tokamak: circa 10 20 10 21 particelle per ciascuna particella occorre memorizzare 6 variabili real*8 (x,v) per descriverle tutte, occorrerebbero circa 10 13 Gbytes di memoria Discretizzazione del tempo: scelta obbligata, in mancanza di una soluzione esatta Quanto può essere lasca la discretizzazione? accuratezza (campionamento): molte macroparticelle in un volume ρ L 3 (lunghezza d onda tipica ρ L ) molti step temporali in un tempo 1/ω (frequenza tipica = ω ) vincoli più stringenti?

La soluzione più immediata: simulazione N-corpi Calcolo dei campi nel punto in cui si trova la macroparticella come sovrapposizione dei campi prodotti da ciascuna delle altre macroparticelle: Due problemi: il numero di operazioni per l evoluzione delle coordinate delle macroparticelle scala con N part 2 (con N part numero di macroparticelle) interazioni a piccole distanze

N-corpi (segue ) n particelle con carica e + rappresentate da una macroparticella con carica ne + : l interazione da lontano non è alterata l interazione da vicino può essere sovrastimata da lontano da vicino Condizione per curare il problema: molte macroparticelle in un volume λ 3 D (λ D =lunghezza di Debye) nota: λ D << ρ L vincolo molto più stringente del bisogno di accuratezza E n e + n e + 1 ne + 1 ne + E E E

Alternativa: particle in cell Benché le particelle si muovano nel continuo, il dominio spaziale viene suddiviso in celle (griglia)

Ciascuna particella distribuisce la propria densità di carica e di corrente ai vertici vicini: density computing ( N part ) I campi vengono calcolati solo sui vertici delle celle, in base alle densità di carica e di corrente: field solving ( N celle Log N celle ) Posizione e velocità di ciascuna particella sono ricalcolate in base ai campi nella posizione della particella, ottenuti da un interpolazione dei valori calcolati sui vertici vicini: pushing ( N part )

Vantaggi (rispetto all approccio N-corpi): Il numero delle operazioni scala con N part (anziché con N part2 ) L estrapolazione dei campi e la suddivisione di carica e corrente tra i vertici produce un taglio delle interazioni a distanza inferiore alla dimensione di una cella: le interazioni a piccola distanza, che con numeri ragionevoli di macroparticelle acquisterebbero un peso eccessivo, sono artificiosamente soppresse a parità di accuratezza, si guadagna un fattore (ρ L / λ D ) 3 10 4 nel numero N part richiesto

Struttura di un codice PIC: c call inizializza(x,field) do istep=1,nstep call pushing(field,x) call compute_density(x,density) call field_solver(density,field) enddo

Ancora guai: il problema degli alias Una griglia spaziale con celle di ampiezza Δx confonde perturbazioni con numero d onda k e k n =k+n(2π/δx): l una è vista come alias dell altra Il sistema presenta instabilità non fisiche (scompaiono per Δx 0) Ne deriva un limite superiore sul Δx tollerabile In un plasma confinato magneticamente, si riottiene Δx < λ D Δx x Problema analogo per Δt: Δt < ω p -1 (ω p = frequenza di plasma)

I fenomeni da investigare sono caratterizzati da scale di variazione molto più lente: 1/k ρ L 20 λ D 1/ω 1/ω 10 4 1/ω p Per sopprimere le instabilità non fisiche occorrerebbe una discretizzazione inutilmente fine: a fissata accuratezza N part più grande di un fattore (ρ L / λ D ) 3 10 4 n step più grande di un fattore (ω p / ω ) 3 10 4 CPU time più grande di un fattore 10 8 Soluzione: mediare le equazioni del moto rispetto alla girazione (rapida) intorno alle linee di campo (formalismo girocinetico) Risultato: si perde l informazione su ciò che succede su scale spaziotemporali brevi, ma si sopprimono le instabilità numeriche su quelle scale si può rilassare la risoluzione: Δx < ρ L Δt < 1/ω

Parallelizzazione di un codice PIC su architettura distributed memory Esigenze: Esplorare l effetto di perturbazioni di campo elettromagnetico su scale di ordine ρ L per macchine con dimensioni 10 2 ρ L Descrivere accuratamente (basso rumore numerico) la funzione di distribuzione nello spazio delle velocità (alto numero di particelle per cella) Problema di dimensioni medie: N celle 10 6 N particelle 10 2 10 3 N celle 10 8 10 9 N time-steps 10 4 N particelle >> N celle prioritaria la distribuzione dei carichi (memoria e calcolo) relativi alle particelle Due strategie possibili: decomposizione per particelle decomposizione per dominio

Decomposizione per particelle Ogni nodo vede tutto il dominio spaziale, ma solo una parte delle particelle

Decomposizione per dominio Ogni nodo vede solo una parte del dominio spaziale, e tutte le particelle che vi si trovano

Decomposizione per particelle Dominio replicato, particelle distribuite Pro: carichi perfettamente bilanciati nessuna migrazione di particelle da un nodo all altro implementazione relativamente semplice Contro: memoria relativa ai campi e alle densità replicata (la risoluzione massima ottenibile non scala perfettamente con N nodi ) necessaria una riduzione tra nodi delle densità (comunicazione: lo speed up non scala perfettamente con N nodi )

Scheletro del codice parallelo (MPI) c c c call MPI_Init(ierr) call MPI_Comm_size(MPI_COMM_WORLD, n_nodi, ierr) call MPI_Comm_Rank(MPI_COMM_WORLD,my_rank,ierr) call decomposizione(n_part,n_nodi,peso_nodo,n_part_nodo) allocate (x(n_part_nodo)) call inizializza(my_rank,x,field) do istep=1,nstep call pushing(field,x) call compute_density(x,density_nodo) call MPI_ALLREDUCE(density_nodo,density,n_celle, & MPI_DOUBLE_PRECISION,MPI_SUM, & MPI_COMM_WORLD,ierr) call field_solver(density,field) enddo call MPI_Finalize(ierr)

Decomposizione per dominio Dominio distribuito; particelle distribuite Pro: memoria relativa a campi e densità distribuita (risoluzione spaziale massima ottenibile N nodi ) non è necessaria riduzione tra nodi delle densità (speed up N nodi ) eccezione: confini tra sub-domini adiacenti (v. prossima slide) Contro: migrazione di particelle da un nodo all altro: check su ogni particella dopo il pushing ed eventuale riassegnazione al nuovo nodo (comunicazione) possbile sbilanciamento dei carichi con perdita dello scaling quasi ideale di risoluzione ottenibile e speed up con N nodi cura: bilanciamento dinamico (riassegnazione di dominio e particelle quando necessario) più difficile da implementare

Decomposizione per dominio: problema dei sub-domini adiacenti Al confine tra sub-domini adiacenti, i vertici sono in comune tra celle appartenenti a sub-domini diversi Conseguenza: particelle assegnate a nodi diversi richiedono, per il pushing, i valori dei campi su quei vertici contribuiscono alle densità di quegli stessi vertici Due possibilità: nodo 1 nodo 2 assegnare i vertici in comune a uno solo dei nodi (ogni particella di pertinenza di quel vertice, ma appartenente all altro nodo, richiede comunicazione per conoscere i campi e contribuire alle densità) replicare sui due nodi le locazioni di memoria relative ai vertici comuni ed operare la riduzione delle densità: lieve peggioramento degli scaling con N nodi Conviene la seconda!

Scheletro del codice parallelo (MPI) c c c call MPI_Init(ierr) call MPI_Comm_size(MPI_COMM_WORLD, n_nodi, ierr) call MPI_Comm_Rank(MPI_COMM_WORLD,my_rank,ierr) call decomposizione(n_part,n_celle,n_nodi,peso_nodo,n_part_nodo,ncelle_nodo) allocate (x(n_part_nodo)) allocate(field_nodo) call inizializza(my_rank,x,field_nodo) do istep=1,nstep call load_balancing(n_part_left,n_part_right) call riassegna_dominio(n_part_left,n_part_right,n_part_nodo,n_celle_nodo, & x,field_nodo) call pushing(field_nodo,x) call riassegna_particelle(n_part_nodo,x) call compute_density(x,density_nodo) call density_bordo(density_nodo) call field_solver(density,field_nodo) enddo call MPI_Finalize(ierr)

Esempio: bilanciamento dei carichi dinamico 0 1 2 N part-left (1) > 0 N part-left (2) < 0 N part-rght (0) < 0 N part-rght (1) > 0 & & & & & & if(my_rank.eq.0)then do irank=1,n_nodi-1 call MPI_RECV(n_part_nodo(irank),1,MPI_INTEGER, irank,itag1,mpi_comm_world,status,ierr) enddo calcola il numero di particelle che ciascun nodo deve scambiare con i nodi adiacenti do irank=1,n_nodi-1 call MPI_SEND(n_part_left(irank),1,MPI_INTEGER, irank,itag2,mpi_comm_world,status,ierr) call MPI_SEND(n_part_right(irank),1,MPI_INTEGER, irank,itag3,mpi_comm_world,status,ierr) enddo else call MPI_SEND(n_part_nodo(my_rank),1,MPI_INTEGER, 0,itag1,MPI_COMM_WORLD,status,ierr) call MPI_RECV(n_part_left(my_rank),1,MPI_INTEGER, 0,itag2,MPI_COMM_WORLD,status,ierr) call MPI_RECV(n_part_right(my_rank),1,MPI_INTEGER, 0,itag3,MPI_COMM_WORLD,status,ierr) endif individua la porzione di dominio che ciascun nodo deve scambiare con i nodi adiacenti

Parallelizzazione su architettura shared memory: il pushing I processori condividono la memoria Distribuiamo le iterazioni dei loops sulle particelle tra i diversi processori mediante direttive OpenMP Distribuzione delle iterazioni del loop relativo al pushing: è possibile che una particella (iterazione) legga le stesse locazioni di memoria lette simultaneamente da altra particella (field); scrive però solo su locazioni di memoria non toccate da altre particelle (x); sufficiente privatizzare le variabili locali!$omp parallel do default(shared) private(i,j) do i=1,n_particelle j = g(i) x(i) = x(i) + field(j) enddo!$omp end parallel do

Parallelizzazione su architettura shared memory: il calcolo delle densità Distribuzione delle iterazioni del loop relativo al calcolo delle densità: particelle diverse spazialmente vicine possono cercare di scrivere simultaneamente (race conditions) sulla stessa locazione di memoria (es.: densità di carica in un certo vertice di cella) Possibili ricette: decomposizione per particelle tra processori decomposizione per dominio tra processori

Decomposizione per particelle Si introducono copie private (una per processore) degli arrays da aggiornare e si effettua la riduzione delle copie al termine del loop OpenMP prevede la clausola reduction a questo scopo, ma non è affatto certo che sia utilizzabile anche per arrays Più sicura un implementazione fatta in casa: density(:) = 0.!$OMP parallel default(shared) private(i,j,density _aux) density_aux(:) = 0.!$OMP do do i=1,n_particelle j = g(i) density_aux(j) = density_aux(j) + d(i) enddo!$omp end do!$omp critical density(:) = density(:) + density_aux(:)!$omp end critical!$omp end parallel Pro: semplicità Contro: operazione di riduzione seriale memoria richiesta da density_aux N processori

Decomposizione per dominio Loop sulle particelle per identificare il sub-dominio in cui si trova ciascuna particella: viene definito il numero delle particelle n_part_sub(j) che si trovano in ciascun sub-dominio j a ciascuna particella i sono assegnati gli indici j_sub(i)=j e k(i) 1,n_part_sub(j) La definizione di n_part_sub(j) e di k(i) presenta il rischio di race conditions: viene effettuata all interno di una critical section n part-sub (j) k(i)

Decomposizione per dominio (segue ) La serializzazione può essere minimizzata limitando la riassegnazione alle sole particelle che hanno appena cambiato subdominio di appartenenza) Pro: il supplemento di memoria richiesto (j_sub, k) è modesto rispetto a quello già richiesto per le particelle, e non scala con N processori Contro: un loop in più sulle particelle implementazione non semplice (ma divertente )

Decomposizione per dominio (segue ) Calcolo delle densità: loop sui subdomini dispari - loop sulle particelle contenute nel sub-dominio loop sui subdomini pari - loop sulle particelle contenute nel sub-dominio Pro: non c è rischio di race conditions (iterazioni effettuate da processori diversi aggiornano locazioni di memoria relative a sub-domini diversi e non adiacenti non è necessario introdurre copie degli arrays di densità, né operazioni di riduzione 1 3 5 2 4 6

Architetture a memoria distribuita/condivisa La combinazione di questi concetti si può applicare per la parallelizzazione su cluster di sistemi shared-memory multiprocessor (SMP) particelle/ particelle dominio/ dominio nodi processori o le altre possibili combinazioni (particelle/dominio, dominio/particelle)

Performances Confronto tra strategie (IBM sp3, nel 2003) particle-particle (Cresco; 256 nodi Intel-Xeon con 2 processori quad core per nodo)

Bibliografia B. Di Martino, S. Briguglio, G. Vlad and P. Sguazzero, Parallel PIC plasma simulation through particle decomposition techniques, Parallel Computing, 27: 295-314, 2001 G. Vlad, S. Briguglio, G. Fogaccia and B. Di Martino, Gridless finite-size-particle plasma simulation, Computer Physics Communication, 134: 58-77, 2001 S. Briguglio, G. Vlad, B. Di Martino, and G. Fogaccia, Parallelization of plasma simulation codes: Gridless finite size particle versus particle in cell approach, Future Generation Computer Systems, 16: 541-552 (2000) B. Di Martino, S. Briguglio, M. Celino, G. Fogaccia, G. Vlad, V. Rosato, and M. Briscolin,. Development of large scale high performance applications with a parallelizing compiler. International Journal of Computer Research. Special Issue: Practical Parallel Computing, 10: 439-454, 2001 B. Di Martino, S. Briguglio, G. Vlad and G. Fogaccia, Workload decomposition strategies for Shared Memory Parallel Systems with OpenMP, Scientific Programming: Special Issue on OpenMP, 9: 109-122, 2001 B. Di Martino, S. Briguglio, M. Celino, G. Fogaccia, G. Vlad, V. Rosato, and M. Briscolini, Chapter "Experiences on Parallelizing Compilation for development and porting of large scale applications on Distributed Memory Parallel Systems", in Advances in Computation: Theory and Practice. 2001 S. Briguglio, B. Di Martino, and G. Vlad, Workload decomposition strategies for hierarchical distributedshared memory parallel systems and their implementation with integration of high level parallel languages. Concurrency and Computation: Practice and Experience, 14: 933-956, 2002 S. Briguglio, B. Di Martino, and G. Vlad, A performance-prediction model for PIC applications on clusters of Symmetric MultiProcessors: Validation with hierarchical HPF+OpenMP implementation. Scientific Programming: Special Issue, 11:159-176, 2003 S. Briguglio, B. Di Martino, G. Fogaccia and G. Vlad, MPI+OpenMP Implementation of memory-saving parallel PIC applications on hierarchical distributed-shared memory architectures, Proceedings of the 2003 European Simulation and Modelling Conference, ESMC2003, October 27-29, 2003, Naples, Italy, 2003 B. Di Martino, S. Venticinque, S. Briguglio, G. Fogaccia, and G. Vlad, High Performance Computing: Paradigm and Infrastructure, chapter 27: "A Grid based distributed simulation of Plasma Turbulence", pages 523 534. John Wiley and Sons, 2005 S. Venticinque, R. Aversa, B. Di Martino, R. Donini, S. Briguglio, and G. Vlad, Management of high performance scientific applications using mobile agents based services. Scalable Computing: Practice and Experience, 11(2): 149-159, July 2010