METODI NUMERICI PER L'INFORMATICA

Informatica METODI NUMERICI PER L'INFORMATICA

0522500099
DIPARTIMENTO DI INFORMATICA
CORSO DI LAUREA MAGISTRALE
INFORMATICA
2022/2023



ANNO ORDINAMENTO 2016
PRIMO SEMESTRE
CFUOREATTIVITÀ
648LEZIONE
Obiettivi
IL 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 (GPUS).
•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 COMPRENSIONE

GLI 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. INOLTRE, GLI STUDENTI SARANNO CAPACI DI 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. INFINE, GLI STUDENTI SAPRANNO APPLICARE PYTHON PER LA RISOLUZIONE DI PROBLEMI DI CALCOLO NUMERICO.
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.DAVID C. ANASTASIU, ET AL., BIG DATA AND RECOMMENDER SYSTEMS, 2016, HTTPS://PDFS.SEMANTICSCHOLAR.ORG/A4C2/809BCBC9C8B502D581B5474D0A887255AAF0.PDF
4.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
•HTTP://ELEARNING.INFORMATICA.UNISA.IT/EL-PLATFORM/
  BETA VERSION Fonte dati ESSE3 [Ultima Sincronizzazione: 2022-08-05]