HIGH PERFORMANCE COMPUTING
cod. 1007809

Academic year 2023/24
1° year of course - Second semester
Professor
Michele AMORETTI
Academic discipline
Sistemi di elaborazione delle informazioni (ING-INF/05)
Field
Attività formative affini o integrative
Type of training activity
Related/supplementary
48 hours
of face-to-face activities
6 credits
hub: PARMA
course unit
in ENGLISH

Learning objectives

Knowledge and understanding - By means of lectures attended in the context of the course, the student will acquire the methods and knowledge that are necessary to understand how abstract machines work. The student will learn the most important computational complexity classes. The student will also learn principles and technologies of parallel computing architectures, as well as design and implementation parallel algorithms. Finally, the student will acquire the methods and knowledge that are necessary to understand how quantum computers work, and to design quantum algorithms and protocols.
Applying knowledge and understanding - By means of lectures and practical activities in the context of the course, the student will learn how to apply the acquired knowledge in a real design environment. In particular, the student will learn to: design efficient parallel algorithms, design and implement parallel programs, design quantum algorithms and protocols.
Making Judgements - The student will be able understand and critically evaluate the main types of high performance computing systems.
Communication Skills - By means of the lectures and the discussions with the teacher, the student will acquire the specific lexicon related to high performance computing systems. It is expected that, at the end of the course, the student will be able to transmit, both in oral and written form, the main topics of the course, like ideas, engineering problems and related solutions.
Learning skills - The student that will attend the course will be able to improve its knowledge about high performance computing systems, by autonomously referring to specialised books, scientific publications, also beyond the topics presented by the teacher during the lectures, in order to effectively face the entry into employment and undertake further training paths.

Prerequisites

- - -

Course unit content

1. Theory of Computing
2. Parallel Computing
3. Quantum Computing

Full programme

1. Theory of Computation (6 hours) 1.1. Information theory; 1.2. Automata and computability; 1.3. Computational complexity
2. Parallel Computing (20 hours) 2.1. Parallel architectures; 2.2. Parallel algorithms; 2.3. Performance evaluation; 2.4. Message Passing Interface (MPI); 2.5. Multicore systems, OpenMP; 2.6. General Purpose GPU Programming, CUDA
3. Quantum computing (22 hours) 3.1. History and perspectives; 3.2. Linear algebra (recap); 3.3. Postulates of Quantum Mechanics; 3.4. Quantum information; 3.5. Quantum circuit model of computation; 3.6. Quantum computers; 3.7. Quantum algorithms; 3.8. Quantum cryptography; 3.9. Quantum Internet

Bibliography

- M. Sipser, Introduction to the Theory of Computation, Cengage Learning, 2013
- E. Aubanel, Elements of Parallel Computing, CRC Press, 2017
- M. Nielsen, I. Chuang, Quantum Computation and Quantum Information, Cambridge University Press, 2010

Teaching methods

Teaching activities will be mostly performed in terms of lectures given by the teacher, showing slides and writing on the blackboard.
Some hours will be devoted to the practice of parallel programming, quantum programming, quantum network simulation.
Teaching materials (including slides, lecture notes, source code, scientific articles) will be weekly uploaded on the Elly platform.
To download teaching materials, online subscription to the course is mandatory.
Students that will not attend the lectures are invited to check the available teaching materials and recommendations provided by the teacher through the Elly platform.

Assessment methods and criteria

The learning evaluation consists of two moments:
1) a written exam lasting 3 hours, divided in two parts of the same length, with open questions related to the theoretical topics of the course (theory of computation and parallel computing in the first part, quantum computing in the second part); both parts must be successfully passed in the same exam day;
2) a practical project (software development) on one of the following topics:
- parallel computing
- quantum computing
It is mandatory to write a short report and to make an oral presentation of the work done.
The written exam is evaluated on a 0-30 scale. The project is evaluated on a 0-30 scale. The final grade is the average of the two partial grades. There will be a midterm written exam concerning parts 1 and 2 of the program.

Other information

- - -

2030 agenda goals for sustainable development

This course contributes to the realisation of the ONU objectives of the Agenda 2030 for Sustainable Development