corso |
Codice: | 532AA | Crediti: | 9 | Semestre: | 1 | Sigla: | HPC | |
Settore disciplinare: | INF/01 - Informatica |
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.
An initial part 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. A structured computer architecture primer: review of level structuring, processing modules, firmware architecture, assembler machine, memory hierarchies and caching, process 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 (pipeline, data-flow, farm, divide and conquer, functional partitioning), data-parallel (map, fixed and variable stencils, reduce, prefix), and their compositions 4. Run-time supports of parallel programs and their optimization 5. 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 6. Distributed memory architectures: multicomputers, clusters, distributed heterogeneous platforms, high-performance communication networks 7. Advanced research and/or technological issues: multi-/many-core, multithreading simd/vectorization/gpu, pervasive high-performance computing.
Ore lezione: | 72 |