Master Program (Laurea Magistrale) in Computer Science and Networking
Academic Year 2014-15
High Performance Computing
Marco Vanneschi, Gabriele Mencagli
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.
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).
Presentation of MCSN
Short overview of contents and approach
Background on structuring by levels and modules - updated 24/09
Detailed syllabus for 1st midterm and final exam
1st midterm: text of the exam and proposed solution
Results of the 1st midterm
2nd midterm: text of the exam and proposed solution
Results of the 2nd midterm
1st appello: text of the exam and proposed solution
Results of the 1st appello
2nd appello: solution
2nd appello: results
3rd appello: solution
3rd appello: results
4th appello: solution
4th appello: results
5th appello: solution
5th appello: results