( in italiano )
Parallel and distributed computing ( 6 CFU )
Prof. Michele Amoretti
     Phone: 0521 906147 - Fax: 0521 905723           E-mail. michele.amoretti@unipr.it           Home page. http://www.ce.unipr.it/amoretti/

The aim of the course is to define and characterize computing systems, focusing on parallel and distributed computing
systems. A sound theoretical foundation will be developed, related to performance evaluation and programming
models of complex computing systems. From a practical point of view, some important tools for parallel and distributed
programming will be illustrated. The course will also illustrate the peer-to-peer paradigm and the principles of autonomic
computing, as well as a design solution for adaptive peer-to-peer systems. The last part of the course will be related to
the simulation of complex systems, in particular peer-to-peer and autonomic systems.

Systems e models
- State space
- Deterministic and stochastic models
- Complex systems
- Complex adaptive systems
- Population dynamics
- Network topologies
- DEVS models
Computing systems
- Information theory
- Taxonomy of computing systems
- Automata
- Von Neumann architecture
Parallel computing
- General concepts
- Parallel programming models
- Multicore systems, Cell, General Purpose GPU Programming
- NUMA architecture; Onyx2
- Massive parallelism, CM2
- Message Passing Interface (MPI)
Distributed computing
- Cluster computing
- Grid computing
- Cloud computing
- Pervasive computing
Peer-to-Peer Systems
- State variables
- Dynamics of peer-to-peer networks
- Design issues
- Design strategies for overlay schemes
- Popular overlay schemes (Napster, BitTorrent, eMule, JXTA, Skype, Chord)
Autonomic Computing
- The four principles of autonomic computing
- Adaptive Evolutionary Framework
- General concepts about simulation
- Event-driven simulation
- DEUS: a simple tool for complex simulations

Laboratory activities
Practice with the DEUS simulation tool.

Examination methods
Written examination and practical test (short project).

Suggested textbooks
Official notes, slides and other training aid will be provided by the teacher.

Other useful books
1) C. Ghezzi, D. Mandrioli, "Informatica Teorica", Città Studi, 1989.
2) D. E. Culler, J. Pal Singh, “Parallel Computer Architecture: A Hardware/Software Approach”, Morgan Kaufman, 1999.
3) B.P. Zeighler, H. Praehofer, T.G. Kim, "Theory of Modeling and Simulation", Second Edition, Academic Press, 2000.
print the program ~ back