Vai al contenuto principale
Se prosegui nella navigazione del sito, ne accetti le politiche:
  • Condizioni di utilizzo e trattamento dei dati
Prosegui
x
Se prosegui nella navigazione del sito, ne accetti le politiche:
  • Condizioni di utilizzo e trattamento dei dati
Prosegui
x
e-Learning - UNIMIB
  • Home
  • Altro
Ascolta questa pagina con ReadSpeaker
Italiano ‎(it)‎
English ‎(en)‎ Italiano ‎(it)‎
 Login
e-Learning - UNIMIB
Home
Percorso della pagina
  1. Area di Scienze
  2. Corso di Laurea Magistrale
  3. Informatica [F1802Q - F1801Q]
  4. Insegnamenti
  5. A.A. 2022-2023
  6. 2° anno
  1. Sistemi di Calcolo Parallelo
  2. Introduzione
Insegnamento Titolo del corso
Sistemi di Calcolo Parallelo
Codice identificativo del corso
2223-2-F1801Q117
Descrizione del corso SYLLABUS

Syllabus del corso

  • Italiano ‎(it)‎
  • English ‎(en)‎
Esporta

Obiettivi

Lo studente apprende i paradigmi computazionali delle applicazioni parallele. Per completare l’analisi di tali applicazioni, vengono introdotte ed utilizzate le metriche di prestazione nelle attività di esercitazione su macchine parallele - OpenMP, MPI e CUDA - con gli algoritmi presentati a lezione.

Contenuti sintetici

Il Corso presenta una panoramica estesa delle architetture parallele e dei relativi paradigmi computazionali. Introduce lo studente alla progettazione ed implementazione di applicazioni parallele in ambiente distribuito e su GPGPU con particolare attenzione all’ambiente di sviluppo CUDA. Viene introdotto il problema delle applicazioni distribuite con accesso a grandi moli di dati, analizzando il framework Hadoop.

Programma esteso

1. Considerazioni di base e misura delle prestazioni.

2. La classificazione delle architetture parallele ed i paradigmi computazionali, con approfondimento delle architetture SIMD e MIMD.

3. Tipologie di interconnessione e modelli di comunicazione.

4. Esempi di piattaforme a memoria condivisa con cenni alle architetture multicore

5. Esempi di piattaforma distribuita: cluster di PC/workstation e su network locale e dedicato, sistemi con acceleratori grafici.

6. Tecniche di parallelizzazione: tipi di decomposizione, mapping, bilanciamento del carico e tecniche di ottimizzazione.

7. Inibitori della parallelizzazione

8. Operazioni di comunicazione base

9. Modelli analitici di programmi paralleli

10. Cenni su alcuni algoritmi paralleli significativi

11. Programmazione su piattaforme a memoria condivisa, introduzione a OpenMP

12. Uso di librerie Message Passing Interface (MPI) quale ambiente di programmazione per la realizzazione di algoritmi paralleli su architetture multiprocessore: inizializzazione, operazioni globali, modularità

13. L’architettura degli acceleratori grafici e i relativi paradigmi computazionali

14. Introduzione all’ambiente di programmazione su acceleratori grafici: ambiente CUDA

15. Filesystem paralleli

16. presentazione del framework Hadoop: il modello Map-Reduce

Prerequisiti

Conoscenze di architetture degli elaboratori, elementi di networking, linguaggi di programmazione con particolare riferimento ai linguaggi C/C++e Java, modelli di computabilità e algoritmi e complessità.

Modalità didattica

Lezioni ed esercitazioni in aula, attività seminariale. Supporto di materiale in elearning, esercizi di programmazione. L'insegnamento è tenuto in lingua italiana, su richiesta degli studenti può essere erogato in lingua inglese; il materiale di supporto è parzialmente in lingua italiana e inglese.

Materiale didattico

1. P. Pacheco, An Introduction to Parallel Programming, Elsevier, 2011.

2. A. Grama, A. Gupta, G. Karypis, V. Kumar.Introduction to Parallel Computing, 2°Ed., Addison-Wesley, 2003.

3. CUDA C++ Programming Guide - Design Guide, v11.2, NVIDIA docs, 2021

4. T. White, Hadoop: The Definitive Guide, O’Reilly, 2012.

Materiale disponibile sulla piattaforma di elearning del corso: lezioni, articoli, esercizi di riferimento.

Periodo di erogazione dell'insegnamento

Secondo Semestre 2020/2021

Modalità di verifica del profitto e valutazione

