corso |
Codice: | 304AA | Crediti: | 6 | Semestre: | 1 | Sigla: | SPA | |
Settore disciplinare: | INF/01 - Informatica |
HIGH-PERFORMANCE COMPUTING SYSTEMS AND ENABLING PLATFORMS
Detailed topics, teaching material, and exam modalities are described in my personal page, indicated below.
Abstract:
This course deals with two interrelated issues in high-performance computing:
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, and others.
Both issues are studied in terms of structural model, static and dynamic support to computation and programming models, performance evaluation, capability for building complex and heterogeneous applications and/or enabling platforms, also through examples of application cases. Technological features and trends are studied, in particular multi-/many-core technology and high-performance networks.
A Precourse is dedicated to review basic concepts and techniques in structured computer architecture, in order to render the different backgrounds of students as uniform as possible.
Syllabus
1. 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
2. Parallel paradigms: stream-parallel (pipeline, data-flow, farm, divide and conquer, functional partitioning), data-parallel (map, fixed and variable stencils, reduce, prefix), and their compositions
3. Cooperation mechanisms: dedicated and collective communications, shared objects, compiling tools, run-time supports and their optimization
4. Shared memory multiprocessors: SMP and NUMA, cost models; interconnection networks and their evaluation: indirect and multistage networks, direct and cube networks, fat tree, on-chip networks
5. Distributed memory architectures: multicomputers, clusters, distributed heterogeneous platforms, high-performance communication networks
6. Advanced research and/or technological issues: multi-/many-core, multithreading simd/vectorization/gpu, pervasive high-performance computing.
Ore lezione: | 48 | Ore esercitazione: | 20 |
Marco Vanneschi, High Performance Computing Systems and Enabling Platforms. Course Notes.