91279 - Project Work in Architectures and Platforms for Artificial Intelligence

Academic Year 2020/2021

  • Teaching Mode: Traditional lectures
  • Campus: Bologna
  • Corso: Second cycle degree programme (LM) in Artificial Intelligence (cod. 9063)

Learning outcomes

At the end of the course, the student is able to apply the knowledge acquired in Architectures And Platforms For Artificial Intelligence in order to carry out autonomously a project focusing on a topic agreed upon with the teacher.

Course contents

This course involves the design, development and analysis of a substantial software artifact for a parallel platform of choice (typically C/OpenMP or CUDA/C, although it will be possible to investigate other languages). The software can consist of either the parallelization of some existing program, or the development of a new program to solve some problem. In both cases the topic must be discussed and agreed upon with the instructor.

The technologies that will be used include:

  • Shared-Memory programming with C/OpenMP: basic costeructs, work-sharing costructs, scoping directives
  • GPU programming with CUDA/C: CUDA architecture and memory hierarchy, CUDA/C programming costructs, threads and thread blocks, efficiency considerations
  • Other technologies for parallel programming could also be considered

Readings/Bibliography

  • 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/]
Other references will be provided by the instructor according to specific needs.

Teaching methods

Development of parallel programs under the supervision of the instructor.

Assessment methods

The final exam consists of the development of a parallel program that must be correct and well documented, and must be accompanied by a written report. The final grate will depend on the quality of both the program and the written report.

Teaching tools

Computing resources that might be available for the development of parallel programs.

Technical documentation provided by the instructor, including relevant scientific literature.

Links to further information

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

Office hours

See the website of Moreno Marzolla