Skip to main content

Supercomputing for Challenging Applications

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

Others

Weekly hours

Theory
2
Problems
0
Laboratory
2
Guided learning
0.15
Autonomous learning
7.4

Competences

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

  • 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: CG1, CG3, CEE3.3,
    2. 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,
    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
    Theory
    0h
    Problems
    0h
    Laboratory
    0h
    Guided learning
    0h
    Autonomous learning
    0h

    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
    Theory
    0h
    Problems
    0h
    Laboratory
    0h
    Guided learning
    0h
    Autonomous learning
    0h

    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
    Theory
    0h
    Problems
    0h
    Laboratory
    0h
    Guided learning
    0h
    Autonomous learning
    0h

    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.