Acquisire le tecniche di programmazione parallela e distribuita, e la conoscenza delle moderne architetture hardware e software per il calcolo scientifico ad alte prestazioni. Introdurre i metodi iterativi distribuiti per la simulazione di problemi numerici. Acquisire la conoscenza dei linguaggi di nuova concezione per la programmazione dinamica nel calcolo scientifico, quali il linguaggio Julia
scheda docente materiale didattico
Fruizione: 20410148 IN480 - CALCOLO PARALLELO E DISTRIBUITO in Scienze Computazionali LM-40 PAOLUZZI ALBERTO, D'AUTILIA ROBERTO
Programma
Breve introduzione al linguaggio Julia per calcolo scientifico. Introduzione alle architetture parallele. Principi di progetto di algoritmi paralleli. Tecniche di programmazione parallela e distribuita con Julia. Primitive di comunicazione e sincronizzazione: paradigma MPI. Linguaggi basati su direttive: OpenMP. Metriche di prestazione dei programmi paralleli. Operazioni matriciali e sistemi lineari densi: Cenni a BLAS, LAPACK, scaLAPACK. Sistemi lineari sparsi. Cenni a CombBLAS, GraphBLAS. Sviluppo di un progetto collaborativo: Simulazione di terremoti, LAR parallelo.Testi Adottati
Blaise N. Barney, HPC Training Materials, per gentile concessione del Lawrence Livermore National Laboratory's Computational Training CenterFruizione: 20410148 IN480 - CALCOLO PARALLELO E DISTRIBUITO in Scienze Computazionali LM-40 PAOLUZZI ALBERTO, D'AUTILIA ROBERTO