ADVANCED ARCHITECTURES Single channel
Chair (Coordinator) and Rapporteur: ANNALISA MASSINI
Lecturers
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.
Learning outcomes
Knowledge and Understanding:
1) Describe and explain modules related to computer arithmetic and methods to speed up arithmetic operations, including the use of redundant number systems.
2) Explain the fundamental principles of parallel architectures and performance metrics, including Amdahl’s and Gustafson-Barsis’s laws.
3) Describe the structure and characteristics of SIMD and MIMD architectures, as well as interconnection networks.
4) Understand introductory concepts of quantum computing, including quantum logic gates and the implementation of simple quantum circuits.
Applying Knowledge and Understanding:
1) Design and evaluate arithmetic circuits (adders, multipliers) by analyzing area and delay, also using redundant number representations.
2) Analyze and evaluate the performance of parallel systems using standard models and formulas.
3) Analyze and compare different interconnection network topologies based on expected performance.
4) Build and execute simple quantum circuits, understanding the main operations of quantum computation.
Making Judgments:
1) Critically assess the effectiveness and suitability of different architectural solutions based on performance metrics and design constraints.
2) Select appropriate methodologies and techniques to solve advanced computational problems.
Communication Skills:
Present and discuss architectural concepts and solutions in a technically rigorous way, both orally and in writing, using terminology proper to computer architecture.
Learning Skills
1) Autonomously integrate advanced knowledge to address new developments in parallel architectures and quantum computing.
2) Understand and deepen scientific articles and technical documentation in the field of computer system architecture.
Prerequisites
No prerequisites
Programme
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)
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/
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
Lessons mode
The course is taught in person
Frequency
Attendance is optional, but strongly recommended.
Exam mode
The exam consists of a written test and an oral exam.
Written test: Students attending the lessons can take a mid-term exam and a final exam (or a whole exam). The mid-term and final exam (or whole exam) consist in a written test with exercises and open questions.
Oral exam: One of the following, at the choice of the student: oral exam/presentation of one or two papers/project.
The final grade will be the average of the grades of the written test and the oral part.
Example exam questions
Exercises and tests are available on the page: https://twiki.di.uniroma1.it/twiki/view/CI/
Arguments
- Fundamentals of Arithmetic and Circuits: Ripple-carry adders, multipliers, carry select/look-ahead adders, pipelining, redundant number systems, and Residue Number Systems.
- Performance and Parallel Architectures: Amdahl’s and Gustafson-Barsis’ laws, Flynn’s classification and other classifications of parallel architectures, SIMD, vector architectures, GPUs, MIMD.
- Interconnection and Computer Networks: Interconnection networks, topologies, Clos networks, fat trees, and Data Center network topologies.
- Quantum Computing: Qubits, single- and multi-qubit gates, quantum circuits.
Sustainability goals
- Academic year2026/2027
- Degree program to which the course belongsComputer Science
- Lesson code10612318
- Year and semester2nd year - 2nd semester
- Activity typeAttività formative affini ed integrative
- Academic areaAttività formative affini o integrative
- SSDINF/01
- Mandatory presenceNo
- Languageita
- CFU6 CFU
- Total duration60 hours
- Hours distribution36 classroom hours, 24 training hours