Skip to main content
If you continue browsing this website, you agree to our policies:
  • Condizioni di utilizzo e trattamento dei dati
Continue
x
If you continue browsing this website, you agree to our policies:
  • Condizioni di utilizzo e trattamento dei dati
Continue
x
e-Learning - UNIMIB
  • Home
  • My Media
  • More
Listen to this page using ReadSpeaker
English ‎(en)‎
English ‎(en)‎ Italiano ‎(it)‎
You are currently using guest access
 Log in
e-Learning - UNIMIB
Home My Media
Percorso della pagina
  1. Science
  2. Master Degree
  3. Informatica [F1802Q - F1801Q]
  4. Courses
  5. A.A. 2021-2022
  6. 2nd year
  1. Parallel Computing
  2. Summary
Insegnamento Course full name
Parallel Computing
Course ID number
2122-2-F1801Q117
Course summary SYLLABUS

Course Syllabus

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

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 in ambiente 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.

Export

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 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.

Enter

Key information

Field of research
INF/01
ECTS
6
Term
Second semester
Activity type
Mandatory to be chosen
Course Length (Hours)
48
Language
Italian

Staff

    Teacher

  • Matteo Alessandro Dominoni
    Matteo Alessandro Dominoni

Students' opinion

View previous A.Y. opinion

Bibliography

Find the books for this course in the Library

Enrolment methods

Manual enrolments
Self enrolment (Student)

You are currently using guest access (Log in)
Policies
Get the mobile app
Powered by Moodle
© 2025 Università degli Studi di Milano-Bicocca
  • Privacy policy
  • Accessibility
  • Statistics