Studying at the University of Verona

Here you can find information on the organisational aspects of the Programme, lecture timetables, learning activities and useful contact details for your time at the University, from enrolment to graduation.

Study Plan

The Study Plan includes all modules, teaching and learning activities that each student will need to undertake during their time at the University.
Please select your Study Plan based on your enrollment year.

It will be activated in the A.Y. 2026/2027
ModulesCreditsTAFSSD
Further linguistic skills (C1 english suggested)
3
F
-
Final exam
24
E
-
Modules Credits TAF SSD
Between the years: 1°- 2°

Legend | Type of training activity (TTA)

TAF (Type of Educational Activity) All courses and activities are classified into different types of educational activities, indicated by a letter.




S Placements in companies, public or private institutions and professional associations

Teaching code

4S009833

Credits

6

Coordinator

Nicola Bombieri

Language

English en

Also offered in courses:

Scientific Disciplinary Sector (SSD)

ING-INF/05 - INFORMATION PROCESSING SYSTEMS

Courses Single

Authorized

The teaching is organized as follows:

Part 2 - theory

Credits

2

Period

II semestre

Academic staff

Nicola Bombieri

Part 1 - theory

Credits

2

Period

II semestre

Academic staff

Nicola Bombieri

Part 2 - laboratory

Credits

1

Period

II semestre

Academic staff

Nicola Bombieri

Part 1 - laboratory

Credits

1

Period

II semestre

Academic staff

Nicola Bombieri

Learning objectives

This course aims at providing theoretical and practical knowledge about programming and analysis of advanced computational architectures, with emphasis on multiprocessor and GPU platforms. At the end of the course the student will have to demonstrate the ability to apply the knowledge necessary to: identify techniques for parallel programming, also in a research context, through analysis of application efficiency and by considering both functional and non-functional design constraints (correctness, performance, energy consumption). This knowledge will allow the student to be able to analyze performance and to perform code profiling, by identifying critical zone and the corresponding optimizations by considering the architectural characteristics of the platform. At the end of the course the student will be able to compare parallel patterns and to select the best one by considering the use case; by defining the structure of the optimized code, demonstrate the ability to identify the proper architectural choices, by considering the target application and platform contexts. During the definition of the optimized code structure, the student will have the ability to continue the study autonomously in the field of the parallel programming languages and of the Software development for parallel embedded platforms.

Prerequisites and basic notions

Basic C Programming

Program

Theory
- Intro to parallel and heterogeneous architectures
- Intro to CUDA C
- GPU parallelism model
- Memory and data locality
- Thread Execution Efficiency
- Memory Access Performance
- Parallel Computation Patterns (Histogram)
- Parallel Computation Patterns (Stencil)
- Parallel Computation Patterns (Reduction)
- Parallel Computation Patterns (Scan)
- Floating-Point Considerations
- GPU as Part of the PC Architecture
- Efficient Host-Device Data Transfer
- Application Case Study: Advanced MRI Reconstruction

Lab
CUDA
MPI

Bibliography

Visualizza la bibliografia con Leganto, strumento che il Sistema Bibliotecario mette a disposizione per recuperare i testi in programma d'esame in modo semplice e innovativo.

Didactic methods

Frontal lessons for theory Frontal lessons and code development in the lab.

Learning assessment procedures

Open-ended exercises (total time 2 hours)

Students with disabilities or specific learning disorders (SLD), who intend to request the adaptation of the exam, must follow the instructions given HERE

Evaluation criteria

To pass the exam, students must demonstrate:
- understanding the principles underlying parallel programming - being able to present their arguments precisely and coherently without digressions - being able to apply the knowledge acquired to solve application problems presented in the form of exercises, questions, and projects.

Criteria for the composition of the final grade

The exam consists of a written test containing multiple-choice questions, open-ended questions, and exercises covering both the theoretical and laboratory sections. The maximum score for each exercise depends on its complexity. The sum of the maximum scores is 32/30. Students may develop a project assigned by the instructor for a bonus (up to +5 points).

Exam language

English