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).

Register of lectures at

Course material and information

  1. Presentation of MCSN

  2. Course Introduction

  3. Short overview of contents and approach

  4. Background on structuring by levels and modules - updated 24/09

  5. Homework 0

  6. Homework 1

  7. Homework 2

  8. Homework 3

  9. Homework 4

  10. Homework 5

  11. Homework 6

  12. Detailed syllabus for 1st midterm and final exam

  13. 1st midterm: text of the exam and proposed solution

  14. Results of the 1st midterm

  15. Homework 7

  16. Homework 8

  17. 2nd midterm: text of the exam and proposed solution

  18. Results of the 2nd midterm

  19. 1st appello: text of the exam and proposed solution

  20. Results of the 1st appello

  21. 2nd appello: solution

  22. 2nd appello: results

  23. 3rd appello: solution

  24. 3rd appello: results

  25. 4th appello: solution

  26. 4th appello: results

  27. 5th appello: solution

  28. 5th appello: results