High Performance Computing

Denominazione dell’insegnamento: High Performance Computing
Corso di Laurea o di Laurea Magistrale : Ingegneria Informatica
SSD:       ING-INF/05 – ING-IND/31            Numero C.F.U.:   9 

 

Obiettivi del corso

 

La principale finalità del Corso Integrato di High Performance Computing è quella di presentare le principali sistemi di calcolo ad alte prestazioni, incluse le architetture, i sistemi operativi e i linguaggi di programmazione. Di ciascun sistema si approfondiscono le principali caratteristiche di efficienza e di efficacia per le diverse applicazioni industriali, di calcolo professionale e scientifico e, infine, per le applicazioni nel modo dei servizi. Con riferimento alle principali configurazioni l’allievo effettua personali sperimentazioni in una serie di applicazioni di calcolo numerico nel settore dell’elettromagnetismo in bassa frequenza; in particolare per le principali formulazioni di campo gli allievi sperimentano le possibili formulazioni deboli, gli approcci per il progetto ottimo e la identificazione e imparano a trattare i sistemi che ne conseguono su piattaforme ad alte prestazioni.

Gli obiettivi sono conseguiti attraverso lezioni teoriche, esercitazioni e una serie di testimonianze provenienti dal mondo industriale sia della produzione di sistemi di elaborazione ad elevate prestazioni che della loro applicazione a problemi di rilevante interesse operativo.

Il Corso Integrato si suddivide nei due moduli:

  • Architetture, Linguaggi e Tecniche di HPC
  • Problemi Computazionalmente Onerosi di Elettromagnetismo Q.S. e Circuiti

Programma del corso

 Modulo di Architetture, Linguaggi e Tecniche di HPC

Architetture parallele: Tassonomia di Flynn, modelli SISD, SIMD, MISD, MIMD. Architetture superscalari e vettoriali. Accesso alla memoria: UMA, NUMA. Throughput, speed-up, legge di Amhdal.

Programmazione parallela: OpenMP, estensione rispetto al linguaggio C, primitive di parallelizzazione. Pragma per parallelizzazione di loop, distribuzione dei task, scheduling, regioni critiche, barrier, sincronizzazione. Scope delle variabili. Reduce. Costrutti task parallel. Esercitazioni sul modello OpenMP. Scrittura di applicazioni, compilazione ed esecuzione di codice parallelo (calcoli matriciali, produttore-consumatore). Misure di speedup.

Graphic Processing Units: Parallel computing, dal single core ai sistemi many-core, architettura GPU, architettura dei sistemi nVIDIA.

Heterogenous computing: Programmazione eterogenea su sistemi many-core, multi-core e GPU. Compilatori parallelizzanti ed auto-tuning. Profilazione e feedback tra run-time e compilation-time.

CUDA: Modello di programmazione, primitive, funzioni di libreria, allocazione e manipolazione della memoria. Architettura di elaborazione interna: grid, block, threads. Funzioni Kernel. Indirizzamento dei dati (blockidx e threadidx). Modello di esecuzione hardware, architettura e livelli delle memorie. Schedulazione di thread. Esercitazioni con l’ambiente CUDA: scrittura di host program e kernel program, compilazione ed esecuzione di codice parallelo (prodotti matriciali, inversioni di matrici, etc..) Misure di speedup.

Trasformazione di codice: Tecniche di trasformazione del codice basate sull’analisi strutturale, Trasformazioni di loop, Trasformazioni legate all’ analisi data-flow, Riduzione della forza di un loop, Sostituzione delle variabili d’induzione, Spostamento di codice loop-invariant. Riordinamento di loops. Ristrutturazione di loops. Trasformazioni sull’ accesso alla memoria. Trasformazioni per le architetture parallele: Modelli di esecuzione parallela, Distribuzione dei dati, Decomposizione del lavoro, Selezione ed ottimizzazione delle comunicazioni.

Modulo di Problemi Complessi in Elettromagnetismo Q.S. e Circuiti

Generalità e Richiami. La analisi numerica nello studio dei campi elettromagnetici (CEM) e dei circuiti. Problemi diretti e inversi; tecniche dirette e tecniche iterative; criteri di arresto. Approssimazioni, accuratezza, complessità di calcolo.

Richiami di CEM: eq Maxwell in forma differenziale e integrale; polarizzazione e rifrazione. Problema di Poisson, nello spazio libero o limitato. Condizioni al contorno. Soluzioni fondamentali e funzioni di Green. Richiami di teoria circuitale: modelli del circuito e dei componenti; classificazione e caratteristiche, lineari e non.

Formulazioni di CEM e Circuiti; metodi per architetture hpc. Le esigenze di analisi e di progettazione nei CEM in bf e nei sistemi circuitali (accuratezza, risoluzione, accoppiamenti, complessità). Formulazioni: confronti; soluzioni forti e deboli; approcci numerici. Metodo Differenze Finite; numero delle incognite e struttura della matrice. Metodo degli Elementi Finiti; approccio di Galerkin; struttura del modello (esempio della elettrostatica); trattamento condizioni al contorno; calcolo delle matrici e dei termini noti. Modelli circuitali nodali e di Tableau. Cenni su modelli e solutori dinamici. Formulazioni numeriche; scelta delle variabili. Complessità di calcolo. Utilizzo di architetture hpc: formulazioni e algoritmi; trattamento della memoria. Esemplificazioni operative su piattaforme GPU.

