Master Program (Laurea Magistrale) in Computer Science and Networking
Academic Year 2014-15
High Performance Computing
Marco Vanneschi, Gabriele Mencagli
Course objectives
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.
Attending and studying this course requires proper background knowledge in Structured Computer Architecture. Appendix of the text book contains a detailed review of basic concepts and techniques in Structured Computer Architecture according to the approach and treatment at the Computer Science Department of the University of Pisa.
Course outline
Part 1: Structuring and Design Methodology for Parallel Applications
Structured parallelism at applications and process levels, Cost models, Impact of communications, Parallel computations as queueing systems / queueing networks, Parallel paradigms: Pipeline, Data-flow, Farm, Function partitioning, Data parallel, Parallel systems at the firmware level: Instruction level parallelism: Pipeline, superscalar, multithreaded CPUs; SIMD architectures and GPUs
Part 2: Parallel Architectures
Shared memory multiprocessors: SMP and NUMA architectures, Distributed memory multicomputers: Clusters and MPP architectures, Run-time support to interprocess communication, Interconnection networks, Performance evaluation, Multicore architectures
M. Vanneschi, High Performance Computing: Parallel Processing Models and Architectures. Pisa University Press, 2014.
The book is distributed free to the students of 2014-15 AY, and of past AYs (until there are available copies).
Background on structuring by levels and modules - updated 24/09