Credits
6
Types
Specialization complementary (High Performance Computing)
Requirements
This subject has not requirements
, but it has got previous capacities
Department
AC
Teachers
Person in charge
- Carlos Alvarez Martinez ( calvarez@ac.upc.edu )
Others
- Daniel Jimenez Gonzalez ( djimenez@ac.upc.edu )
- Josep Larriba Pey ( larri@ac.upc.edu )
- Josep Ramon Herrero Zaragoza ( josepr@ac.upc.edu )
Weekly hours
Theory
2
Problems
0
Laboratory
2
Guided learning
0.15
Autonomous learning
7.4
Competences
Advanced computing
High performance computing
Specific
Generic
Objectives
-
The student should be able to understand the complexity of different algorithms, identify the computationally intensive parts of a simulation or data processing, and decide which parts need to be optimized and parallelized.
Related competences: CG1, CG3, CEE3.3, -
The student must be able to design and implement efficient parallel simulation and data processing algorithms using a parallel programing model.
Related competences: CG1, CEE4.2, CEC3, CG5, -
The student must be able to evaluate the different tradeoffs (robustness, computational cost, scalability) in order to select a specific algorithm for a simulation or data processing problem
Related competences: CG1, CEE3.3,
Contents
-
Introduction
- Introduction: overview
- The modern scientific method
- Simulation and optimization
- HPC vs. HTC
- Numerical simulations
- Limits of parallelization
- Evolution and limits of HPC systems -
Introduction to Numerical Simulations
- From Models to Algorithms
- Discretization and PDEs
- Types of PDEs: Elliptic, Parabolic, Hyperbolic
- From problem to math and solution
- Numerical schemes: Explicit vs. Implicit
- Finite differences and Finite Elements -
Direct Solving of Large-Scale Linear Systems of Equations
- Triangular systems and parallelization
- Gauss elimination
- LU factorization
- Partitioning methods
- HPL -
Iterative Solving of Large-Scale Linear Systems of Equations
- Direct vs iterative methods
- Jacobi
- Parallelization of iterative methods
- Gauss-Seidel and SOR
- Krylov methods and preconditioning: HPCG
- Software for numerical methods: BLAS, LAPACK, etc. -
Numerical systems practical cases
- Parallel programming models
- Parallelism and granularity
- Block parallelism
- Sparse systems -
ML problems introduction
- Introduction to the common operations of DNNs
- Most common DNN applications
- Architectures for DNNs
- Optimizations for DNNs -
Sequence Alignment
This is a way of arranging the sequences of DNA, RNA, or protein to identify regions of similarity that may be a consequence of functional, structural, or evolutionary relationships between the sequences.
Search, scoring and parallel strategies are important to overcome this challenge. -
Practical Cases
- DNNs and precision
- Parallelism in DNNs
- Sequence Alignment algorithms -
Introduction to the kernel of DBMSs and the execution of queries in such systems
This topic has the objective to understand the different software layers of a DBMS and how they interact, the different complexities that they incarnate and how their interaction determines the performance of such DBMSs. -
Big data kernels and graph databases
This session has the objective to introduce the students to the design of such Big-data and graph database systems, how they are built and how their performance is influenced by the structure of their different software layers. -
Benchmarking for Databases
Benchmarking is one of the most important issues in Database design and evolution. This part of the course will be designed to understand the different efforts being carried in benchmarking from the USA and Europe for relational and graph databases. -
Big Data practical cases
Big Data practical cases
Activities
Activity Evaluation act
Introduction
Follow the lectures, study the materials and practices.- Theory: Introduction: overview The modern scientific method Simulation and optimization HPC vs. HTC Numerical simulations HPC = Algorithms + Architecture + Programming Model Limits of parallelization Evolution and limits of HPC systems
- Autonomous learning: Study the associated contents and work on the assignments.
Contents:
Theory
2h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
0h
Part I: Numerical Applications
Follow the lectures, study the materials and practices.- Theory: 1. Introduction to Numerical Simulations - From Models to Algorithms - Discretization and PDEs - Types of PDEs: Elliptic, Parabolic, Hyperbolic - From problem to math and solution - Initial-value and Boundary-value Problems - Numerical schemes: Explicit vs. Implicit - Finite differences and Finite Elements 2. Direct Solving of Large-Scale Linear Systems of Equations - Triangular systems and parallelization - Gauss elimination - LU factorization - Partitioning methods - HPL 3. Iterative Solving of Large-Scale Linear Systems of Equations - Direct vs iterative methods - Jacobi - Parallelization of iterative methods - Gauss-Seidel and SOR - Krylov methods and preconditioning: HPCG - Software for numerical methods: BLAS, LAPACK, etc.
Contents:
Theory
8h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
10h
Theory
0h
Problems
0h
Laboratory
8h
Guided learning
2h
Autonomous learning
12h
Part II: Non-Numerical Applications: ML & Bio-Informatics
Follow the lectures, study the materials and practices.- Theory: Principles of AI problems - Introduction to the common operations of DNNs - Most common DNN applications - Architectures for DNNs - Optimizations for DNNs Sequence Alignment
- Autonomous learning: Study the associated contents and work on the assignments.
Contents:
Theory
10h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
10h
Non numerical applications laboratory
- Laboratory: Profiling anaysis, dependency analysis, and parallelization of the an application using a parallel programming model
Contents:
Theory
0h
Problems
0h
Laboratory
6h
Guided learning
0h
Autonomous learning
10h
Part III: Big Data problems
Follow the lectures, study the materials and practices.- Theory: Introduction to the kernel of DBMSs and the execution of queries in such systems Big data kernels and graph databases Benchmarking for Databases
- Autonomous learning: Study the associated contents and work on the assignments.
Contents:
Theory
10h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
10h
Theory
0h
Problems
0h
Laboratory
6h
Guided learning
0h
Autonomous learning
10h
Teaching methodology
During the course there will be two types of activities:a) Activities focused on the acquisition of theoretical knowledge.
b) Activities focused on the acquisition of knowledge through experimentation by implementing and evaluating empirically in the laboratory the mechanisms explained at a theoretical level.
The theoretical activities include participatory lecture classes, which explain the basic contents of the course. The practical activities include seminar laboratories using the student's laptop in class, where students implement the mechanisms described in the lectures. The seminars require a preparation by reading the statement and supporting documentation, and a further elaboration of the conclusions in a report.
Evaluation methodology
The course will be evaluated with a partial grade for each content part (Numerics, No numerics and Big Data). Each part has the same weight in the final grade:Grade = A1/3 + A2/3 + A3/3
Where
Ai := Grade from part i (i from 1 to 3)
and
- Each part of the course has few short and partial deliverables (PD) and a final project deliverable (FPD).
Bibliography
Basic
-
Finite element analysis: from concepts to applications
- Burnett, D.S,
Addison-Wesley,
1987.
ISBN: 0201108062
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991000069979706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Numerical methods for engineers
- Chapra, S.C.; Canale, R.P,
McGraw-Hill,
2021.
ISBN: 9781260571387
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991004208719706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Iterative methods for sparse linear systems
- Saad, Y,
SIAM,
2003.
ISBN: 0898715342
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991002605179706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Parallel programming in C with MPI and OpenMP
- Quinn, M.J,
McGraw-Hill,
2003.
ISBN: 0071232656
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991002614899706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
A multigrid tutorial
- Briggs, W.L.; Henson, V.E.; McCormick, S.F,
Society for Industrial and Applied Mathematics,
2000.
ISBN: 0898714621
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991002338889706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
The ten most wanted solutions in protein bioinformatics
- Tramontano, A,
Chapman and Hall/CRC,
2005.
ISBN: 1584884916
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991004001559706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Transaction processing: concepts and techniques
- Gray, J.; Reuter, A,
Morgan Kaufmann,
1993.
ISBN: 1558601902
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991000768969706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Analyzing network data in biology and medicine: an interdisciplinary textbook for biological, medical and computational scientists
- Pržulj, N,
Cambridge University Press,
2019.
ISBN: 9781108432238
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991005261349406711&context=L&vid=34CSUC_UPC:VU1&lang=ca
Complementary
-
Higher-order numerical methods for transient wave equations
- Cohen, G.C,
Springer,
2001.
ISBN: 354041598X
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991002428189706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Full seismic waveform modelling and inversion
- Fichtner, A,
Springer,
2011.
ISBN: 9783642158063
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991003948259706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
An introduction to multigrid methods
- Wesseling, P,
Edwards,
2004.
ISBN: 1930217080
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991004000329706711&context=L&vid=34CSUC_UPC:VU1&lang=ca
Web links
- Mesh partitioner software http://glaros.dtc.umn.edu/gkhome/views/metis/
- OpenMP http://openmp.org/
- MGNet http://www.mgnet.org/
- Freely Available Software for Linear Algebra http://www.netlib.org/utk/people/JackDongarra/la-sw.html
- MPI library http://www.open-mpi.org/
Previous capacities
Basic understanding of parallel architectures, including shared- and distributed-memory multiprocessor systems.Useful programming skills of some parallel programming model.