METODI NUMERICI PER L'INFORMATICA

Angelamaria CARDONE METODI NUMERICI PER L'INFORMATICA

0522500099
DIPARTIMENTO DI INFORMATICA
CORSO DI LAUREA MAGISTRALE
INFORMATICA
2024/2025



ANNO ORDINAMENTO 2016
PRIMO SEMESTRE
CFUOREATTIVITÀ
432LEZIONE
216LABORATORIO
Obiettivi
OBIETTIVO GENERALELL CORSO È FINALIZZATO A CONSENTIRE AGLI STUDENTI DI ACQUISIRE LA CONOSCENZA TEORICA DI BASE E LE ABILITÀ SUI PRINCIPALI METODI NUMERICI UTILI ALLO SVILUPPO DI SOFTWARE MATEMATICO PER LA RISOLUZIONE DI PROBLEMI DI CALCOLO SCIENTIFICO DI INTERESSE NELL’INFORMATICA.
CONOSCENZA E CAPACITÀ DI COMPRENSIONE
GLI STUDENTI ACQUISIRANNO LE CONOSCENZE DI BASE SU
•METODI NUMERICI SEQUENZIALI E PARALLELI PER PROBLEMI CHE COINVOLGONO GRANDI MOLI DI DATI E CHE RICHIEDONO L’USO DI MATRICI SPARSE E DI GRANDI DIMENSIONI; CALCOLO NUMERICO PER ARCHITETTURE PARALLELE A MEMORIA DISTRIBUITA E SU GRAPHICS PROCESSING UNITS (GPU);
•SISTEMI DI RACCOMANDAZIONE: TECNICHE BASATE SU COLLABORATIVE-FILTERING E SU FATTORIZZAZIONI DI MATRICI;
•ELEMENTI DI PYTHON PER LO SVILUPPO DI SOFTWARE MATEMATICO;
•TESTING E VALUTAZIONE DI SOFTWARE MATEMATICO.
CAPACITÀ DI APPLICARE CONOSCENZA E COMPRENSIONEGLI STUDENTI SARANNO IN GRADO DI
-RISOLVERE PROBLEMI DI CALCOLO SCIENTIFICO PRESENTI NELLE APPLICAZIONI INFORMATICHE, MEDIANTE LO SVILUPPO E L’UTILIZZO DI SOFTWARE MATEMATICO NEI PIÙ DIFFUSI AMBIENTI DI CALCOLO E LINGUAGGI DI PROGRAMMAZIONE;
-EFFETTUARE IL TESTING E LA VALUTAZIONE DI SOFTWARE MATEMATICO IN TERMINI DI ACCURATEZZA E DI EFFICIENZA, ANCHE MEDIANTE IL CONFRONTO DELLE PRESTAZIONI TRA CODICI DIVERSI;
-SVILUPPARE E UTILIZZARE SOFTWARE SCRITTO IN MPI-C, CUDA-C E PYTHON PER LA RISOLUZIONE DI PROBLEMI DI CALCOLO NUMERICO.
AUTONOMIA DI GIUDIZIO
LO STUDENTE SARÀ IN GRADO DI:
-VALUTARE I LIMITI DI APPLICABILITÀ DEL METODO NUMERICO;
-DISCERNERE L’ACCURATEZZA, L’AFFIDABILITÀ E L’EFFICIENZA DEL METODO NUMERICO, ANCHE MEDIANTE L’ANALISI DI RISULTATI NUMERICI OTTENUTI SU ESEMPI TEST SIGNIFICATIVI;
-SELEZIONARE IL METODO E/O SOFTWARE NUMERICO PIÙ IDONEO A RISOLVERE IL PROBLEMA IN ESAME;
-CONCEPIRE POSSIBILI ESTENSIONI DEL METODO CONSIDERATO A CONTESTI DIVERSI.
ABILITÀ COMUNICATIVE LO STUDENTE SARÀ IN GRADO DI:
-SOSTENERE CONVERSAZIONI SU TEMATICHE LEGATE ALLA RISOLUZIONE NUMERICA DI PROBLEMI DI INTERESSE PER L’INFORMATICA, FACENDO RICORSO AD UNA TERMINOLOGIA SCIENTIFICA ADEGUATA, E AGLI STRUMENTI DELLA RAPPRESENTAZIONE MATEMATICA E GRAFICA.
-RAPPRESENTARE MEDIANTE TABELLE E GRAFICI I RISULTATI OTTENUTI, CORREDATI DA TESTO DESCRITTIVO;
-ARGOMENTARE LE SCELTE EFFETTUATE NELLA RISOLUZIONE DEL PROBLEMA DI CALCOLO
-SVILUPPARE LA CAPACITÀ DI INTERAZIONE NEL LAVORO DI GRUPPO.
CAPACITÀ DI APPRENDIMENTO
LO STUDENTE SARÀ IN GRADO DI:
-APPLICARE LE CONOSCENZE ACQUISITE A CONTESTI DIFFERENTI DA QUELLI PRESENTATI DURANTE IL CORSO;
-APPRENDERE NUOVI METODI PER LO SVILUPPO DI SOFTWARE MATEMATICO, APPREZZANDONE LIMITI E VANTAGGI;
-PROCEDERE ALL’AGGIORNAMENTO CONTINUO DELLE PROPRIE CONOSCENZE, UTILIZZANDO LA LETTERATURA TECNICA E SCIENTIFICA, MEDIANTE GLI STRUMENTI BIBLIOGRAFICI TRADIZIONALI E LE RISORSE DIGITALI.
Prerequisiti
ELEMENTI DI MATEMATICA DISCRETA E ALGEBRA LINEARE: SPAZIO DELLE MATRICI SU CAMPO REALE.
Contenuti
•INTRODUZIONE AL CALCOLO PARALLELO. TASSONOMIA DI FLYNN. VALUTAZIONE DI UN ALGORITMO PARALLELO. CALCOLO PARALLELO SU ARCHITETTURE A MEMORIA DISTRIBUITA DI TIPO MIMD. PARADIGMA MPI. TOPOLOGIE DI PROCESSORI E LORO REALIZZAZIONE IN MPI. STRATEGIE DI PARALLELIZZAZIONE PER IL CALCOLO NUMERICO MATRICIALE. (24 ORE DI LEZIONE)
•GP-GPU (GENERAL PURPOSE GPU): CALCOLO PARALLELO SU GRAPHIC PROCESSING UNITS (GPUS) PER PROBLEMI DI CALCOLO SCIENTIFICO. STRUTTURA FISICA DI UNA GPU E GERARCHIA DELLE MEMORIE. STRUTTURA DI UN PROGRAMMA PARALLELO PER GPU: CONFIGURAZIONE DI UN KERNEL, WARP, DIVERGENZA. STRATEGIE DI PARALLELIZZAZIONE PER IL CALCOLO NUMERICO MATRICIALE. L’AMBIENTE CUDA: PROGRAMMAZIONE, PROFILING E VALUTAZIONE. (14 ORE DI LEZIONE)
•SISTEMI DI RACCOMANDAZIONE (SR): OBIETTIVI. SR CONTENT-BASED. SR COLLABORATIVE-FILTERING: MEMORY-BASED E MODEL BASED. MISURE DI SIMILARITÀ E SR BASATI SU ALGORITMI KNN. SR MODEL-BASED BASATI SULLA FATTORIZZAZIONE DI MATRICI. (6 ORE DI LEZIONE)
•ELEMENTI DI PYTHON PER LO SVILUPPO DI SOFTWARE MATEMATICO. ESEMPIO DI SR IN AMBIENTE PYTHON. (4 ORE DI LEZIONE)
Metodi Didattici
6CFU, 48 ORE, PER
-LEZIONI FRONTALI (32 ORE)
-LABORATORIO (16 ORE)

NELLE LEZIONI SARANNO ILLUSTRATI I FONDAMENTI TEORICI DEI METODI NUMERICI UTILI ALLO SVILUPPO DI SOFTWARE MATEMATICO DI INTERESSE PER L’INFORMATICA. INOLTRE, SARANNO ILLUSTRATE ALCUNE METODOLOGIE PER LO SVILUPPO DI SOFTWARE MATEMATICO, PER LA STIMA DELL'ATTENDIBILITÀ DEI RISULTATI OTTENUTI, PER LA VALUTAZIONE DELLE PRESTAZIONI DEL SOFTWARE SVILUPPATO O UTILIZZATO, PER IL CONFRONTO TRA LE PRESTAZIONI DI CODICI BASATI SU METODI NUMERICI DIFFERENTI.
Verifica dell'apprendimento
-PROVA PRATICA: ESECUZIONE DEL SOFTWARE MATEMATICO SVILUPPATO O UTILIZZATO NELLE LEZIONI DI LABORATORIO. TALE PROVA MIRA A VERIFICARE LA CAPACITÀ DELLO STUDENTE DI RISOLVERE SEMPLICI PROBLEMI DI CALCOLO SCIENTIFICO, DI VALUTARE ACCURATEZZA ED EFFICIENZA DEL SOFTWARE MATEMATICO, DI CONFRONTARE LE PRESTAZIONI DI CODICI DIVERSI, DI UTILIZZARE PYTHON PER PROBLEMI DI CALCOLO NUMERICO. IN PARTICOLARE, LA VALUTAZIONE DEL SOFTWARE DI CALCOLO PARALLELO SI AVVALE ANCHE DELLE TABELLE E/O DEI GRAFICI PRECEDENTEMENTE ELABORATI DALLO STUDENTE. LA PROVA PRATICA HA LA DURATA APPROSSIMATIVA DI 20-30 MINUTI,
-COLLOQUIO ORALE SUI CONTENUTI TEORICI PER VERIFICARE LA CONOSCENZA DELLE NOZIONI DI BASE DEI METODI NUMERICI TRATTATI PER PROBLEMI A GRANDI DIMENSIONI, DEI PRINCIPI PER LO SVILUPPO DI ALGORITMI NUMERICI AD ALTE PRESTAZIONI SU ARCHITETTURE PARALLELE MIMD A MEMORIA DISTRIBUITA E SU GPU, DEI PRINCIPALI SISTEMI DI RACCOMANDAZIONE, DEGLI ELEMENTI DI PYTHON PER IL CALCOLO NUMERICO. IL COLLOQUIO ORALE SI SVOLGE SUBITO DOPO LA PROVA PRATICA ED HA UNA DURATA DI CIRCA 30 MINUTI.
-LA PROVA PRATICA ED IL COLLOQUIO ORALE CONCORRONO IN MANIERA EQUIPOLLENTE AL VOTO FINALE.
-PER GLI STUDENTI CHE FREQUENTANO IL CORSO SONO PREVISTE DUE PROVE IN ITINERE DI ESONERO, SECONDO LE STESSE MODALITÀ DELL’ESAME.
Testi
1.ALMERICO MURLI, LEZIONI DI CALCOLO PARALLELO, LIGUORI EDITORE SRL, 2006.
2.JASON SANDERS, EDWARD KANDROT, CUDA BY EXAMPLE: AN INTRODUCTION TO GENERAL-PURPOSE GPU PROGRAMMING, ADDISON-WESLEY PROFESSIONAL, 2010.
3. DIAPOSITIVE DEL CORSO HTTP://ELEARNING.INFORMATICA.UNISA.IT/EL-PLATFORM/
4.DAVID C. ANASTASIU, ET AL., BIG DATA AND RECOMMENDER SYSTEMS, 2016, HTTPS://PDFS.SEMANTICSCHOLAR.ORG/A4C2/809BCBC9C8B502D581B5474D0A887255AAF0.PDF
5.CHRISTOPHER R. ABERGER, RECOMMENDER: AN ANALYSIS OF COLLABORATIVE FILTERING TECHNIQUES, 2016, HTTP://CS229.STANFORD.EDU/PROJ2014/CHRISTOPHER%20ABERGER,%20RECOMMENDER.PDF

TESTI DI APPROFONDIMENTO (MANUALI) PER LO SVILUPPO DI SOFTWARE
1.MPI: A MESSAGE-PASSING INTERFACE STANDARD VERSION 3.1, 2015, HTTPS://WWW.MPI-FORUM.ORG/DOCS/MPI-3.1/MPI31-REPORT.PDF
2.CUDA PROGRAMMING GUIDE HTTPS://DOCS.NVIDIA.COM/PDF/CUDA_C_PROGRAMMING_GUIDE.PDF
3.GUIDO VAN ROSSUM, IL TUTORIAL DI PYTHON, HTTPS://DOCS.PYTHON.ORG/3/TUTORIAL/INDEX.HTML
Altre Informazioni
•ANCARDONE@UNISA.IT
Orari Lezioni

  BETA VERSION Fonte dati ESSE3 [Ultima Sincronizzazione: 2024-11-18]