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
This information is intended exclusively for students already enrolled in this course.If you are a new student interested in enrolling, you can find information about the course of study on the course page:
Laurea magistrale in Ingegneria e scienze informatiche - Enrollment from 2025/2026The 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.
1° Year
Modules | Credits | TAF | SSD |
---|
4 modules among the following
2° Year It will be activated in the A.Y. 2025/2026
Modules | Credits | TAF | SSD |
---|
Modules | Credits | TAF | SSD |
---|
4 modules among the following
Modules | Credits | TAF | SSD |
---|
Modules | Credits | TAF | SSD |
---|
3 modules among the following
2 modules among the following
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.
Parallel Programming (2024/2025)
Teaching code
4S008908
Credits
6
Coordinator
Not yet assigned
Language
Italian
Scientific Disciplinary Sector (SSD)
INF/01 - INFORMATICS
Courses Single
Authorized
The teaching is organized as follows:
Parte II
Credits
3
Period
Semester 2
Academic staff
Nicola Bombieri
Parte I
Credits
3
Period
Semester 2
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.
Program
Theory:
- Parallel architectures
- Parallel programming models
- Performance measurement
- Perspective on Parallel Programming
- Designing parallel programs
- GPUs and CUDA:
overview , parallel programming model, threads
memory hierarchy/model
performance considerations
optimizations
- Graph algorithms on GPUs
data representations: Adj. matriX/lists, edge lists
Parallel algorithms for graph traversal (BFS)
Parallel algorithms for graph analysis (SSSP, APSP)
Parallel algorithms for graphs: load balancing and memory accesses: issues and management
Lab:
- OpenMP
- MPI
- CUDA
Learning assessment procedures
Exercises with open answers (total time 2 h)