PARALLEL AND DISTRIBUTED COMPUTING
Learning outcomes of the course unit
The purpose of the course is to define and characterize the information processing systems.
In particular, the student will be given the ability to understand:
- Theoretical models (discrete-time, continuous-time and event-driven)
- Models of parallel and distributed programming
- Systems for client / server and peer-to-peer
- Autonomic systems
- Simulation techniques
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 computing systems
- develop discrete event simulations
Course contents summary
1.Systems and models
2. Automatic data processing
3. parallel computing
4. distributed computing
6. Development of peer-to-peer with Sip2Peer
7. autonomic computing
8. Simulation Techniques
9. Discrete event simulations with DEUS
Lectures on Parallel and Distributed Computing (42 hours)
1. Systems and models
1.1. State space
1.2. Deterministic and stochastic models
1.3. Complex systems
1.4. Complex adaptive systems
1.5. Markov models
1.5.1. Discrete time Markov chains
1.5.2. Continuous time Markov chains
1.5.3. Markov reward models
1.6. Population dynamics
1.7. Network topologies
1.8. DEVS models
2. Computing systems
2.1. Information theory
2.2. Taxonomy of computing systems
2.4. Von Neumann architecture
3. Parallel computing
3.1. General concepts
3.2. Parallel programming models
3.3. NUMA architecture; Onyx2
3.4. Massive parallelism, CM2
3.5. Message Passing Interface (MPI)
3.6. Multicore systems, Cell, General Purpose GPU Programming
4. Distributed computing
4.1. Cluster computing
4.2. Grid computing
4.3. Cloud computing
4.4. Pervasive computing
5. Peer-to-peer systems
5.1. State variables
5.2. Dynamics of peer-to-peer networks
5.3. Design issues
5.4. Design strategies for overlay schemes
5.5. Popular overlay schemes (Napster, BitTorrent, eMule, JXTA, Skype, Chord, Kademlia)
6. Peer-to-peer application development with Sip2Peer
7. Autonomic computing
7.1. The four principles of autonomic computing
7.3. NAM and NAM4J
7.4. Distributed Remodeling Framework
8. Simulation techniques
8.1. General concepts about simulation
8.2. Discrete event simulation
9. Discrete event simulation with DEUS
M. Amoretti, lecture notes in English on the topics of the course.
B.P. Zeighler, H. Praehofer, T.G. Kim, "Theory of Modeling and Simulation", Second Edition, Academic Press, 2000.
G. Bolch et al., “Queueing Networks and Markov Chains”, Second Edition, Wiley Interscience, 2006.
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.
Lectures are given by the teacher, which illustrates the topics with the support of slides,
or by writing on the blackboard. Lectures on Markov Chains include the solution of some exercises.
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, requiring software use/development, the writing of a report and a final presentation.
Lecture notes, slides and exercises are available on lea.unipr.it