PARALLEL AND DISTRIBUTED COMPUTING
cod. 05924

Academic year 2017/18
2° year of course - Second semester
Professor
Academic discipline
Sistemi di elaborazione delle informazioni (ING-INF/05)
Field
A scelta dello studente
Type of training activity
Student's choice
42 hours
of face-to-face activities
6 credits
hub: PARMA
course unit
in ITALIAN

Learning objectives

At the end of the course, it is expected that the student is able to:
- know the main types of abstract machines
- know the main computational complexity classes
- create models of computing systems, in particular to study their performance
- know the features of parallel architectures
- know the main techniques for describing and evaluate parallel algorithms
- design and implement parallel programs
- know the features of autonomic systems
- design autonomic computing systems
- know the working principles of discrete event simulators
- implement discrete event simulators
- know the principles of quantum computing
- design quantum algorithms and protocols

Prerequisites

- - -

Course unit content

1. Abstract machines and computational complexity
2. Parallel computing
3. Autonomic systems
4. Discrete event simulation
5. Quantum computing

Full programme

1. Computing systems (5 hours)
1.1. Information theory; 1.2. Taxonomy of computing systems; 1.3. Abstract machines; 1.4. Computational complexity

2. Parallel computing (13 hours)
2.1. Parallel architectures; 2.2. Parallel algorithms; 2.3. Performance evaluation; 2.4. Message Passing Interface (MPI); 2.5. MapReduce; 2.6. Multicore systems, OpenMP; 2.7. General Purpose GPU Programming, CUDA

3. Autonomic computing (3 hours)
3.1. The four principles of autonomic computing; 3.2. MAPE-K model; 3.3. NAM, NAM4J, DRF frameworks

4. Simulation techniques (5 hours)
4.1. General concepts about simulation; 4.2. Discrete event simulation; 4.3. DEVS models; 4.4. DEUS simulation platform

5. Quantum computing (16 hours)
5.1. History of quantum computing; 5.2. Review of linear algebra; 5.3. Postulates of Quantum Mechanics; 5.4. Quantum bit; 5.5. Quantum circuits; 5.6. Quantum algorithms; 5.7. Quantum security protocols

Bibliography

M. Amoretti, lecture notes in english.
C. Ghezzi, D. Mandrioli, "Informatica Teorica", Città Studi, 1989.
S. Arora, B. Barak, "Computational Complexity: A Modern Approach", Cambridge University Press, 2009.
G. Hager, G. Wellein, "Introduction to High Performance Computing for Scientists and Engineers", CRC Press, 2010.
B.P. Zeighler, H. Praehofer, T.G. Kim, "Theory of Modeling and Simulation", 2nd Ed., Academic Press, 2000.
M. Nielsen, I. Chuang, "Quantum Computation and Quantum Information", Cambridge University Press, 2011.

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 and discrete event simulation.
Teaching materials (including slides, lecture notes, source code, scientific articles) will be weekly uploaded on the Elly platform.
To download teaching materials, on line subscription to the course is mandatory.
Students that won't attend the lectures are invited to check the available teachning 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, with open questions related to the theoretical topics of the course;
2) a project to be selected between the implementation of a parallel software, the implementation of a discrete event simulator, the deep study of a quantum computing paper; 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-4 scale. The final grade is the sum of the two partial grades. There won't be midterm exams.

Other information

- - -