Checking date: 01/07/2021

Course: 2021/2022

High Performance Computing
Study: Master in Computer Engineering (228)


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

Type: Compulsory
ECTS Credits: 6.0 ECTS


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 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 and the academic weekly planning may change due academic events or other reasons.

More information: