Advanced computer architecture (2013/2014)

Course code
4S02910
Name of lecturer
Nicola Bombieri
Coordinator
Nicola Bombieri
Number of ECTS credits allocated
6
Academic sector
ING-INF/05 - INFORMATION PROCESSING SYSTEMS
Language of instruction
English
Location
VERONA
Period
II semestre dal Mar 3, 2014 al Jun 13, 2014.

Lesson timetable

II semestre
Day Time Type Place Note
Tuesday 8:30 AM - 10:30 AM lesson Laboratory Gamma  
Wednesday 8:30 AM - 10:30 AM lesson Not defined from Mar 3, 2014  to Mar 4, 2014
Wednesday 8:30 AM - 10:30 AM lesson Lecture Hall B from Mar 12, 2014  to Apr 22, 2014
Wednesday 8:30 AM - 10:30 AM lesson Lecture Hall B from Apr 30, 2014  to May 13, 2014
Wednesday 8:30 AM - 10:30 AM lesson Lecture Hall B from May 28, 2014  to Jun 13, 2014

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.

Syllabus

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

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

Assessment methods and criteria

Preliminary test + lab project