ADVANCED ARCHITECTURES

Course objectives

General goals: The aim of the course is to provide a thorough understanding of the fundamental and advanced principles of computer architecture, parallel computing techniques, and the basics of quantum computing. Specific goals: Develop practical skills in the design and evaluation of arithmetic circuits, the implementation of programs for vector and GPU architectures, and the understanding of quantum computation models. Knowledge and understanding: Acquire theoretical and practical knowledge of major hardware architecture models, performance optimization techniques, and emerging computational paradigms. Applying knowledge and understanding: Being able to design, analyse, and optimize computational circuits and systems, implement algorithms on parallel architectures, and evaluate advanced computing solutions. Critical and judgmental abilities: Develop critical analysis skills to assess the advantages and limitations of different architectural and computational solutions based on efficiency, scalability, and complexity. Communication skills: Being able to clearly present complex technical concepts, delivering project analyses and solutions both in written reports and oral presentations. Learning ability: Develop autonomy in studying and researching updates in the fields of computer architecture and advanced computation.

Channel 1
ANNALISA MASSINI Lecturers' profile

Program - Frequency - Exams

Course program
Introduction to parallel architectures and high-performance computing. Overview of computer organization and architecture. (5 hours) Instruction pipeline. Cache coherence. (5 hours) Arithmetic modules. Fast arithmetic circuits. Number representations for fast arithmetic. Circuit evaluation. (10 hours). Flynn's classification. The SIMD class. Vector architectures and GPUs. (10 hours). Sparse matrices. (3 hours) The MIMD class and interconnection networks (12 hours). Performance analysis (3 hours). Base concepts of quantum computing and quantum arithmetic circuits. (12 hours)
Prerequisites
No prerequisites
Books
-- Computer Architecture: A Quantitative Approach J. L. Hennessy, D. A. Patterson - Morgan Kaufmann, 2019 - Multicore and GPU Programming An Integrated Approach - G. Barlas - Morgan Kaufmann, 2014 - Programming Massively Parallel Processors: A Hands-on Approach, David B. Kirk and Wen-mei W. Hwu, Morgan Kaufmann, 2010 -- Additional material is specified on the course slides: http://twiki.di.uniroma1.it/twiki/view/CI/
Teaching mode
Il corso alternerà lezioni di teoria, esercizi ed esercitazioni in laboratorio.
Frequency
La frequenza è facoltativa, ma fortemente consigliata.
Exam mode
L'esame prevede un a prova scritta e una prova orale. Prova scritta: Gli studenti frequentanti possono sostenere le prove in itinere (a metà corso e alla fine). La prova in itinere e al prova scritta complessiva prevedono esercizi e domande a risposta aperta. Prova orale: Gli studenti possono scegliere una delle seguenti opzioni, concordando con il docente: esame orale oppure presentazione di uno o due articoli oppure progetto. Il voto finale sarà calcolato come media tra i voti riportati nelle due prove. Sono previsti degli homework da svolgere e consegnare durante il corso, che possono sostituire alcune parti dello scritto. Gli homework contribuiscono al voto finale (per un massimo di 2 punti su 30).
Bibliography
- Introduction to High-Performance Scientific Computing, Lloyd D. Fosdick, Elizabeth R. Jessup, Carolyn J. C. Schauble and Gitta Domik, The MIT Press, 1996, ISBN 0-262-06181-3 - Introduction to scientific computing: A Matrix-Vector Approach Using MATLAB, Charles F. Van Loan, Prentice Hall , 1997 - MATLAB: http://www.mathworks.com/help/techdoc/learn_matlab/bqr_2pl.html Introduction to scientific computing: A Matrix-Vector Approach Using MATLAB, Charles F. Van Loan, Prentice Hall, 1997
Lesson mode
The course is taught in person
  • Lesson code10612318
  • Academic year2025/2026
  • CourseComputer Science
  • CurriculumSingle curriculum
  • Year1st year
  • Semester2nd semester
  • SSDINF/01
  • CFU6