Circuiti e Algoritmi per il Calcolo Distribuito, già Distributed Computing for Circuits and Systems (Laurea Magistrale in Ingegneria Elettronica, Ingegneria delle Comunicazioni)

  • Obiettivi del modulo e capacità acquisite dallo studente. Lo scenario delle tecnologie ICT sta rapidamente evolvendo verso sistemi in cui i dispositivi tecnologici, di diversi tipi e grandezze, costituiscono parte integrante dell’ambiente in cui sono immersi. Scopo dell’insegnamento è fornire le nozioni di base riguardanti le problematiche teoriche, tecniche e pratiche di progettazione e realizzazione di circuiti e algoritmi per la soluzione di problemi avanzati di trattamento dell’informazione, basati sul learning statistico e data-driven, in sistemi di calcolo paralleli e distribuiti. Saranno in tal senso approfondite le tematiche riguardanti le tecnologie basate su sistemi di calcolo GPU e multicore, reti di sensori e attuatori, smart devices, wearable computers, etc. Attraverso un’intensa e sistematica attività pratica e di laboratorio, nel corso saranno considerate le metodologie relative alla progettazione e alla realizzazione di architetture di calcolo parallele e di sistemi di agenti distribuiti, mediante circuiti e algoritmi basati in particolare su intelligenza computazionale, Deep Learning e calcolo quantistico, focalizzando l’attenzione sulla necessità di rendere efficienti tali sistemi sia dal punto di vista della robustezza numerica sia della scalabilità circuitale/computazionale, nonché della fault tolerance e della self-organization.
  • Prerequisiti. Fondamenti di Elettrotecnica, Elettronica, Informatica e Telecomunicazioni.
  • Risultati di apprendimento attesi. Capacità di analisi e soluzione delle problematiche relative a progettazione, realizzazione e test di architetture di calcolo e modelli computazionali, con particolare riferimento allo sviluppo in linguaggio Matlab/Python, per la realizzazione di sistemi di apprendimento in ambienti paralleli e distribuiti.
  • Programma A.A. 2017/2018 (provvisorio)
    • Richiami di circuiti e algoritmi per il trattamento dell’informazione. Generalità sul trattamento dei segnali analogici e digitali, segnali aleatori multi-dimensionali, concetti di teoria della stima, metodo della massima verosimiglianza, stima del minimo errore quadratico medio, metodo della massima probabilità a posteriori, elementi di teoria dell’informazione, metodi di ottimizzazione. Rappresentazione di circuiti digitali mediante grafi e schemi a blocchi, strutture di rete fondamentali per circuiti FIR, IIR e a traliccio. Serie temporali e dinamiche caotiche, circuiti caotici.
    • Introduzione alle tecnologie di calcolo parallele e distribuite. Architetture di calcolo parallelo GPU e multiprocessore nei sistemi a “grana fine”. Virtualizzazione delle risorse in ambienti di calcolo distribuiti, cloud computing. Architetture di comunicazione (WSN, BAN, PAN). Sensori e attuatori: problemi di low-power e low-energy; energy harvesting e self-powering; affidabilità (fault tolerance, fault detection, self-organization). Smart devices per il calcolo distribuito: data loggers e sistemi embedded; smart sensors su dispositivi mobili (smartphones, Tablet PC, etc.); wearable computers.
    • Deep Learning e circuiti quantistici. Sistemi adattivi, stima del gradiente, metodi iterativi, apprendimento Hebbiano, reti di Kohonen e auto-organizzanti, reti dinamiche ricorrenti, reti di Hopfield. Apprendimento e regolarizzazione. Soluzione di problemi di ottimizzazione vincolata multi-obiettivo. Deep Learning. Circuiti analogici e digitali per l’implementazione di reti neurali e per il Deep Learning. Introduzione al calcolo quantistico. Quantum gate e quantum gate array. Algoritmi quantistici per l’ottimizzazione e il trattamento dell’informazione (QFFT, Grover, Schor), Quantum Machine Learning, Quantum Neural Networks. Studi di caso: quantizzazione, classificazione, predizione, approssimazione, interpolazione e filtraggio di dati meccatronici, biologici, energetici, economici e ambientali.
    • Apprendimento su architetture parallele e distribuite. Tecnologie e tecniche di acquisizione dei dati, multiple source data, data pre-processing, circuiti e algoritmi per l’apprendimento scalabile e decentralizzato (consensus learning, ADMM, etc.), Deep Learning distribuito, apprendimento semi-supervisionato distribuito, Machine Learning per l’IoT/IoE, apprendimento multi-agente cooperativo e competitivo,  energy efficient distributed learning, distributed pattern recognition. 
    • Studi di caso in laboratorio. Realizzazione di architetture di filtraggio classiche; implementazione di reti neurali e neurofuzzy; ottimizzazione mediante algoritmi evolutivi; architetture per il Deep Learning; utilizzo di nodi di calcolo e reti di sensori distribuiti basati su tecnologia Raspberry/Arduino/Galileo; programmazione su architetture GPU NVIDIA e multicore Intel.
  • Materiale didattico
    • Appunti e dispense forniti dal docente.
    • Materiale integrativo (lucidi del corso, articoli) disponibili sul sito web.
    • Letture facoltative suggerite:
      • H.T. Kung, R. Sproull, G. Steele, VLSI Systems and Computations, Springer.
      • Principe, N.R. Euliano, W.C. Lefebvre, Neural and Adaptive Systems: Fundamental through simulations, J. Wiley & Sons.
      • B Kosko, Neural Networks and Fuzzy Systems, Prentice-Hall.
      • C. M. Bishop, Neural Network for Pattern Recognition, Oxford University Press.
      • L. Deng, Deep Learning: Methods and Applications, Microsoft Research.
      • E. Ott, Chaos in Dynamical Systems, Cambridge University Press.
      • M. Sipser, Introduction to the Theory of Computation, 3rd Edition.
      • M. Barr, A.J. Massa, Programming embedded systems: with C and GNU development tools, O'Reilly.
      • G. Strang, Linear Algebra and Its Applications, 4th Edition.
    [slide 1-2]    [slide 3-5]    [slide 6-8]    [slide 9-10]    [slide 11-12]    [slide 13]    [script Matlab]    

AVVISOper ogni tipo di comunicazione legata al corso, gli interessati sono pregati di inviarmi una e-mail indicando nell'OGGETTO "Distributed Computing" e nel testo i seguenti dati: nome, cognome e numero di matricola. Cercherò di rispondere al più presto.