Advanced computer architecture (2017/2018)

Course code
Name of lecturer
Nicola Bombieri
Nicola Bombieri
Number of ECTS credits allocated
Other available courses
Academic sector
Language of instruction
II sem. dal Mar 1, 2018 al Jun 15, 2018.

Lesson timetable

Go to lesson schedule

Learning outcomes

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 functional and non-functional design constraints (correctness, performance, energy consumption); analyze performance and to perform code profiling, by identifying critical zone and the corresponding optimizations by considering the architectural characteristics of the platform; demonstrate ability to compare parallel patterns and to select the best one by considering the use case. By defining the structure of the optimized code, the student will have to demonstrate the ability to identify the proper architectural choices, by considering the target application and platform contexts. Finally, the student will have to demonstrate the ability to be able to continue the study autonomously in the field of the parallel programming languages and of the Software development for parallel embedded platforms.


Theory (32h):
Intro High-performance computing (HPC)
Parallel architectures
Parallel programming models
HPC and Symmetric Multi-Processors (SMP): OpenMP
HPC and Message Passing Interface (MPI): OpenMPI
Graphic Processing Units (GPUs): overview, parallel programming model, threads, memory model.
Performance measurement
GPU performance considerations
GPU data transfers and streams.
Parallel graph algorithms for GPUs: BFS and SSSP
OpenCL and OpenACC
Modeling for qualitative simulation in Systems Biology targeting HPC

Lab (24h):
R parallel pack
Qualitative modelling lab.

Reference books
Author Title Publisher Year ISBN Note
John L. Hennessy, David A. Patterson Computer Architecture - A Quantitative Approach (Edizione 5) Morgan Kaufmann 2011 012383872X
David B. Kirk, Wen-mei W. Hwu Programming Massively Parallel Processors - A Hands-on Approach (Edizione 3) Morgan Kaufmann 2017 978-0-12-811986-0

Assessment methods and criteria

The exam consists of a project agreed upon with the teacher after request by email and appointment for the elaboration of the specifications (the project is valid throughout the academic year). The projects have different levels of difficulty. Every difficulty corresponds to a maximum evaluation value. Students will hold an interview to comment the project

Attendees at the course will be able to expose to the class their project, the research context in which the project is located, and the state of progress of the course.

Voting for the project (project_mark) is expressed in thirty.

The final vote is calculated as min(31, (project_mark + Bias)).
Bias is expressed in the interval [-4, + 4] and reflects the maturation and scientific autonomy acquired during the development of the project, in the exposure and in the interpretation of the scientific literature and the scientific context of the project.