|SCIENTIFIC DISCIPLINARY SECTOR||INF/01|
The aim of this course is to provide basic knowledge on the architecture of parallel processing systems, along with a minimum of programming skills essential to using such systems. As far as the programming part is concerned, the emphasis is on parallel message-passing programming using MPI, but the OpenMP shared memory paradigm is also practiced. GPU architecture is presented, and GPU programming with OpenCL is practiced. Architectural aspects of large-scale computing platforms are presented.
Learning the main aspects of modern high-performance computing systems (pipeline/superscalar processors,shared-memory/message-passing multiprocessors, vector processors, GPUs) and basic programming skills for high-performance computing (cache optimization, OpenMP, MPI, OpenCL).
Basic knowledge of computer architecture, fair programming skills.
Lessons, practicals, individual study with textbooks
John Hennessy, David Patterson: Computer architecture: a quantitative approach (fifth edition), Morgan Kaufmann.
Here is the online version of Jan Foster's book: Designing and Building Parallel Programs, Addison Wesley.
Slides, tutorials, and code samples, that can be found on Aulaweb, integrate but do not replace the textbooks.
DANIELE D'AGOSTINO (President)
GIORGIO DELZANNO (President Substitute)
NICOLETTA NOCETI (Substitute)
All class schedules are posted on the EasyAcademy portal.
The exam consists of a written essay on topics of the course suggested by the instructor. The evaluation takes into account the work done during the practicals. Those who do not participate in the practicals shall take an additional practical test on parallel programming.
More info at http://www.disi.unige.it/person/CiaccioG/hpc.html