91279 - PROJECT WORK IN ARCHITECTURES AND PLATFORMS FOR ARTIFICIAL INTELLIGENCE

Anno Accademico 2020/2021

  • Docente: Moreno Marzolla
  • Crediti formativi: 3
  • Lingua di insegnamento: Inglese
  • Modalità didattica: Convenzionale - Lezioni in presenza
  • Campus: Bologna
  • Corso: Laurea Magistrale in Artificial intelligence (cod. 9063)

Conoscenze e abilità da conseguire

Al termine dell’attività formativa, lo studente è in grado di applicare le conoscenze acquisite nel corso Architectures And Platforms For Artificial Intelligence per lo svolgimento in autonomia di un'attività di approfondimento su un argomento concordato con il docente titolare dell’insegnamento.

Contenuti

Questo corso riguarda la progettazione, realizzazione e analisi di un artefatto software significativo e rilevante su una piattaforma parallela a scelta (tipicamente C/OpenMP oppure CUDA/C, ma sarà possibile utilizzare anche altri sistemi paralleli). Il programma realizzato in questo corso può consistere nella parallelizzazione di un software esistente, oppure nella realizzazione di un software ex-novo. In entrambi i casi l'argomento deve essere preventivamente discusso, e approvato dal docente.

Le tecnologie che verranno impiegate includono:

  • Programmazione parallela con C/OpenMP: costrutti di base, costrutti per work-sharing, scoping delle variabili
  • Programmazione di GPU mediante CUDA/C: architettura e organizzazione della memoria in CUDA/C, costrutti di programmazione, thread e thread block, considerazioni sull'efficienza di programmi CUDA/C
  • Sarà possibile considerare anche altre tecnologie per il calcolo parallelo

Testi/Bibliografia

  • Peter Pacheco, An Introduction to Parallel Programming , Morgan Kaufmann, 2011, ISBN 978-0123742605
  • CUDA C programming guide [http://docs.nvidia.com/cuda/cuda-c-programming-guide/]

Altri riferimenti potranno essere forniti dal docente in base a specifiche esigenze connesse all'applicazione da realizzare.

Metodi didattici

Programmazione di applicazioni parallele sotto la supervisione del docente.

Modalità di verifica e valutazione dell'apprendimento

Per il superamento del corso sarà necessario sviluppare un programma parallelo, testato e ben documentato, accompagnato da una relazione scritta. La valutazione finale, espressa in trentesimi, terrà conto della qualità del programma realizzato e della relazione.

Strumenti a supporto della didattica

Risorse hardware eventualmente disponibili per lo sviluppo di programmi paralleli.

Documentazione fornita dal docente, inclusa letteratura scientifica rilevante.


Link ad altre eventuali informazioni

https://www.moreno.marzolla.name/teaching/APAI/

Orario di ricevimento

Consulta il sito web di Moreno Marzolla