Parallel and Distributed Computing

Parallel and Distributed Computing

Credits

6

Prerequisites

None.

Scientific-disciplinary sector (SSD)

INF/01 Computer Science.

Examination method

Oral exam and assessment of laboratory work

Learning
objectives

The course aims to provide basic ideas, methodologies and software tools for developing algorithms in a (distributed) high-performance computing environment. Laboratory work is an integral part of the course.

Syllabus

Parallel architectures and their classification. Shared-memory and message-passing models for algorithm development. Elementary parallel algorithms: sum, search, sorting, matrix and vector operations. New parameters for efficiency and computational complexity. Dynamic load balancing and parallel adaptive algorithms: a case study of adaptive quadrature algorithms. Introduction to distributed computing.

Expected learning
outcomes

At the end of the course, students must demonstrate that they

  • know and understand how the basic tools for the design, development and analysis of parallel algorithms in shared-memory and distributed-memory environments work;
  • are able to apply this knowledge to the independent development of algorithms and programs of increasing difficulty on modern parallel architectures;
  • are able to communicate ideas and solutions clearly, rigorously and effectively to both specialist and non-specialist audiences;
  • are able to identify the most appropriate methods to analyse and solve a problem related to the course topics and to interpret the results correctly.

Learning outcomes
to be assessed

Ability to develop algorithms and programs of varying difficulty independently; clarity, correctness and completeness in the oral presentation of the course topics.