PARALLEL AND DISTRIBUTED COMPUTING
cod. 05924

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

Learning objectives

The main goal of the course is to define and characterize computing systems.
In particular, the student will be provided with the ability to understand:

- parallel and distributed programming models
- client/server and peer-to-peer systems
- autonomic systems
- simulation techniques
- quantum computing

The student will learn to apply such a knowledge to:

- develop computing systems models, in particular for performance analysis
- program parallel and distributed systems
- design client/server and peer-to-peer distributed systems
- design autonomic systems
- develop discrete event simulations
- design quantum circuits

Prerequisites

- - -

Course unit content

1. Computing systems
2. Parallel computing
3. Distributed computing
4. Peer-to-peer systems
5. Autonomic systems
6. Simulation techniques
7. Quantum computing

Full programme

Lectures on Parallel and Distributed Computing (42 hours)

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

2. Parallel computing
2.1. Parallel architectures; 2.2. Performance evaluation; 2.3. Parallel programming models; 2.4. Message Passing Interface (MPI); 2.5. MapReduce; 2.6. Multicore systems, General Purpose GPU Programming, CUDA, OpenCL

3. Distributed computing
3.1. Cluster computing; 3.2. Grid computing; 3.3. Cloud computing; 3.4. Pervasive computing

4. Peer-to-peer systems
4.1. State variables; 4.2. Dynamics of peer-to-peer networks; 4.3. Design issues; 4.4. Design strategies for overlay schemes; 4.5. Overlay schemes (Napster, BitTorrent, eMule, Skype, Chord, Kademlia), Bitcoin

5. Autonomic computing
5.1. The four principles of autonomic computing; 5.2. MAPE-K; 5.3. NAM, NAM4J, Distributed Remodeling Framework

6. Simulation techniques
6.1. General concepts about simulation; 6.2. Discrete event simulation

7. Quantum computing
7.1. History of quantum computing; 7.2. Linear algebra; 7.3. The postulates of Quantum Mechanics; 7.4. Quantum bit; 7.5. Quantum circuits; 7.6. Quantum algorithms

Bibliography

M. Amoretti, lecture notes in english.
C. Ghezzi, D. Mandrioli, "Informatica Teorica", Città Studi, 1989.
D. E. Culler, J. Pal Singh, “Parallel Computer Architecture: A Hardware/Software Approach”, Morgan Kaufman, 1999.
B.P. Zeighler, H. Praehofer, T.G. Kim, "Theory of Modeling and Simulation", Second Edition, Academic Press, 2000.
M. Nielsen, I. Chuang, “Quantum Computation and Quantum Information”, Cambridge University Press, 2011.

Teaching methods

Lectures are given by the teacher, which illustrates the topics with the support of slides, or by writing on the blackboard. Lectures on peer-to-peer systems are completed by a tutorial on developing applications with the Sip2Peer middleware. Lectures about simulation techniques are completed by a tutorial on the DEUS simulation environment.

Assessment methods and criteria

There will not be exams during the course.

There will be a written exam (3 hours), with 6-7 open questions related to theoretical part of the course.

The students will have to work (alone or in couples) on a small project, usually requiring software use/development, the writing of a report and a final presentation.

Other information

Lecture notes, slides and exercises are available on http://elly.dii.unipr.it