Data di nascita: 11 Luglio 1968
Luogo di nascita: Erice (TP)
Nazionalià: Italiana
Email: schifano at fe.infn.it
RearchId: http://www.researcherid.com/rid/C-3555-2012

Curriculum

  • [1994:] Laurea in Scienze dell'Informazione (Università di Pisa, 105/110), titolo tesi titolo: Sul Parallelismo in Programmi FP .
  • [1995:] idoneità al dottorato di ricerca presso l'Università di Pisa.
  • [Mar 1995 - Mar 1996:] vincitore di una borsa di studio di 1 anno presso l'Istituto di Elaborazione dell'Informazione (IEI)del CNR di Pisa.
  • [Mar 1996 - Mar 1997:] titolare di due contratti con l'istituto IEI per una durata complessiva di un anno.
  • [Feb 1997 - Feb 1999:] vincitore di borsa di studio biennale presso l'INFN sezione di Pisa, nell'ambito del progettoPQE2000.
  • [Mar 1999 - Mar 2004:] contratto ex art. 23 (ricercatore tecnologo) della durata di quattro anni, presso la sezione di Pisa dell'INFN. Nel Marzo2003 mi trasferisco alla sezione INFN di Ferrara.
  • [Apr 2004 - Dic 2005:] contratto a progetto (art. 2222) presso la sezione INFN di Ferrara.
  • [Gen 2006 - Ott 2006:] contratto ex art. 23 della durata di 2 anni presso la sezione di Ferrara dell'INFN (primo ricercatore tecnologo). Contratto terminato a Novembre 2006 a seguito della nomina a ricercatore universitario.
  • [Nov 2006 - oggi:] ricercatore confermato SSD INF/01 presso l'Università di Ferrara.

Pubblicazioni

La lista delle mie pubblicazioni è pubblicata sui database:

Presentazioni a conferenze internazionali (peer-reviewed)

  1. Early experience on using Knights Landing processors for Lattice Boltzmann applications.
    12th International Conference on Parallel Processing and Applied Mathematics", September 10-13 2017, Lublin, Poland
  2. Experience on vectorizing Lattice Boltzmann kernels for multi- and many-core architectures.
    11th International Conference on Parallel Processing and Applied Mathematics", September 6-9 2015, Krakow, Poland
  3. Optimizing Communications in multi-GPU Lattice Boltzmann Simulations.
    International Conference on High PerformanceComputing and Simulation", July 20-24 2015, Amsterdam, The Netherlands
  4. Using Accelerator to Speed-Up Scientific and Engineering Codes: Perspective and Problems.
    6th Conference on Computational Methods in Marine Engineering", June 15-17, 2015, Rome, Italy
  5. A portable OpenCL Lattice Boltzmann code for multi- And many-core processor architectures.
    International Conference on Computational Science" (ICCS), June 10-12 2014, Cairns, Australia
  6. Benchmarking GPUs with a Parallel Lattice-Boltzmann Code.
    25th Int. Symp. on Computer Architecture and HighPerformance Computing" (SBAC-PAD), October 23-26 2013, Porto de Galinhas, Brazil
  7. Computing on knights and kepler architectures.
    20th International Conference on Computing in HighEnergy and Nuclear Physics" (CHEP), October 14-18 2013, Amsterdam, The Netherlands
  8. An optimized Lattice Boltzmann code for BlueGene/Q.
    10th International Conference on Parallel Processingand Applied Mathematics" (PPAM), September 8-11 2013, Warsaw, Poland
  9. Exploiting parallelism in many-core architectures: a test case based on Lattice Boltzmann Models.
    Conference on Computational Physics (CCP), October 14-18, 2012, Kobe, Japan
  10. Performance Impact of AVX Instructions on a D2Q37 Lattice Boltzmann Scheme ,
    24th International Conference on Parallel Computation Fluid Dynamics (PARCFD), May 21-25, 2012, Atlanta, GE USA
  11. Implementation and Optimization of a Thermal Lattice Boltzmann Algorithm on a multi-GPU cluster,
    Innovative Parallel Computing 2012 (INPAR), May 13-14, 2012 San Jose, CA USA
  12. A multi-GPU implementation of a D2Q37 Lattice Boltzmann Code,
    9a International Conference on Parallel Processing and Applied Mathematics (PPAM), September 11-14, 2011, Torun (Poland)
  13. Optimization of Multi-Phase Compressible Lattice Boltzmann Codes on Massively Parallel Multi-Core Systems,
    International Conference on Computational Science (ICCS), June 1-3, 2011, Singapore
  14. Lattice Boltzmann Method Simulations on Massively Parallel Multi-core Architectures,
    High Performance Computing Symposium (HPC), April 3-6, 2011, Boston, Massachusetts, USA
  15. Monte Carlo Simulations of Spin Systems on Multi-core Processors,
    Para 2010: State of the Art in Scientific and Parallel Computing (PARA), Reykjavik, June 6-9, 2010, Iceland
  16. Monte Carlo Simulations of Spin Glass on the Cell Broadband Engine,
    8a International Conference on Parallel Processing and Applied Mathematics (PPAM), September 13-16 2009, Wroclaw, Poland

