Checking date: 30/06/2021

Course: 2024/2025

High Performance Computing
Master in Computer Science and Technology (Plan: 462 - Estudio: 71)


Department assigned to the subject: Computer Science and Engineering Department

Type: Electives
ECTS Credits: 6.0 ECTS


Requirements (Subjects that are assumed to be known)
Operating Systems computer Architecture
CORE COMPETENCES - Possess and understand knowledge that provides a basis or opportunity to be original in the development and/or application of ideas, often in a research context. - Students are able to apply their acquired knowledge and problem-solving skills in new or unfamiliar environments within broader (or multidisciplinary) contexts related to their area of study. - Students should be able to communicate their findings and the ultimate knowledge and reasons behind them to specialist and non-specialist audiences in a clear and unambiguous manner. - That students possess the learning skills that will enable them to continue studying in a largely self-directed or autonomous manner. GENERAL SKILLS - Ability to project, calculate, and design products, processes and installations in all areas of computer engineering. - Capacity for mathematical modelling, calculation and simulation in technology and engineering centres, particularly in research, development and innovation tasks in all areas related to Computer Engineering and related multidisciplinary fields. - Ability to apply acquired knowledge and solve problems in new or unfamiliar environments within broader and more multidisciplinary contexts, with the capacity to integrate knowledge. - Ability to communicate (orally and in writing) conclusions - and the ultimate knowledge and reasons behind them - to specialised and non-specialised audiences in a clear and unambiguous way. - Capacity for continuous, self-directed and autonomous learning. SPECIFIC COMPETENCES - Ability to design and evaluate operating systems and servers, and applications and systems based on distributed computing. - Ability to understand and apply advanced knowledge of high-performance computing and numerical or computational methods to engineering problems.
Description of contents: programme
1. Principles of high-performance computing 1.1 Definition of high-performance systems 1.2 Definition of a computation cluster 2. Design and analysis of high performance applications. 2.1 Modeling of parallel applications 2.2 Application parallelization methodology 3. Parallel Programming Paradigms: Message Passage, Shared Memory, Data Parallelism 3.1 Message Passing (MPI) 3.2 Programming in shared memory systems (OpenMP) 3.3 Parallelism in Heterogeneous GPGPU Systems (CUDA) 4. Data parallelism using Big Data techniques 4.1 Map-Reduce Programming Paradigm 4.2 Storage systems for data intensive systems (HDFS and HBASE) 4.3 Hadoop Apache 4.4 Apache Spark 5. Performance analysis, evaluation and optimization of applications. 5.1 Performance metrics 5.2 Amdahl's Law
Learning activities and methodology
EDUCATIONAL ACTIVITIES Theoretical class Practical classes Tutorials Group work Individual student work Partial and final exams TEACHING METHODS - Teacher's classroom exhibitions with computer and audiovisual support, in which the main concepts of the subject are developed and the bibliography is provided to complement the students' learning. - Resolution of practical cases, problems, etc... posed by the teacher individually or in groups. - Preparation of papers and reports individually or in groups.
Assessment System
  • % end-of-term-examination 50
  • % of continuous assessment (assigments, laboratory, practicals...) 50
Calendar of Continuous assessment
Basic Bibliography
  • D. Kirk, W. Hwo.. Programming Massively Parallel Processors: A Hands-on Approach. Morgan Kaufmann. 2010
  • D.E. Culler, J.P. Singh, with A. Gupta.. Parallel Computer Architectures: a Hardware/Software Approach. Morgan Kaufmann Pub. 1999
  • Holden Karau, Andy Konwinski, Patrick Wendell & Matei Zaharia. Learning Spark. O Reilly. 2015
  • Martin Odersky, Lex Spoon, Bil Venners. Programming in Scala. Artima.

The course syllabus may change due academic events or other reasons.

More information: