Acquisire le tecniche di programmazione parallela e distribuita, e la conoscenza delle moderne architetture hardware e software per il calcolo scientifico ad alte prestazioni. Paradigmi di parallelizzazione, parallelizzazione su CPU che su GPU, sistemi a memoria distribuita. Applicazioni Data intensive, Memory Intensive and Compute Intensive. Analisi delle prestazioni nei sistemi HPC.
Curriculum
scheda docente materiale didattico
Linguaggi di programmazione: Il linguaggio principale del corso è C.
• Introduzione al linguaggio C
• Introduzione al calcolo ad elevate prestazioni (HPC)
• Concetti base: architetture hardware e gerarchie di memorie
• Schemi di parallelizzazione: strategie differenti per problemi differenti
• Misure dell’efficienza e della performance: teoria e benchmark di codice parallelo
• Calcolo parallelo con MPI: Message Passing Interface
• Calcolo parallelo con OpenMP: Open Multiprocessing
• Input/Output parallelo
• Introduzione al calcolo su unità di elaborazione grafica (GPGPU computing) ed al linguaggio OpenCL
Le esercitazioni sono parte integrante del corso.
Programma
Il corso consta di lezioni frontali e di esercitazioni pratiche al computer.Linguaggi di programmazione: Il linguaggio principale del corso è C.
• Introduzione al linguaggio C
• Introduzione al calcolo ad elevate prestazioni (HPC)
• Concetti base: architetture hardware e gerarchie di memorie
• Schemi di parallelizzazione: strategie differenti per problemi differenti
• Misure dell’efficienza e della performance: teoria e benchmark di codice parallelo
• Calcolo parallelo con MPI: Message Passing Interface
• Calcolo parallelo con OpenMP: Open Multiprocessing
• Input/Output parallelo
• Introduzione al calcolo su unità di elaborazione grafica (GPGPU computing) ed al linguaggio OpenCL
Le esercitazioni sono parte integrante del corso.
Testi Adottati
Introduction to Parallel Computing: From Algorithms to Programming on State-of-the-Art Platforms. Trobec, Slivnik, Bulić, Robič, SpringerModalità Erogazione
Il corso consta di lezioni frontali e sessioni di programmazione. scheda docente materiale didattico
Linguaggi di programmazione: Il linguaggio principale del corso è C.
• Introduzione al linguaggio C
• Introduzione al calcolo ad elevate prestazioni (HPC)
• Concetti base: architetture hardware e gerarchie di memorie
• Schemi di parallelizzazione: strategie differenti per problemi differenti
• Misure dell’efficienza e della performance: teoria e benchmark di codice parallelo
• Calcolo parallelo con MPI: Message Passing Interface
• Calcolo parallelo con OpenMP: Open Multiprocessing
• Input/Output parallelo
• Introduzione al calcolo su unità di elaborazione grafica (GPGPU computing) ed al linguaggio OpenCL
Le esercitazioni sono parte integrante del corso.
Programma
Il corso consta di lezioni frontali e di esercitazioni pratiche al computer.Linguaggi di programmazione: Il linguaggio principale del corso è C.
• Introduzione al linguaggio C
• Introduzione al calcolo ad elevate prestazioni (HPC)
• Concetti base: architetture hardware e gerarchie di memorie
• Schemi di parallelizzazione: strategie differenti per problemi differenti
• Misure dell’efficienza e della performance: teoria e benchmark di codice parallelo
• Calcolo parallelo con MPI: Message Passing Interface
• Calcolo parallelo con OpenMP: Open Multiprocessing
• Input/Output parallelo
• Introduzione al calcolo su unità di elaborazione grafica (GPGPU computing) ed al linguaggio OpenCL
Le esercitazioni sono parte integrante del corso.
Testi Adottati
Introduction to Parallel Computing: From Algorithms to Programming on State-of-the-Art Platforms. Trobec, Slivnik, Bulić, Robič, SpringerModalità Erogazione
Il corso consta di lezioni frontali e sessioni di programmazione. scheda docente materiale didattico
Linguaggi di programmazione: Il linguaggio principale del corso è C.
• Introduzione al linguaggio C
• Introduzione al calcolo ad elevate prestazioni (HPC)
• Concetti base: architetture hardware e gerarchie di memorie
• Schemi di parallelizzazione: strategie differenti per problemi differenti
• Misure dell’efficienza e della performance: teoria e benchmark di codice parallelo
• Calcolo parallelo con MPI: Message Passing Interface
• Calcolo parallelo con OpenMP: Open Multiprocessing
• Input/Output parallelo
• Introduzione al calcolo su unità di elaborazione grafica (GPGPU computing) ed al linguaggio OpenCL
Le esercitazioni sono parte integrante del corso.
Programma
Il corso consta di lezioni frontali e di esercitazioni pratiche al computer.Linguaggi di programmazione: Il linguaggio principale del corso è C.
• Introduzione al linguaggio C
• Introduzione al calcolo ad elevate prestazioni (HPC)
• Concetti base: architetture hardware e gerarchie di memorie
• Schemi di parallelizzazione: strategie differenti per problemi differenti
• Misure dell’efficienza e della performance: teoria e benchmark di codice parallelo
• Calcolo parallelo con MPI: Message Passing Interface
• Calcolo parallelo con OpenMP: Open Multiprocessing
• Input/Output parallelo
• Introduzione al calcolo su unità di elaborazione grafica (GPGPU computing) ed al linguaggio OpenCL
Le esercitazioni sono parte integrante del corso.
Testi Adottati
Introduction to Parallel Computing: From Algorithms to Programming on State-of-the-Art Platforms. Trobec, Slivnik, Bulić, Robič, SpringerModalità Erogazione
Il corso consta di lezioni frontali e sessioni di programmazione.