Presentazioni a conferenze su invito

  1. Parallel Approaches To Lattice Boltzman Methods.
    Introductory School on Parallel Programming and Parallel Architecture for High-Performance Computing", October 10th, 2016, ICTP Trieste, Italy
  2. Early experience on running GPU-based Lattice Boltzmann simulations on POWER8 systems.
    PADC Opening Workshop", October 12-13, 2015, Juelich, Germany
  3. Benchmarking GPU architectures with Lattice Boltzmann simulations.
    NVIDIA Application Lab Workshop", July 8-9, 2013, Juelich, Germany
  4. LBM on multi- and many-core architectures.
    PRACE Summer School Enabling Applications on Intel MIC based Parallel Architectures", July 8-11, 2013, Casalecchio di Reno, Bologna, Italy
  5. Multi- and many-core computing for Physics applications.
    X Seminar on Nuclear, Subnuclear and Applied Physics", June 2-8, 2013, Alghero, Italy
  6. Implementation and Optimization of a D2Q37 Lattice Boltzmann.
    "NVIDIA Application Lab Kick-off Workshop", Sep. 19-20, 2012, Juelich, Germany
  7. The QPACE Project,
    Scalperf Workshop 2009, September 20-24 2009, Bertinoro, Italy
  8. Implementation of the QPACE Torus Network,
    eQPACE workshop, February 9-10, 2009, JSC Juelich, Germany
  9. Computing Systems for Theoretical Physics,
    Young Investigators Symposium, October 13-15, 2008, Oak Ridge National Laboratory, USA
  10. Trends in Computing for Theoretical Physics,
    Scalperf Workshop 2008, September 07-12, 2008, Bertinoro, Italy
  11. Monte Carlo simulations in statistical physics: Janus,
    26th IFAE conference, March 2008, Bologna, Italy
  12. Lattice QCD on Cell,
    Scalperf workshop 2007, September 02-06 2007, Bertinoro, Italy
  13. Computing for Lattice QCD: apeNEXT,
    HPTC 2004 Conference, 19-22 September 2004, Chateau de Maffliers, Paris, France
  14. CAOS: The APEmille Operating System,
    Third German Perl Workshop, February 28 - March 2, 2001, Saint Augustin, Bonn, Germany
  15. European Tflops Project for Lattice Quantum Chromodynamics,
    10th ORAP Forum and 28th SPEEDUP Workshop, 5-6 October 2000, CERN, Geneve, Swiss

