MSE Master of Science in Engineering

The Swiss engineering master's degree


Ogni modulo equivale a 3 crediti ECTS. È possibile scegliere un totale di 10 moduli/30 ECTS nelle seguenti categorie: 

  • 12-15 crediti ECTS in moduli tecnico-scientifici (TSM)
    I moduli TSM trasmettono competenze tecniche specifiche del profilo e si integrano ai moduli di approfondimento decentralizzati.
  • 9-12 crediti ECTS in basi teoriche ampliate (FTP)
    I moduli FTP trattano principalmente basi teoriche come la matematica, la fisica, la teoria dell’informazione, la chimica ecc. I moduli ampliano la competenza scientifica dello studente e contribuiscono a creare un importante sinergia tra i concetti astratti e l’applicazione fondamentale per l’innovazione 
  • 6-9 crediti ECTS in moduli di contesto (CM)
    I moduli CM trasmettono competenze supplementari in settori quali gestione delle tecnologie, economia aziendale, comunicazione, gestione dei progetti, diritto dei brevetti, diritto contrattuale ecc.

La descrizione del modulo (scarica il pdf)riporta le informazioni linguistiche per ogni modulo, suddivise nelle seguenti categorie:

  • Insegnamento
  • Documentazione
  • Esame
Parallel and distributed computing (TSM_ProgAlg)

The objective of this module is to present an overview of parallel and distributed computing and related algorithms. The first part of the course will be dedicated to the architectures of parallel and distributed  infrastructures, the different theoretical models for these architectures and the different programming models and tools for programming such architectures. The second part will be dedicated to the study of a number of classical parallel and distributed algorithms. This course includes practical work to train the student in the use of parallel and distributed computing.

Requisiti

  • Procedural and object oriented programming
  • Software engineering (UML or other)
  • Basic notions of algorithms and complexity
  • Basic notions of concurrent programming (Threads)

Obiettivi di apprendimento

At the end of the course the student knows:

  • The most common parallel and distributed hardware infrastructures
  • The different ways to model and efficiently program these architectures
  • How to choose the proper parallel or distributed algorithm to write an application for solving a specific problem on a specific architecture
  • How to efficiently program this application
  • How to assess the performance of this application

Categoria modulo

Introduction

  • Different architectures of parallel and distributed infrastructures 
  • Communications models and communication costs
  • Performance metrics for parallel and distributed systems 
  • Scalability of parallel and distributed systems

Heterogeneous shared memory systems

  • Architecture of widely used multi-core systems
  • Parallel programming models (OpenMP)

Distributed memory systems

  • Communication operations and their costs
  • Message passing paradigm (MPI)
  • Distributed object paradigm

Parallel and distributed algorithms

  • Asymptotic analysis of parallel programs 
  • Decomposition techniques
  • Mapping techniques for load balancing 
  • Matrix-vector and matrix-matrix multiplication
  • Parallel and distributed sorting algorithms
  • Parallel and distributed Graph algorithms

Metodologie di insegnamento e apprendimento

This course involves theoretical presentations and practical exercises or laboratories. Some of the exercises or laboratories are programming exercises that can be done at home by accessing a parallel and distributed infrastructure made available through the internet.

Bibliografia

A. Introduction to Parallel Computing, Zbigniew J. Czech, Cambridge University Press, 2017
B. An Introduction to Parallel Programming, 1st edition, Peter Pacheco , Morgan Kaufmann Publishers Inc, 2011

Scarica il descrittivo completo del modulo

Indietro