Checking date: 01/07/2021

Course: 2021/2022

High-Performance Computing
Study: Master in Applied and Computational Mathematics (372)


Department assigned to the subject: Department of Computer Science and Engineering

Type: Electives
ECTS Credits: 6.0 ECTS


- 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. - 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. - 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. GENERAL COMPETENCES: CG1, CG2, CG3, CG5, CG6, CG7 CORE COMPETENCES: CB6, CB7, CB9, CB10 SPECIFIC COMPETENCES: CE5, CE6, CE9, CE10, CE11
Skills and learning outcomes
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
LEARNING ACTIVITIES AF1 - Theoretical class [23.33 hours with 100% attendance, 0.77 ECTS] AF2 - Practical classes [11.90 hours with 100% attendance, 0.50 ECTS]. AF4 - Laboratory exercises [10 hours with 100% attendance, 0.33 ECTS] AF5 - Tutorials [2 hours with 25% attendance, 0.03 ECTS]. AF6 - Group work [24 hours with 0% attendance, 1.70 ECTS]. AF7 - Individual student work [76.70 hours with 0% attendance, 2.55 ECTS]. AF8 - Partial and final exams [2 hours with 100% attendance, 0.06 ECTS]. METHODOLOGY MD1 - Class lectures by the professor with the support of computer and audiovisual media, in which the main concepts are developed. and audio-visual means, in which the main concepts of the subject are developed the subject and the bibliography is provided to complement the students' learning. students' learning. MD2 - Critical reading of texts recommended by the professor of the subject: press articles subject: Press articles, reports, manuals and/or academic articles, either for later discussion in class, or to expand and consolidate the knowledge of the subject. consolidate the knowledge of the subject. MD3 - Resolution of practical cases, problems, etc. .... posed by the teacher individually or in groups. teacher individually or in groups. MD4 - Presentation and discussion in class, under the moderation of the teacher of topics related to the content of the subject, as well as case studies. case studies. MD5 - Preparation of papers and reports individually or in groups.
Assessment System
  • % end-of-term-examination 40
  • % of continuous assessment (assigments, laboratory, practicals...) 60
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. 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: