- Teacher: ALESSANDRO BOCCI
- Teacher: ANTONIO BROGI
- Teacher: STEFANO FORTI
- Teacher: ANDREA FRANCESCHI
- Teacher: MARCO GAGLIANESE
Le moderne infrastrutture IT sono costruite come sistemi distribuiti, un concetto entusiasmante che è iniziato con i primi computer e si è evoluto rapidamente nella sua forma attuale. Dalle riunioni video online ai servizi Internet e dalle piattaforme di social media ai giochi online, tutti usiamo e interagiamo quotidianamente con sistemi distribuiti e dipendiamo sempre più da essi. Tuttavia, la progettazione e la gestione di tali sistemi distribuiti su larga scala è complessa e in genere richiede compromessi ragionevoli. Il corso introduce gli studenti al paradigma, alle tecniche e alle tecnologie per la progettazione e lo sviluppo di applicazioni distribuite scalabili sfruttando piattaforme abilitanti appropriate.
L'accento sarà posto sulle tecniche per la creazione di sistemi distribuiti funzionali, utilizzabili e scalabili. Questo corso fornisce una comprensione approfondita dei principi e dei modelli fondamentali alla base della teoria e degli aspetti sistemici del calcolo distribuito. Nel corso, gli studenti esploreranno le questioni chiave nella progettazione e implementazione di applicazioni distribuite scalabili e reattive, e impareranno come affrontare correttamente tali questioni e come affrontare le sfide comuni per i sistemi distribuiti, come prestazioni, resilienza e scalabilità.
Il corso introduce il linguaggio Scala e come può essere sfruttato per implementare applicazioni distribuite efficienti e scalabili utilizzando framework come Spark (insieme ad alcune delle sue estensioni) e Akka.
- Teacher: PATRIZIO DAZZI
Problemi computazionali quali l'analisi di grafi, networks e reti
complesse, lo studio di un modello evolutivo e la discretizzazione di
un problema differenziale richiedono l'utilizzo di metodi numerici
avanzati per il trattamento di matrici sparse e/o strutturate di grosse
dimensioni capaci di adattarsi ad ambienti di calcolo distribuito.
Il corso si rivolge a queste tematiche con i seguenti obiettivi:
a)
introduzione di metodi numerici iterativi per la risoluzione di sistemi
lineari ed il calcolo di autovalori di matrici di grosse dimensioni
sparse e/o strutturate; b) analisi di schemi efficienti di vettorizzazione e parallelizzazione di algoritmi numerici
classici; c) metodi per il trattamento di matrici sparse basati su
tecniche di riordinamento per matrici di adiacenza di grafi.
In particolare il corso per l'anno corrente intende trattare gli aspetti
teorici e computazionali inerenti la progettazione e l'implementazione di metodi efficienti per l'approssimazione di autovalori/autovettori di matrici strutturate e/o "data-sparse" di grandi dimensioni.
- Teacher: LUCA GEMIGNANI
Problemi computazionali quali l'analisi di grafi, networks e reti
complesse, lo studio di un modello evolutivo e la discretizzazione di
un problema differenziale richiedono l'utilizzo di metodi numerici
avanzati per il trattamento di matrici sparse e/o strutturate di grosse
dimensioni capaci di adattarsi ad ambienti di calcolo distribuito.
Il corso si rivolge a queste tematiche con i seguenti obiettivi:
a)
introduzione di metodi numerici iterativi per la risoluzione di sistemi
lineari ed il calcolo di autovalori di matrici di grosse dimensioni
sparse e/o strutturate; b) analisi di schemi efficienti di vettorizzazione e parallelizzazione di algoritmi numerici
classici; c) metodi per il trattamento di matrici sparse basati su
tecniche di riordinamento per matrici di adiacenza di grafi.
In particolare il corso per l'anno corrente intende trattare gli aspetti teorici e computazionali inerenti la progettazione e l'implementazione delle tecniche multisplitting sincrone ed asincrone per la risoluzione iterativa di sistemi lineari.
- Teacher: LUCA GEMIGNANI