Sistemi di equazioni lineari e non; metodi per architetture hpc.Soluzioni numeriche di sistemi di equazioni algebriche; problemi di velocità e di memoria. Condizionamento ed effetto delle perturbazioni; sistemi di grande dimensione. Metodi di soluzione per sistemi lineari. Eliminazione di Gauss; pivot parziale e totale. Fattorizzazioni LU; tecniche sequenziali e tecniche compatte. Metodi Iterativi; criteri di convergenza; velocità di convergenza. Il metodi di Jacobi, di Gauss Seidel e del rilassamento. Metodi del Gradiente e del Gradiente Coniugato. Metodi di soluzione per sistemi non lineari: iterazione di punto fisso e di Newton. Complessità. Formulazioni numeriche. Utilizzo di architetture hpc: formulazioni e algoritmi; trattamento della memoria. Esemplificazioni operative su piattaforme GPU.

Tecniche di analisi robusta e applicazioni industriali su architetture hpc La progettazione ottima e robusta. Valutazione di impatto delle tolleranze: approcci statistici e worst case. Esemplificazioni: la progettazione elettromagnetica robusta dei sistemi di campo magnetico nelle macchine da fusione termonucleare e nei problemi di elettromeccanica. Utilizzo di architetture HPC per il calcolo delle tolleranze. Esempi di applicazione di architetture hpc per applicazioni industriali: testimonianze dal mondo della produzione.

Curricula scientifici dei docenti

Beniamino Di Martino è Professore Ordinario presso la Seconda Università di Napoli, per il settore Scientifico Disciplinare INGINF/05 - Sistemi per l' Elaborazione dell' Informazione. Dal 1995 al 1998 e' stato Ricercatore presso l' Institute for Software Technology and Parallel Systems dell' Universita' di Vienna (Austria). Dal 1998 al 1992 è stato Ricercatore Universitario, e dal 2002 al 2005 Professore Associato, presso la Seconda Universita' di Napoli. Ha pubblicato 10 testi scientifici a diffusione internazionale ed oltre 200 pubblicazioni scientifiche a diffusione internazionale, di cui più di 50 articoli su riviste internazionali.Ha partecipato ed è stato responsabile scientifico a numerosi progetti di ricerca internazionali (EC

Esprit, EC CEI-Pact, EC TMR, Austrian FWF), nazionali (PRIN, FAR) e regionali. E’ Project Coordinator del Progetto Europeo (FP7-ICT) mOSAIC (su Cloud Computing), e Responsabile di Unità per i Progetti Europei FP7-SMARTCITIES CoSSMIC (su Smart Grids) e JU-ARTEMIS Crystal (su sistemi software affidabili). E' Editor o Associate Editor di 7 riviste scientifiche internazionali (tra cui IEEE Transactions on Cloud Computing) , membro in numerosi editorial board di riviste internazionali e guest editor per numerose riviste internazionali. E’ stato general e program chair di numerosi congressi internazionali, steering committee member di congressi internazionali, membro di numerosi comitati di programma di congressi internazionali. E’ stato membro dell’ Executive Board of the IEEE CS Technical Committee on Supercomputing Applications (IEEE-TCSA), e Vice Chair dell’ Executive Board of the IEEE CS Technical Committee on Scalable Computing (IEEE-TCSC). E’ membro dell’ IEEE Working group su Cloud Interoperability, del Cloud Standards Customer Council, del Cloud Computing Experts’ Group della Commissione Europea – Internet of Services, Software and Virtualization Unit, del Comitato di Indirizzo della Federazione IDEM (IDEntity Management). E’ stato Chair del Nomination Committee for the ``2012 IEEE TCSC Award of Excellence in Scalable Computing'' e membro del Nomination Committee for the ``2009 IEEE TCSC Medal for Excellence in Scalable Computing".

E’ revisore di progetti per la Commissione Europea, per i programmi ICT, ICT-PSP ed eInfrastructures, e per l’ European Research Council (ERC). E’ revisore di progetti scientifici per i Ministeri della Ricerca del Belgio, del Lussemburgo e del Cile. E’ revisore di progetti industriali in ambito ICT per i Ministeri dell’ Università e della Ricerca, e dello Sviluppo Economico, per la Regione Piemonte, per la Regione Campania, per la Regione Calabria, per la Regione Lazio, per la Regione Puglia e per numerosi enti pubblici locali. E’ stato membro del “Comitato Tecnico per la predisposizione ed implementazione del Piano Strategico della Società dell’ Informazione della Regione Campania”. E’ vice-Direttore del Dipartimento di Ingegneria Industriale e dell’ Informazione della Seconda Università di Napoli. E’ Delegato del Rettore per l’ Informatica e per il GARR. E’ membro del Comitato di Indirizzo dell’ Iniziativa Nazionale IDEM – Identity Management, e Responsabile IDEM per l’ Ateneo. Ha svolto attività di ricerca sui seguenti temi: Modelli, paradigmi, linguaggi ed ambienti di programmazione ed esecuzione avanzati per sistemi informatici Distribuiti, Grid e Cloud, Tecniche e strumenti di Reverse Engineering e Program Comprehension, Semantic Web e Semantic Web Services, Natural Language Processing e Business Analytics, Ingegneria della Conoscenza, Intelligenza Artificiale e Business Intelligence.