La verifica comprende attività seminariale a cura degli studenti e la discussione di un progetto su un particolare tema affrontato durante il corso, con lo sviluppo di codice e analisi delle prestazioni su architetture parallele. Il voto è determinato nel seguente modo: 40% attività seminariale, 60% progetto.

Orario di ricevimento

Su prenotazione, da richiesta dello studente via mail o tramite la messaggistica sulla piattaforma di elearning.

Sustainable Development Goals

IMPRESE, INNOVAZIONE E INFRASTRUTTURE
Esporta

Aims

The student understands the computational paradigms of parallel applications. To complete the analysis of these applications, performance metrics are introduced and used in the exercise activities on parallel machines in OpemMP, MPI and CUDA with the algorithms presented in class and developed by the students.

Contents

The course presents a comprehensive overview of parallel architectures and associated computational paradigms. It also introduces the student to the design and implementation of parallel applications in distributed environments and GPGPU with CUDA development environment emphasis. It is introduced the problem of distributed applications with access to large amounts of data, analyzing the Hadoop framework.

Detailed program

1. Basic considerations and performance measurement.

2. The classification of parallel architectures and computational paradigms, with SIMD and MIMD architectures deepening."

3. Types of interconnection and communication patterns.

4. Examples of shared-memory platforms with references to multicore architectures.

5. Examples of distributed platform: PC clusters / networks of workstations and local and dedicated systems with graphics accelerators.

6. Parallelization techniques: types of decomposition, mapping, load balancing and optimization techniques.

7. Inhibitors of parallelization

8. Basic communication operations"

9. Analytical modelling of parallel programs

10. Overview on some relevant parallel algorithms"

11. Programming on shared memory platforms, introduction to OpenMP

12. Use of libraries Message Passing Interface (MPI) as a programming environment for the realization of parallel algorithms on multiprocessor architectures: initialization, global operations, modularity

13. The architecture of graphics accelerators and related computational paradigms

14. Introduction to the programming on graphics accelerators: CUDA environment."

15. Parallel Filesystems

16. Presentation of the Hadoop framework: the model Map-Reduce

Prerequisites

Knowledge of computer architecture; elements of networking; programming languages, with particular regard to the C / C + +/Java languages; algorithms and models of computability and complexity.

Teaching form

Lesson, tutorial, seminars, individual study activities supported by teaching materials in e-learning, and project activity developed in a parallel environment, especially on systems with GP-GPU accelerators from Nvidia and CUDA environment. The teaching is held in Italian, the support material is in English. The teaching is held in Italian, at the request of the students it can be delivered in English; the support material is partially in Italian and English.

Textbook and teaching resource

1. P. Pacheco, An Introduction to Parallel Programming, Elsevier, 2011.

2. A. Grama, A. Gupta, G. Karypis, V. Kumar.Introduction to Parallel Computing, 2°Ed., Addison-Wesley, 2003.

3. CUDA C++ Programming Guide - Design Guide, v11.2, NVIDIA docs, 2021

4. T. White, Hadoop: The Definitive Guide, O’Reilly, 2012.

Teaching resources available on the e-learning platform of the course: lessons, articles, reference exercises.

Semester

Second Semester 2020/2021

Assessment method

The assessment includes seminar activities by the students and the discussion of a project on a particular topic addressed during the course, with the development of code and analysis of performance on parallel architectures. The vote is determined as follows: 40% seminar activity, 60% project.

Office hours

By reservation, by student request via email or via the messaging on the e-learning platform.

Sustainable Development Goals

INDUSTRY, INNOVATION AND INFRASTRUCTURE
Entra

Scheda del corso

Settore disciplinare
INF/01
CFU
6
Periodo
Secondo Semestre
Tipo di attività
Obbligatorio a scelta
Ore
48
Tipologia CdS
Laurea Magistrale
Lingua
Italiano

Staff

    Docente

  • Matteo Alessandro Dominoni
    Matteo Alessandro Dominoni

Opinione studenti

Vedi valutazione del precedente anno accademico

Bibliografia

Trova i libri per questo corso nella Biblioteca di Ateneo

Metodi di iscrizione

Iscrizione manuale
Iscrizione spontanea (Studente)

Obiettivi di sviluppo sostenibile

IMPRESE, INNOVAZIONE E INFRASTRUTTURE - Costruire una infrastruttura resiliente e promuovere l'innovazione ed una industrializzazione equa, responsabile e sostenibile
IMPRESE, INNOVAZIONE E INFRASTRUTTURE

Non sei collegato. (Login)
Politiche
Ottieni l'app mobile
Powered by Moodle
© 2025 Università degli Studi di Milano-Bicocca
  • Privacy
  • Accessibilità
  • Statistiche