This course covers the exploitation of supercomputing for a variety of scientific and engineering applications. The contents span several application domains both in the numerical and the non-numerical areas.
Teachers
Person in charge
Carlos Alvarez Martinez (
)
Others
Daniel Jimenez Gonzalez (
)
Josep Larriba Pey (
)
Josep Ramon Herrero Zaragoza (
)
Weekly hours
Theory
2
Problems
0
Laboratory
2
Guided learning
0.15
Autonomous learning
7.4
Competences
Technical Competences of each Specialization
Advanced computing
CEE3.3 - Capability to understand the computational requirements of problems from non-informatics disciplines and to make significant contributions in multidisciplinary teams that use computing.
High performance computing
CEE4.2 - Capability to analyze, evaluate, design and optimize software considering the architecture and to propose new optimization techniques.
Specific
CEC3 - Ability to apply innovative solutions and make progress in the knowledge that exploit the new paradigms of Informatics, particularly in distributed environments.
Generic Technical Competences
Generic
CG1 - Capability to apply the scientific method to study and analyse of phenomena and systems in any area of Computer Science, and in the conception, design and implementation of innovative and original solutions.
CG3 - Capacity for mathematical modeling, calculation and experimental designing in technology and companies engineering centers, particularly in research and innovation in all areas of Computer Science.
CG5 - Capability to apply innovative solutions and make progress in the knowledge to exploit the new paradigms of computing, particularly in distributed environments.
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
ActivityEvaluation 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.
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.
Assignment for the Numerical Applications part. To be delivered at Racó. Objectives:123 Week:
6
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
0h
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.
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.
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).