Raffaele Martone, professore ordinario di Elettrotecnica presso la Seconda Università di Napoli, Italia.

Nato a Napoli nel 1950, laureato con lode in Ingegneria Elettronica presso l’Università di Padova nel 1973; dal 1986 è professore ordinario del Settore Scientifico Disciplinare ING/IND-31, Elettrotecnica. e insegna Teoria dei Circuit, Metodi di Ottimizzazione e High Performance Computing per gli allievi del settore della informazione della Facoltà di Ingegneria.

Dalla sua fondazione (1997) è Direttore Nazionale della Scuola “Ferdinando Gasparini” per Allievi Dottorandi del settore della Elettrotecnica.

E’ stato Prorettore AAI dal 2006 al 2014, membro del Senato Accademico della Seconda Università di Napoli (1996-2004), Coordinatore del Corso di Dottorato di ricerca in “Conversione dell’Energia Elettrica” presso la Seconda Università di Napoli (1996-2008), Direttore Dipartimento di Ingegneria Elettronica della Università di Salerno, Direttore Dipartimento di Ingegneria Elettronica della Università della Calabria, Cosenza.

Svolge ininterrottamente attività scientifica a partire dalla laurea nel 1973. I suoi principali interessi sono lo studio numerico di campi elettromagnetici e nel comportamento di plasmi in campi magnetici. Particolare attenzione è dedicata al progetto di reattori per la Fusione Termonucleare Controllata, ai problemi inversi e di ottimizzazione in elettromagnetismo, con approcci neurali, genetici o combinati, agli approcci lagrangiani allo studio di problemi elettromagnetici accoppiati, alla diagnostica elettromagnetica non invasiva

La sua attività di ricerca è caratterizzata da numerose permanenze presso Laboratori di Ricerca italiani ed esteri (Max Planck Institut fur Plasmaphysik di Garching, Germania; Culham Laboratory dell’UKAEA, G.B.; Centro EFDA/F4E della Unione Europea in Barcellona, Spagna; Istituto Gas Ionizzati del CNR di Padova; Centro Comune di Ricerca Euratom di Ispra).

E stato Chairman del convegno internazionale OIPE 2005, Sorrento Napoli e membro del comitato organizzatore di vari convegni internazionali (TEAM Workshop, 1988; COMPUMAG Conference, 1991; TEAM Workshop, 1991; EMF Workshop, 1994; E’NDE 1997; ISIS 1997; OIPE 2005; ISEM 2011) e Chairman del convegno nazionale ET 2014, Sorrento.

Ha svolto il ruolo di Chairman dello International Steering Committee OIPE dal 2004 al 2010 e membro di gruppi internazionali di progetto (FINTOR, JET, NET e ITER).

Ha ricoperto l’ufficio di Chairman dell’Editorial Board del COMPUMAG nel 1990-91. E’ membro dell’Editorial Board di numerose riviste internazionali (IEEE Tr. on MAG, IET Science, Measurement & Technology, COMPEL, Fusion Engineering and Design) e conferenze del settore dell’elettromagnetismo numerico (Compumag, ICANN, CEFC, OIPE, ISEF, CEM). Ricopre anche il ruolo di revisore di progetti scientifici internazionali.

E' autore di oltre 250 pubblicazioni scientifiche nelle principali riviste e covegni in sede internazionale.

Competenze attese in ingresso e/o Propedeuticità

Risultati d’apprendimento attesi

Conoscenza delle principali Architetture e modelli Architetturali Paralleli. Conoscenza dei Linguaggi di Programmazione Parallela OpenMP, MPI e CUDA. Conoscenza dei principi di funzionamento dei moderni Compilatori Parallelizzanti. 

Anno del corso di studio in cui è inserito

2° Anno Laurea Magistrale

Testi di riferimento

Materiale didattico aggiuntivo

dispense – lucidi delle lezioni

Modalità di erogazione

Tradizionale.

Sede

Via Roma 29 Aversa.

Organizzazione della didattica

 

Modalità di frequenza

Metodi di valutazione

Esame orale e/o progettino.

Dati statistici delle votazioni conseguite dagli studenti

Sono resi disponibili a cura del docente

Calendario delle attività didattiche

http://www.cdcinformazione.unina2.it/calendari

Eventuali attività di supporto alla didattica

 Esercitazioni

Orari di ricevimento studenti

Sono resi disponibili a cura del docente

Calendario delle prove di esame

https://esse3.ceda.unina2.it/Home.do