20410426 - IN480 - CALCOLO PARALLELO E DISTRIBUITO

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.

CAMISASCA GAIA

scheda docente | materiale didattico

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
• Controllo delle versioni di un codice (versioning): Git repository per gestire un progetto
• 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č, Springer


Modalità Erogazione

Il corso consta di lezioni frontali e sessioni di programmazione.

CAMISASCA GAIA

scheda docente | materiale didattico

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
• Controllo delle versioni di un codice (versioning): Git repository per gestire un progetto
• 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č, Springer


Modalità Erogazione

Il corso consta di lezioni frontali e sessioni di programmazione.

CAMISASCA GAIA

scheda docente | materiale didattico

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
• Controllo delle versioni di un codice (versioning): Git repository per gestire un progetto
• 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č, Springer


Modalità Erogazione

Il corso consta di lezioni frontali e sessioni di programmazione.