Supercomputing for Challenging Applications

You are here

Credits
6
Types
Specialization complementary (High Performance Computing)
Requirements
This subject has not requirements, but it has got previous capacities
Department
AC
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

  1. 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: CEE3.3, CG1, CG3,
  2. The student must be able to design and implement efficient parallel simulation and data processing algorithms using a parallel programing model.
    Related competences: CEC3, CEE4.2, CG1, CG5,
  3. 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

  1. Introduction
    - Introduction: overview
    - The modern scientific method
    - Simulation and optimization
    - HPC vs. HTC
    - Numerical simulations
    - Limits of parallelization
    - Evolution and limits of HPC systems
  2. 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
  3. Direct Solving of Large-Scale Linear Systems of Equations
    - Triangular systems and parallelization
    - Gauss elimination
    - LU factorization
    - Partitioning methods
    - HPL
  4. 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.
  5. Numerical systems practical cases
    - Parallel programming models
    - Parallelism and granularity
    - Block parallelism
    - Sparse systems
  6. ML problems introduction
    - Introduction to the common operations of DNNs
    - Most common DNN applications
    - Architectures for DNNs
    - Optimizations for DNNs
  7. 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.
  8. Practical Cases
    - DNNs and precision
    - Parallelism in DNNs
    - Sequence Alignment algorithms
  9. 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.
  10. 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.
  11. 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.
  12. 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.
Objectives: 1
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.
Objectives: 1 2 3
Contents:
Theory
8h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
10h

Numerical Laboratory



Contents:
Theory
0h
Problems
0h
Laboratory
8h
Guided learning
2h
Autonomous learning
12h

Deliverable: Assignment on Numerical Applications

Assignment for the Numerical Applications part. To be delivered at Racó.
Objectives: 1 2 3
Week: 6
Type: assigment
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.
Objectives: 1 2 3
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

Deliverable: Non-numerical assignment


Objectives: 1 2 3
Week: 10
Type: assigment
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
12h

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

Big Data Laboratory



Contents:
Theory
0h
Problems
0h
Laboratory
6h
Guided learning
0h
Autonomous learning
10h

Big Data assignment


Objectives: 1 2 3
Week: 15
Type: assigment
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
12h

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:

Complementary:

Web links

Previous capacities

Basic understanding of parallel architectures, including shared- and distributed-memory multiprocessor systems.

Useful programming skills of some parallel programming model.