Vai al contenuto principale
Foto gruppo

Calcolo parallelo (alpha)

Parallel Computing (alpha)

Componenti

Fotografia

Settore ERC

PE6_2 - Distributed systems, parallel computing, sensor networks, cyber-physical systems

Attività

L’attività del gruppo di ricerca di calcolo parallelo (alpha) è focalizzata sui modelli, i linguaggi e gli strumenti per la programmazione parallela. Per molti anni il calcolo parallelo è stato un argomento di abbastanza di nicchia, assorbito quasi interamente dalle necessità del calcolo ad alte prestazioni (HPC) dove le “prestazioni” sono appunto la ragione d’essere. Prestazioni spesso raggiunte con strumenti di sviluppo molto vicini all’hardware in modo lasciare al programmatore esperto la possibilità di sfruttare configurare e mettere a punto le applicazioni per ogni specifica macchina. Un lavoro artigianale di altissima specializzazione ed altissimo costo. In questo ambito, la complessità intrinseca dello sviluppo del codice parallelo mediante approcci molto vicini alla macchina è stato tradizionalmente considerato il prezzo da pagare per le prestazioni di poche applicazioni in esecuzione su poche macchine.

Ma cambia ciò che è superficiale e anche ciò che è profondo, cambia il modo di pensare, cambia tutto in questo mondo [cit]. Oggi - poco dopo - è solo impossibile trovare un sistema di calcolo che non sia parallelo, dal server al telefonino. Tutti questi sistemi eseguono programmi paralleli e devono essere programmati. Per tutti questi sistemi, la correttezza, la produttività, il costo e il tempo di sviluppo sono aspetti di uguale se non maggiore importanza delle prestazioni assolute. Aspetti di interesse sono la portabilità delle applicazioni su piattaforme diverse, anche eterogenee (multi-core, GPU, cluster, cloud, FPGA, …), la portabilità delle prestazioni del codice parallelo, la progettazione del codice parallelo secondo un modello di costo industriale. Cioè che permetta la produzione di applicazioni di buona qualità a un costo per unità accettabile.

Nel gruppo alpha cerchiamo di inventare, sviluppare e testare le astrazioni e gli artefatti in grado di semplificare lo sviluppo dei programmi paralleli. Cioè, ci occupiamo di modelli di programmazione.

  • High-level development tools and languages for parallel computing
    • Programming models and tools for multi- and many-core: non-blocking multithreading, lock-less and lock-free algorithms
    • Programming models and tools for distributed computing
    • Autonomic computing
  • High-Performance Computing @exascale
    • Parallelization of legacy codes
    • In-transit computing & I/O
  • Deep Learning
    • Federated Learning
    • Distributed training at scale

Più informazioni a Parallel Computing reserach group website e HPC4AI

 

Ultimo aggiornamento: 20/02/2024 17:12
Non cliccare qui!