Committe Member and Organization of Workshops

  • Committe member of: "8th International Workshop in Performance Modeling, Benchmarking and Simulation of High Performance Computer Systems (PMBS17)", organizzato come parte della conferenza ACM/IEEE Supercomputing 2017 (SC17), Nov. 13,2017, Denver, CO (USA)
  • Organizer of: ParCo 2017: "Mini-Symposium on Energy Aware Scientific Computing on low power and heterogeneous architectures", organizzato come parte della conferenza "International Conference on Parallel Computing" (ParCo 2017), September 12-15, 2017, Bologna, Italia
  • Committe member of: "The Seventh International Conference on Advanced Communications and Computation (INFOCOMP17)" June 25 - 29, 2017 Venezia (ITALY)
  • Committe member of: "The International Workshop on OpenPOWER for HPC (IWOPH'17)", 22 June, 2017 Frankfurt (GERMANY)
  • Committe member of: "The International Workshop in Performance Modeling, Benchmarking and Simulation of High Performance Computer Systems (PMBS16)", organizzato come parte della conferenza ACM/IEEE Supercomputing 2016 (SC16), Nov. 13, 2016, Salt Lake City, UT (USA)
  • Organizer of: "The International Workshop on Energy-aware high performance Heterogeneous Architectures and Accelerators (WEHA 2016) as part of The International Conference on High Performance Computing & Simulation" (HPCS 2016), July 18-22, 2016, Innsbruck, Austria
  • Organizer of: "Distributed Computing Architectures And Environmental Science Applications Workshop, June 6-10 2016, Ferrara, Italy
  • Organizer and chair of: "Computing on Low-Power Architectures (COLA)", February 25-26 2016, Ferrara, Italy.
  • Committe member of: "6th International Workshop in Performance Modeling, Benchmarking and Simulation of High Performance Computer Systems (PMBS15)", as part of "ACM/IEEE Supercomputing 2015 (SC15)", Nov. 15, 2015, Austin, TX (USA)
  • Committe member of: "International Workshop on Energy-aware high performance Heterogeneous Architectures and Accelerators" (WEHA 2015), organizzato come parte del "International Conference on High Performance Computing & Simulation (HPCS 2015)", July 20-24, 2015, Amsterdam, The Netherlands.

    Attività Didattica

    A partire dall'anno accademico 2002-2003 ho svolto attività didattica come professore a contratto nell'ambito del corso di laurea triennale e specialistico di Informatica presso l'Università di Ferrara. A partire dall'anno accademico 2006-2007, a seguito della nomina di ricercatore, sono stato titolareufficiale dei seguenti insegnamenti presso i medesimi corsi di laurea:
    • [2002 - 2010]: Calcolabilità e Complessità , 76 ore, 12 CFU;
    • [2002 - 2012]: Algoritmi e Strutture Dati , 108 ore, 12 CFU;
    • [2003 - 2007]: Applicazioni di Sistemi Distribuiti , 28 ore, 3 CFU;
    • [2010 - oggi]: Sistemi Operativi , 96 ore 10 CUF;

    Attività Scientifica

    La mia attività di ricerca si colloca nell'ambito della progettazione di architetture di calcolo a parallelismo massiccio, e nell'ottimizzazione di applicazioni scientifiche, principalmente, di fisica computazionale.

    Le simulazioni numeriche sono da anni ampiamente utilizzate in parecchie aree della scienza, ed in particolare in quei casi in cui la complessità del sistema da studiare non permette di ottenere predizioni significative con tecniche di calcolo analitiche. Nell'ambito della fisica teorica, alcuni esempi significativi sono rappresentati dalla teoria della Cromodinamica Quantistica (QCD), basata sulla teoria di Gauge su reticolo (LGT), per lo studio delle interazione delle particelle elementari della materia, dalle Equazioni di Boltzmann per lo studio della fluidodinamica, e dalla teoria degli Spin Glass per lo studio di sistemi disordinati complessi, come i materiali ferro-magnetici. Predizioni quantitative per questi problemi possono essere ottenute solamente mediante estensive simulazioni Monte Carlo, per le quali è necessario utilizzare sistemi ad elevata potenza di calcolo e massicciamente paralleli.

    L'attività di ricerca può divisa in due filoni principali:

    • nel primo mi sono dedicato alla progettazione di sistemi di calcolo ottimizzati per applicazioni scientifiche a parallelismo massiccio e ad alte prestazioni. Questa attività è stata principalmente svolta tra il 1997 e 2009 nell'ambito dei progetti APE, JANUS e QPACE;

    • nel secondo mi sono dedicato allo studio e la modellazione delle perfomance di processori multi-core e many-core per applicazioni scientifiche, come ad esempio simulazioni Monte Carlo di fluido-dinamica mediante modelli di Lattice-Boltzmann, e simulazioni di sistemi di Spin Glass.
    Nelle seguenti sezioni sono descritte più in dettaglio le attivtà svolte.

    Progetto APE (1997-2004)

    Il progetto APE è stato sviluppato da l'INFN, l'istituto DESY (Germania) e l'università di Paris-Sud. Scopo del progetto è stata la progettazione di sistemi di calcolo a parallelismo massiccio ottimizzati per le simulazioni numeriche di Lattice Quantum Chromodynamics (LQCD), basate sulla teoria di Gauge su reticolo (LGT).La mia collaborazione con il gruppo APE è iniziata nel 1997, ed ha coinciso con la fase avanzata dello sviluppo e utilizzo del sistema APEmille. Successivamente, sono stato co-autore della proposta di progetto apeNEXT, il successore del sistema APEmille. Nell'ambito del progetto apeNEXT ho contribuito in maniera significativa alla fase di progettazione, sviluppo e installazione del sistema.

    Nell'ambito dei progetti APE sono stato coinvolto nelle seguenti attività:

    • progettazione VLSI. Ho contribuito alla progettazione e al test dei processori dei sistemi APEmille e apeNEXT. Ho anche sviluppato una ambiente di test per il controllo di tutte le funzionalità dei chip e ho eseguito un ampio numero di simulazioni funzionali dei chip modellati tramite il linguaggio VHDL.

    • sviluppo del compilatore. Ho coordinato lo sviluppo del generatore e ottimizzatore di microcodice denominato shaker, fondamentale per ottenere elevate prestazioni di calcolo. Il generatore e ottimizzatore di codice costituisce l'ultimo passo della catena di compilazione dei sistemi APE, e traduce il programma assembly, generato dal compilatore, in codice eseguibile dalla macchina. Durante tale processo, traduce ogni istruzione assembly in un micro-programma composto da una o più istruzioni VLIW (Very Long Instruction Word). Successivamente, schedula le micro-istruzioni in modo da massimizzare l'efficienza di esecuzione, compattando in ogni parola VLIW il massimo numero possibile di micro-istruzioni, rispettando sia le dipendenze logiche tra le istruzioni che i vincoli imposti dall'hardware. Il microcodice così ottenuto viene passato all'allocatore dei registri, altro passo dello shaker, il quale mappa i registri virtuali sui registri fisici della macchina.

    • sviluppo del sistema operativo. Ho coordinato la progettazione, sviluppo ed implementatazione del sistema operativo dei sistemi APE denominato CAOS (Cool Ape Operating System). Il sistema operativo si occupa del caricamento del programma, del data IO e dell'exception handling, sulle varie partizioni della macchina, ognuna delle quali lavora con un singolo programma in esecuzione. CAOS è quindi un sistema relativamente semplice, comparato a tradizionali sistemi operativi, ma deve curare in particolare l'efficienza di Input-Output della macchina, che ha un ruolo chiave nella efficienza globale dei programmi di LGT, caratterizzati da grossi volumi di dati.

    • sviluppo ed ottimizzazione di applicazioni di simulazione di fisica teorica. Ho frequentemente collaborato con gruppi di ricerca di fisica, in Germania ed in Italia, per l'analisi, sviluppo ed ottimizzazione di programmi di simulazione. Mi sono occupato, soprattutto in collaborazione con il gruppo LGT di Pisa e di DESY, della ottimizzazione dei programmi di LGT e dello sviluppo di programmi di soluzione numerica delle equazioni della dinamica dei fluidi in regime turbolento.

    Pubblicazioni di rilievo per questa attività sono:

    Progetto Janus (2005-2008)

    Dal 2005 al 2008, ho collaborato al progetto Janus, un progetto Italo-Spagnolo, di cui sono co-autore della proposta di progetto, a cui hanno partecipato l'istituto di Biocomputacion y Fisica de Sistemas Complejos (BIFI) di Saragozza, e i dipartimenti di fisica di Ferrara, Roma, Madrid e Badajoz.

    Scopo del progetto è stato quello di realizzare un sistema di calcolo parallelo ottimizzato per simulazioni Monte Carlo di sistemi altamente disordinati come gli Spin Glass, rilevanti nell'area della fisica della materia dello stato solido (condensed matter physics) e dell'ottimizzazione.

    Le prestazioni delle simulazioni dei sistemi di calcolo commodity non sono sufficienti a soffisfare le richieste computazionali per lo studio dei sistemi di Spin Glass. Tale limitazione è principalmente dovuta al fatto che i kernel di calcolo degli algoritmi di simulazione effettuano prevalentemente operazioni su variabili singolo bit (rappresentanti i valori degli spin) per cui una implementazione su processori con architetture standard risulta poco efficiente. Inoltre, l'elaborazione di un singolo spin richiede il valore di almeno altri 7 valori single-bit, il numero esatto dipende dall'algoritmo di simulazione utilizzato, per cui la banda passante verso la memoria limita il numero di spin che possono essere aggiornati in parallelo.Janus è un sistema parallelo eterogeneo composto da 16 schede ognuna delle quali contiene 16 processori FPGA-based, denominati scientific processor (SP), e 1 processore di I/O anch'esso realizzato mediante una FPGA. L'idea di Janus è quella di permettere l'implementazione di algoritmi di simulazione Monte Carlo di spin glass in hardware, ovvero su un dispositivi elettronici le cui funzionalità sono programmabili mediante un linguaggio di descrizione hardware come il VHDL. In questo modo è possibile definire ed allocare su una singola FPGA circa un migliaio di motori di update, ognuno dei quali effettua calcoli su singoli bit ed ha accesso ad una memoria privata.

    Nell'ambito del progetto Janus ho contribuito alla definizione dell'architettura del sistema, e sono stato responsabile per il coordinamento dello sviluppo del sistema di IO, per scambiare dati da e verso l'host. Ho quindi sviluppato un modulo che realizza una interfaccia gigabit ethernet, un driver linux, un protocollo di comunicazione, e una libreria di funzioni che permettono all'utente di caricare il programma sui processori della macchina, monitorare la loro esecuzione ed effettuare il download e l'upload dei dati.A Febbraio 2008 è stato assemblato presso l'istituto BIFI un sistema Janus di 256 processori. L'intero sistema ha una potenza di calcolo complessiva, per applicazioni di simulazione di Spin Glass, di circa 75 Tera-ops, ed un rapporto performance per Watt di circa 7.5 Giga-ops/Watt.

    Janus ha permesso per la prima volta di simulare un sistema di Spin Glass per un tempo dell'ordine di 1 secondo, contribuendo a verificare e capire meglio i risultati sperimentali. Tali risultati sono stati pubblicate su varie referenze. In merito a tali pubblicazioni desidero precisare che, trattandosi di pubblicazioni di pura fisica, sono stato inserito nella lista degli autori come segno di riconoscimento della comunità di Spin Glass per il mio contributo dato nella realizzazione del sistema di calcolo utilizzato per le simulazioni Monte Carlo.

    Pubblicazioni rilevanti per questa attvità sono:

    Progetto QPACE (2007-2009)

    A partire dal 2005, mi sono dedicato all'analisi di performance di architetture ottimizzate per il calcolo scientifico di prossima generazione, ed in particolare di sviluppare una metodologia per stimare se l'architettura di un processore, in termini di potenza di calcolo, di quantità di memoria on-chip e di banda di I/O, può soddisfare i requisiti computazionali di uno specifico problema. Come primo ovvio esempio questa metodologia è stata applicata alla teoria LGT. I risultati di questo studio sono stati pubblicati in The potential of on-chip multiprocessing for QCD machines.L'approccio utilizzato, si basa su un studio dettagliato della quantità di dati che un processore, con un certo numero di unità funzionali, deve scambiare con l'esterno, sia con la memoria locale, sia con la memoria dei nodi vicini, per eseguire un algoritmo di simulazione LQCD con la massima efficienza.

    Tale studio ha dimostrato che è possibile definire un'equazione di bilanciamento la cui soluzione permette di partizionare in modo ottimale l'area del chip tra unità di storage (memoria on-chip) e unità funzionali. L'equazione di bilanciamento può essere utilizzata sia per valutare se l'architettura di processori esistenti soddisfa i requisiti computazionali di applicazioni LQCD, sia come linea guida per la progettazione di processori application-driven di futura generazione.

    I risultati di tale ricerca hanno messo in evidenza che l'architettura del processore Cell, sviluppato inizialmente per il mercato dei video-game, se opportunamente programmato, soddisfa con alta efficienza le richieste computazionali di applicazioni LQCD, ed hanno dato origine alla proposta di progetto QPACE, di cui sono co-autore, per la realizzazione di un sistema di calcolo Petaflop scaling ottimizzato per applicazioni LQCD.

    QPACE è un progetto finanziato dal governo tedesco, tramite il programma SFB, e da IBM, ed è iniziato formalmente a Gennaio 2008. Hanno partecipano al progetto le Università di Regensburg, Wuppertal, Ferrara e Milano, l'istituto JSC di Juelich, e l'istituto DESY di Zeuthen. Scopo del progetto è quello di sviluppare un sistema di calcolo parallelo per applicazioni scientifiche di fisica teorica, ed in particolare per applicazioni di Lattice QCD, interconnettendo i processori IBM-PowerXCell8i mediante una griglia mesh-3D derivante dall'esperienza del progetto apeNEXT.

    Su una scheda di calcolo QPACE sono stati integrati un processore IBM-PowerXCell8i, 4 GB di memoria, ed una FPGA, un dispositivo elettronico programmabile a livello hardware, per supportare le funzionalità di IO del processore, sia verso la rete di interconnessione mesh-3D, sia verso l'esterno. Il processore PowerXCell8i è un processore multi-core con una potenza di calcolo di picco di 100 Gflop (peak double-precision), e con un alto rapporto Flops per Watt, rilevante per assemblare centinaia di chip in un volume di spazio di qualche metro cubo.

    Il processore di comunicazione, esterno al processore di calcolo, è stato implementato su una FPGA, e si interfaccia da un lato con il processore di calcolo e dall'altro lato è connesso a sei link di comunicazione, ciascuno con una banda di trasferimento di 1GB/s, per link e per direzione.

    Nell'ambito di questo progetto mi sono occupato di progettare ed implementare la logica del processore di rete, e il protocollo di comunicazione. Il processore di rete, chiamanto torus, è implementato su una FPGA, un dispositivo elettronico le cui funzionalità hardware sono programmabili mediante un linguaggio di programmazione di descrizione hardware come il VHDL. Il protocollo di trasferimento è stato implementato direttamente in hardware, e non prevede alcuna gestione del livello TLP (Transaction Layer Packet) da parte del sistema operativo. I dati sono trasmessi in pacchetti di 128 Bytes insieme ad un header ed un CRC per il controllo degli errori. In ricezione il CRC viene ricalcolato, confrontato con quello trasmesso insieme al pacchetto, ed viene inviato al trasmittente un feedback positivo o negativo corrispondente al risultato del confronto. In caso di feedback negativo il trasmittente provvede ad inviare nuovamente i pacchetti a partire da quello per cui ha ricevuto un feedback negativo. Il risultato ottenuto è un sistema di trasferimento affidabile con un bit error rate inferiore a 10-14, con una banda passante di 1 GB/s per link e per direzione, ed una latenza di trasmissione inferiore a .5 micro-secondi.

    Ad Agosto 2009 sono stati installati due prototipi di macchine QPACE da 1024 processori (8192 cores) ciascuna, con una potenza di calcolo di picco di 200 Tflops in double-precision, ed una potenza elettrica dissipata massima di 280 KWatt.

    A novembre 2009 e Giugno 2010 il sistema QPACE e' stato giudicato come il miglior sistema al mondo con il migliore rapporto Flops/Watt (classifica Green500, green-500 list Nov. 2009, green-500 list Jun 2010).

    Pubblicazioni rilevanti per questa attività sono:

    Valutazione di Performance di Processori Multi- e Many-Core (2009 - oggi)

    Più recentemente mi sono dedicato allo studio delle perfromance dei processori multi- e many-core con l'obiettivo di valutare l'efficienza di calcolo per applicazioni scientifiche e di definire una metodologia di programmazione efficiente.

    Nell'ambito di questa attività ho preso in considerazioni due applicazioni di fisica teorica: un modello di simulazione dei fluidi basato su metodo Lattice Boltzmann, e un modello di simulazione di Spin Glass.

    Inizialmente l'attività è stata principalmente svolta sul processore IBM Cell Broadband Engine. Ho implementato un algoritmo di simulazione di un modello di fluidodinamica basato sul metodo di Lattice Boltzmann 2D e 3D su processore multi-core IBM-Cell. Lo studio ha esplorato varie strategie di parallelizzazione, di allocazione della memoria e di scheduling delle istruzioni. Successivamente ho preso in considerazione anche i processori multi-core della classe Nehalem e Sandybridge, e i processori grafici NVIDIA Tesla C1060 e C2050.

    Nell'ambito di questa attività ho coordinato l'implementazione e ottimizzazione di un codice di fluido-dinamica basato su un modello Lattice Boltzmann D2Q37 recentemente sviluppato. Ho implementato il codice prima su un cluster di nodi basati su processori multi-core Intel Nehalem, e successivamente su un cluster di nodi basato su due schede GP-GPU della classe C2050. Entrambe le implementazioni utilizzano una grande frazione della potenza di calcolo del processore, hanno una efficienza di esecuzione tra il 40% e il 50%, e scalano su decince di nodi.

    Nel 2012 ho proposto all'INFN il progetto Computing on Knights Architecture (COKA) per lo studio delle performance di calcolo dei processori Many Integrated Core (MIC) sviluppati da Intel. Il progetto è stato finanziato e svolgo il ruolo di coordinatore nazionale. Il progetto studierà l'implementazione e l'ottimizzazione di applicazioni sia di fisica teorica che di fisica sperimentale.

    Pubblicazioni rilevanti per questa attività sono:

    Altre Attvità

    • negli a.a.~2005/2006 e 2006/2007 ho tenuto un ciclo di lezioni al Master in progettazione microelettronica dell'Università di Padova. Gli argomenti trattati hanno riguardato l'architettura dei processori ad alte prestazioni, in particolare, la descrizione dettagliata dei meccanismi hardware (dynamic instruction scheduling, Tomasulo e Scoreboard scheduling, reordering buffer, branch predictors, dynamic register renaming, .... ) implementati neiprocessori per ottenere alte prestazioni di calcolo;

    • a partire da Settembre 2004 ho collaborato alla realizzazione del processore Amchip3, un processore che implementa in hardware un algoritmo di pattern-matching. Scopo del progetto è di riconoscere nell'insieme delle tracce prodotte da un rivelatore di particelle quelle corrispondenti ad eventi significativi, contenute in un database. Tale processore è stato utilizzato per l'analisi dei dati dell'esperimento di fisica delle particelle elementari CDF dei laboratori Fermilab negli Stati Uniti. Il lavoro svolto è descritto in questa referenza: A VLSI processor for fast track finding based on content addressable memor ies.

    Altre informazioni

    • membro ufficiale del colleggio della scuola di Dottorato in "Matematica e Informatica" dell'Università di Ferrara;
    • Nov 2003: componente dell' Organizing Comittee della Conferenza Non Perturbative Problems and Computational Physics:The Next Five Years, 27-28 November 2003, Ferrara (Italy);
    • dal 2005 reviewer della rivista Parallel Computing Systems and Applications, Elsevir;
    • nel 2006-2007 membro della commissione HPC Europe Taskforce (HET) per la definizione di un framework Europeo nell'area del High Performance Computing;
    • nel 2008 membro del program committe della conferenza ACM International Conference on Computing Frontiers 2008, May 5-7, 2008, Ischia (Italy);
    • Gen09-Dic11: coordinatore locale del progetto Hadron Physics 2 work-package 22, 7mo programma quadro della Comunità Europea
    • scientific visitor presso l'istituto JSC di Juelich (Germania) nel periodo Giugno-Luglio 2009;
    • scientific visitor presso l'istituto presso l'istituto DESY di Zeuthen-Berlino (Germania) nel periodo Luglio-Agosto 2010;
    • Gen 2012: coordinatore locale del progetto Hadron Physics 3 work-package 10, 7mo programma quadro della Comunità Europea
    • Gen12-: coordinatore nazionale del progetto INFN COKA
    • Giu 2012: componente del program committe della conferenza 26th ACM International Conference on Supercomputing (ICS), June 25-29, 2012, San Servolo - Venezia (Italy);
    • Giu 2012: co-organizzatore e co-chair del workshop Future HPC systems: the Challenges of Power-Constrained Performance, June 25, 2012, San Servolo - Venezia (Italy).
    • Jul 2012: external reviewer della coferenze 24th International Symposium on Computer Architecture andHigh Performance Computing