This course aims at providing theoretical and practical knowledge about programming and analysis of advanced computational architectures, with emphasis on multiprocessor and GPU platforms.
At the end of the course the student will have to demonstrate the ability to apply the knowledge necessary to: identify techniques for parallel programming, also in a research context, through analysis of application efficiency and by considering functional and non-functional design constraints (correctness, performance, energy consumption); analyze performance and to perform code profiling, by identifying critical zone and the corresponding optimizations by considering the architectural characteristics of the platform; demonstrate ability to compare parallel patterns and to select the best one by considering the use case. By defining the structure of the optimized code, the student will have to demonstrate the ability to identify the proper architectural choices, by considering the target application and platform contexts. Finally, the student will have to demonstrate the ability to be able to continue the study autonomously in the field of the parallel programming languages and of the Software development for parallel embedded platforms.
Intro High-performance computing (HPC)
Parallel programming models
HPC and Symmetric Multi-Processors (SMP): OpenMP
HPC and Message Passing Interface (MPI): OpenMPI
Graphic Processing Units (GPUs): overview, parallel programming model, threads, memory model.
GPU performance considerations
GPU data transfers and streams.
Parallel graph algorithms for GPUs: BFS and SSSP
OpenCL and OpenACC
Modeling for qualitative simulation in Systems Biology targeting HPC
R parallel pack
Qualitative modelling lab.
|John L. Hennessy, David A. Patterson||Computer Architecture - A Quantitative Approach (Edizione 5)||Morgan Kaufmann||2011||012383872X|
|David B. Kirk, Wen-mei W. Hwu||Programming Massively Parallel Processors - A Hands-on Approach (Edizione 3)||Morgan Kaufmann||2017||978-0-12-811986-0|
The exam consists of a project agreed upon with the teacher after request by email and appointment for the elaboration of the specifications (the project is valid throughout the academic year). The projects have different levels of difficulty. Every difficulty corresponds to a maximum evaluation value. Students will hold an interview to comment the project
Attendees at the course will be able to expose to the class their project, the research context in which the project is located, and the state of progress of the course.
Voting for the project (project_mark) is expressed in thirty.
The final vote is calculated as min(31, (project_mark + Bias)).
Bias is expressed in the interval [-4, + 4] and reflects the maturation and scientific autonomy acquired during the development of the project, in the exposure and in the interpretation of the scientific literature and the scientific context of the project.