Scheda programma d'esame
HIGH PERFORMANCE COMPUTING
GABRIELE MENCAGLI
Academic year2016/17
CourseCOMPUTER SCIENCE AND NETWORKING
Code532AA
Credits9
PeriodSemester 1
LanguageEnglish

ModulesAreaTypeHoursTeacher(s)
HIGH PERFORMANCE COMPUTINGINF/01LEZIONI72
GABRIELE MENCAGLI unimap
Obiettivi di apprendimento
Learning outcomes
Conoscenze

Parallel Processing Methodologies

Shared-memory Parallel Architectures

Distributed-memory Architectures

Interconnection networks (basics)

Cost models and methodologies for performance evaluation

Knowledge
Students are expected to demonstrate a solid knowledge of: 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. To this goal, the student will be aware 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, technological features and trends (particular multi-/many-core technology and high-performance networks).
Modalità di verifica delle conoscenze

Homeworks during the course (optional), written and oral exam.

Assessment criteria of knowledge
The student must demonstrate the ability to properly correlating the various issues studied in the course in order to deal with problem solving tasks in the definition and design of parallel programs and their run-time support on parallel architectures. The written part will also assess the ability to present a clear report of the solved problem.

Methods:

  • Final oral exam
  • Final written exam
  • Periodic written tests

Further information:
Two midterms are provided: if taken with sufficient rating, they replace the written part of the exam.

Capacità

Ability to model, analyze and implement parallel processing systems at any level, both processes and their run-time support implementations, and firmware (knowledge about the behavior of HPC-enabling platforms).

Modalità di verifica delle capacità

Homeworks during the course (optional), written and oral exam.

Prerequisiti (conoscenze iniziali)

The needed background in Computer Architecture includes basic concepts in  system level structuring, modularity  and  parallelism design  principles, hardware  and firmware  machine  level,  assembler machine level, processes and their run-time support, communication, operating systems functionalities, input-output,  memory  hierarchies  and  caching,  instruction  level  parallelism,  optimizing  compilers.  In the  University  of  Pisa  such  concepts  and  techniques  are studied  according  to  a  Structured  Computer Architecture  approach  and  stressing  the  issues  of  performance  evaluation,  cost  model  and  design techniques. This required background is contained in the following recommended reading:

M. Vanneschi, Structured   Computer   Architecture Background:   Appendix of   the High Performance  Computing course textbook High  Performance  Computing –Parallel Processing Models  and  Architectures, by M.  Vanneschi. This Appendix has been ad-hoc written  for Computer  Science  and  Networking students, and are based on the Italian book “Architettura degli Elaboratori”, Pisa University Press.

Teaching methods

Delivery: face to face

Learning activities:

  • attending lectures
  • preparation of oral/written report
  • participation in discussions
  • individual study

Attendance: Advised

Teaching methods:

  • Lectures
  • Seminar
  • Task-based learning/problem-based learning/inquiry-based learning

Programma (contenuti dell'insegnamento)

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: the course is structured into two parts:

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;

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 and multicore architectures.

Syllabus
1.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 , data-parallel 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 6.Distributed memory architectures: multicomputers, clusters, distributed heterogeneous platforms.
Bibliografia e materiale didattico

Text book: M. Vanneschi, High Performance Computing: Parallel Processing Models and Architectures. Pisa University Press, 2014.

Bibliography
Marco Vanneschi, "High Performance Computing: Parallel Processing Models and Architectures". Pisa University Press, 2014. Note: the book is distributed free to the enrolled students.
Modalità d'esame

Written and oral exam

Work placement
Yes
Updated: 14/11/2016 17:27