Advanced computer architecture (2014/2015)

Course code
Name of lecturer
Nicola Bombieri
Nicola Bombieri
Number of ECTS credits allocated
Academic sector
Language of instruction
II sem. dal Mar 2, 2015 al Jun 12, 2015.

Lesson timetable

II sem.
Day Time Type Place Note
Tuesday 8:30 AM - 10:30 AM lesson Laboratory Gamma  
Thursday 2:30 PM - 5:30 PM lesson Lecture Hall I  

Learning outcomes

The course will provide theoretical and practical knowledge on definition, design and analysis of advanced computer architecture with more emphasis on multicore and GP-GPU architectures.


Module THEORY (32h):
-) Introduction to parallelism and parallel architectures.
-) Parallel architecture models and programming.
-) Performance evaluation and analysis
-) Amdhal’s law and metrics for performance measurement.
-) Pipeline basics and advanced concepts.
-) Instruction-level parallelism (ILP).
-) Advanced branch prediction, static scheduling e speculation.
-) Memory hierarchy: basics and advanced concepts.
-) Virtual memory.
-) Thread-level parallelism (TLP).
-) Cache coherence in shared memory architectures.
-) Snoopy protocols.
-) Data-level parallelism (DLP).
-) General purpose Graphic Processing Unit (GP-GPU).
-) GP-GPU programming: CUDA and OpenCL.
-) Introduction to Grid and Cloud Computing.

Module LAB (24h):
-) Parallel compilers for multicore architectures (OpenMP).
-) Parallel compilers for clusters (MPI).
-) GP-GPU programming: CUDA, OpenCL.

To attend the teaching successfully, it is recommended that the student has already acquired skills in:
*) Basics of computer architectures. In particular: the instruction set, processing unit, memory hierarchy, pipeline.
*) Basics of operating systems. In particular: the concept of process and thread, memory virtualization.
*) Basics of Programming. In particular: basic concepts of C programming and Assembly

Assessment methods and criteria

Preliminary test + lab project