CdSINFORMATICA E NETWORKING
|HIGH PERFORMANCE COMPUTING||INF/01||LEZIONI||72|
Students are expected to demonstrate a solid knowledge of:
1. fundamental concepts and techniques in parallel computation structuring and design, including parallelization methodologies and paradigms, parallel programming models, their implementation, and related cost models;
2. architectures of high-performance computing systems, including shared-memory multiprocessors, distributed memory multicomputers, clusters, GPUs, and others. To this goal, the student will be aware of structural models, static and dynamic support to computation and programming models, performance evaluation, capability for building complex and heterogeneous applications and/or enabling platforms, technological features and trends (particular multi-/many-core technology and high-performance interconnection networks).
The student must demonstrate the ability to properly correlating the various issues studied in the course in order to deal with problem solving tasks in the definition and design of parallel programs and their runtime support on parallel architectures. The written part will also assess the ability to present a clear report of the solved problem.
- Final oral exam
- Final written exam
- Periodic written exercises (not part of the official exam, but warmly advised to improve the prepartion)
At the end of the course the students will be able to:
1- evaluate different architectural designs of parallel and distributed systems through the application of performance modeling techniques;
2- design parallel applications using a structured methodology supported by cost models and to evaluate the performance achieved on different target execution environments.
During the course some optional homeworks will be assigned to the students (typically on a per-week basis) in order to check the understanding of the presented contents during the lectures.
The course does not have specific objectives in terms of expected behaviors.
The course does not have specific tests to assess the expected behaviors.
The prerequisites of the course are the following:
-Computer Architectures (a basic course of a Bachelor Degree program);
-Algorithms and basic data structures.
Delivery: blended teaching with face-to-face lectures as the basis. Offline recordings of the lectures or, if possible, a simultaneous online streaming in parallel to the face-to-face lectures.
- attending lectures (important!)
- preparation of oral/written report
- participation in discussions
- individual study
Students can find the course material in the Microsoft Teams of the course. Students can subscribe to the Teams (using their UNIPI credentials) with code number lk432vq.
Attendance: Advised (in person or remotely)
- Task-based learning/problem-based learning/inquiry-based learning
1. Review of level structuring, processing modules, firmware architecture, assembler machine, memory hierarchies and caching, processes level and interprocess communication;
2. Methodology for structuring and programming high-performance parallel applications, basic cost models: metrics, elements of queueing theory and queueing networks, load balancing, static and dynamic optimizations;
3. Parallel paradigms: stream-parallel, data-parallel and their compositions;
4. Runtime supports of parallel programs and their optimization;
5. Shared-memory multiprocessors: SMP and NUMA, cost models; interconnection networks and their evaluation, cache coherence;
6. Basic concepts of SIMD and GPUs;
6. Basic concepts of Distributed-Memory Architectures: multicomputers, clusters, distributed heterogeneous platforms.
Marco Vanneschi, "High Performance Computing: Parallel Processing Models and Architectures". Pisa University Press, 2014 (integrated with the errata corrige).
A rich set of slides will be made available to the students during the course on a per week basis.
Offline recordings of the lectures are made available or, if possible, a simultaneous online streaming in parallel to the face-to-face lectures may be provided and available in Microsoft Teams. Students can subscribe to the Microsoft Teams of the course (using their UNIPI credentials) with code number lk432vq.
The exam consists in a written and in an oral part. In special circumstances (e.g., few students attending the course), the oral and written exam can be merged into a single, longer oral exam.