Parallel and Distributed Algorithms
A.Y. 2024/2025
Learning objectives
The aim of the course is introducing the main concepts and methods in parallel and distribuite algorithm design, together with performance evaluation and comparison with sequential algorithms.
Expected learning outcomes
The student should be able to tell parallel from distributed world, apply techniques and methods presented along the course aiming to design efficient parallel and distribuite algorithms. In addition, the student should be able to analyze required computational resources, in order to assess performance and correctness of algorithms.
Lesson period: First semester
Assessment methods: Esame
Assessment result: voto verbalizzato in trentesimi
Single course
This course can be attended as a single course.
Course syllabus and organization
Single session
Responsible
Lesson period
First semester
Course syllabus
Parallel and distributed algorithms, motivations. Parallel and distributed architectures vs. von Neumann architecture. Computational resources within different paradigms.
Parallel and distributed architectures:
- Problems in parallel algorithms design: synthesis, analysis, universality
- Shared and distributed memory parallel architectures: communication in both realms
- Shared memory architectures. The PRAM (Parallel RAM) model
- PRAM as a SIMD vs. MIMD architecture
- PRAM models: EREW, CREW, CRCW (common, priority, ... )
- Computational resources: hardware and time complexity
- Comparisons with sequential algorithms: speed-up and efficiency
- Efficient paralle solution on PRAM of some fundamental problems
- Computing iterated binary associative operations. iterated sum: structure and analysis of a parallel solution
- Efficient parallel algorithms for: linear algebra, graph theory, optimization, ...
- Computing prefix iterated binary associative operations. prefix sum
- Structure and analysis of Kogge-Stone's algorithm (pointer doubling)
- Efficient parallel polynomial evaluation. Parallel search algorithms
- Sorting problems (ranking), efficient sequential solutions
- Efficient parallel sorting problems. Batcher's Bitonic sort, structure and analysis
- Eulerian circuit technique in parallel algorithm design
- Distributed memory parallel architectures, interconnection network and performance parameters: degree, diameter and bisection size
- Sorting networks and the 0-1 principle (Knuth)
- Linear arrays of processors, structure, functions and net parameters
- Solving on linear arrays of processors: sorting, max and shuffle
- Odd-even and merge-split sorting, structure and analysis
- Meshes of processors, structures, functions and net parameters
- Computing max on a mesh
- LS3 sorting algorithms, structure and analysis
Distributed architectures and algorithms:
- Distributed architecture modeling
- Entities and communication channels
- Computational resources, time and message complexity
- Structure and analysis of distributed algorithms for fundamental problems
- Broadcasting, lower bounds for distributed solutions
- The flooding algorithm
- Wake-up, the wflooding algorithm
- Traversing, the depth-first algorithm
- Spanning tree, the shout and depth-first algorithm
- Election, computability limitations and elextion by minimum
- Routing, gossiping algorithms
Parallel and distributed architectures:
- Problems in parallel algorithms design: synthesis, analysis, universality
- Shared and distributed memory parallel architectures: communication in both realms
- Shared memory architectures. The PRAM (Parallel RAM) model
- PRAM as a SIMD vs. MIMD architecture
- PRAM models: EREW, CREW, CRCW (common, priority, ... )
- Computational resources: hardware and time complexity
- Comparisons with sequential algorithms: speed-up and efficiency
- Efficient paralle solution on PRAM of some fundamental problems
- Computing iterated binary associative operations. iterated sum: structure and analysis of a parallel solution
- Efficient parallel algorithms for: linear algebra, graph theory, optimization, ...
- Computing prefix iterated binary associative operations. prefix sum
- Structure and analysis of Kogge-Stone's algorithm (pointer doubling)
- Efficient parallel polynomial evaluation. Parallel search algorithms
- Sorting problems (ranking), efficient sequential solutions
- Efficient parallel sorting problems. Batcher's Bitonic sort, structure and analysis
- Eulerian circuit technique in parallel algorithm design
- Distributed memory parallel architectures, interconnection network and performance parameters: degree, diameter and bisection size
- Sorting networks and the 0-1 principle (Knuth)
- Linear arrays of processors, structure, functions and net parameters
- Solving on linear arrays of processors: sorting, max and shuffle
- Odd-even and merge-split sorting, structure and analysis
- Meshes of processors, structures, functions and net parameters
- Computing max on a mesh
- LS3 sorting algorithms, structure and analysis
Distributed architectures and algorithms:
- Distributed architecture modeling
- Entities and communication channels
- Computational resources, time and message complexity
- Structure and analysis of distributed algorithms for fundamental problems
- Broadcasting, lower bounds for distributed solutions
- The flooding algorithm
- Wake-up, the wflooding algorithm
- Traversing, the depth-first algorithm
- Spanning tree, the shout and depth-first algorithm
- Election, computability limitations and elextion by minimum
- Routing, gossiping algorithms
Prerequisites for admission
No prerequisite.
Teaching methods
Lectures and advanced seminars.
Attending lectures is strongly encouraged.
Attending lectures is strongly encouraged.
Teaching Resources
For Parallel algorithms there are a book note that can be download directly from the web site of the course Parallel and Distributed Algorithms.
For Distributed algorithms students are invited to follow the book: N. Santoro. Design and Analysis of Distributed Algorithms. Wiley-Interscience, 2006.
The course material can be found on the teaching website:
https://myariel.unimi.it/course/view.php?id=3178
For Distributed algorithms students are invited to follow the book: N. Santoro. Design and Analysis of Distributed Algorithms. Wiley-Interscience, 2006.
The course material can be found on the teaching website:
https://myariel.unimi.it/course/view.php?id=3178
Assessment methods and Criteria
The exam consists of a written proof of about three questions/exercises covering the topics of the course. The exam is not open book. The questions consist of: formal definitions, statements of theorems and algorithm construction/proofs. The exercises verify the applicative aspects, while open questions test the reasoning ability on the subject. The exam time is about one hour and half, and the evaluation is expressed in thirtieths.
An evaluation between 18 and 24 witnesses an adeguate knowledge to present topics by using a suitable formalism. An evaluation between 25 and 30 highlights also the ability of proving/applying theorems. The evaluation is sent directly to the student via SIFA system.
An evaluation between 18 and 24 witnesses an adeguate knowledge to present topics by using a suitable formalism. An evaluation between 25 and 30 highlights also the ability of proving/applying theorems. The evaluation is sent directly to the student via SIFA system.
INF/01 - INFORMATICS - University credits: 6
Lessons: 48 hours
Professor:
Palano Beatrice Santa
Shifts:
Turno
Professor:
Palano Beatrice SantaEducational website(s)
Professor(s)