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

  • Daniel Jimenez Gonzalez ( )

Others

  • Carlos Alvarez Martinez ( )

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
    IIntroduction: 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
  2. 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
    .
  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 principles of AI problems
    • Introduction to the common operations of DNNs
    • Most common DNN applications
    • Architectures for DNNs
    • Numerical optimizations for DNNs
  6. Practical Cases
    - Parallel programming models - Parallelism and granularity - Parallelism of Blocks - Resolution of dispersed systems
    - DNNs and precision
    - Parallelism in 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. Molecular dynamics
    This consists in a computer simulation of physical movements of atoms and molecules. Cutoff techniques may be important to reduce the computing complexity of this challenge.
  9. Protein-Protein Docking
    This is a method which predicts the preferred orientation of one molecule to a second when bound to each other to form a stable complex. There are serveral approaches that may increase the accuracy but also de complexity ot those methods.
  10. Machine Learning in Bioinformatics
    Machine learning strategies can be applied to bioinformatics challenges. In particular, cluster analysis, or clustering, an unsupervised machine learning task (i.e. k-means), can be applied to a vast variety of different computational biology problems, for compression or summarization of a large dataset.

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. 4. Numerical principles of AI problems • Introduction to the common operations of DNNs • Most common DNN applications • Architectures for DNNs • Numerical optimizations for DNNs
Objectives: 1 2 3
Contents:
Theory
12h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
20h

Numerical: Environment and Brief explanation of the tools to be used



Theory
0h
Problems
0h
Laboratory
2h
Guided learning
2h
Autonomous learning
8h

Numerical: Blocking Parallel Programming. Implementation and analysis.



Theory
0h
Problems
0h
Laboratory
2h
Guided learning
0h
Autonomous learning
2h

Numerical: Blocking parallelization. Medium complexity.



Theory
0h
Problems
0h
Laboratory
2h
Guided learning
0h
Autonomous learning
4h

Numerical: Parallelization of algorithms for solving sparse systems



Theory
0h
Problems
0h
Laboratory
2h
Guided learning
0h
Autonomous learning
14h

Numerical: An Introduction to AI Application Computing Problems



Theory
0h
Problems
0h
Laboratory
2h
Guided learning
0h
Autonomous learning
4h

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
0h

Part II-b) Non-Numerical Applications: Bio-Informatics

Follow the lectures, study the materials and practices.
  • Theory: In the Bioinformatic part we will work with three important challenges: Sequence Alignment, Molecular Dynamics and Protein-Protein Docking. 1) Sequence Alignment: [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. 2) Molecular dynamics: [is a computer simulation of physical movements of atoms and molecules.] Cutoff techniques may be important to reduce the computing complexity of this challenge. 3) Protein-Protein Docking: [is a method which predicts the preferred orientation of one molecule to a second when bound to each other to form a stable complex.] There are serveral approaches that may increase the accuracy but also de complexity ot those methods. 4) Machine Learning in Bioinformatics. Clustering is an unsupervised machine learning task that can be applied to a vast variety of different computational biology problems, for compression or summarization of a large dataset.
  • Autonomous learning: Study the associated contents and work on the assignments.
Objectives: 1 2 3
Contents:
Theory
14h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
20h

Bioinformatics: Analysis and parallelization of a bioinformatic application


  • Laboratory: Profiling anaysis, dependency analysis, and parallelization of the an application using a parallel programming model

Theory
0h
Problems
0h
Laboratory
2h
Guided learning
0h
Autonomous learning
8h

Biorinformatics: Environment and Tools of hardware acceleration



Theory
0h
Problems
0h
Laboratory
2h
Guided learning
0h
Autonomous learning
6h

Bioinformatics: Acceleration of a bioinformatic application



Theory
0h
Problems
0h
Laboratory
6h
Guided learning
0h
Autonomous learning
16h

Deliverable: Assignment on Bio-Informatics

Assignment of the Bio-Informatics module. To be delivered at Racó.
Objectives: 1 2 3
Week: 13
Type: assigment
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 50% each part of the course:

Grade = Numerical Part grade *0.5 + Bioinformatic Part grade * 0.5

Where:

- Each part of the course has few short and partial deliverables (PD) and a final project deliverable (FPD).
- Numerical Part may have a number of partial deliverables (NNP) between 3 and 5.
- Bioinformatic Part may have a number of partial deliverables (NBP) between 2 and 5.

Then:

Numerical Part grade = Sum of(PDi grade*10%) + (100-NNP*10)% * FPD grade
Bioinformatic Part grade = Sum of(PDi grade*10%) + (100-NBP*10)% * FPD grade

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.

Addendum

Contents

THERE ARE NOT CHANGES IN THE CONTENTS REGARDING THE INFORMATION IN THE COURSE GUIDE. In one of the part of the subject, the only change may be the usage or not of boards for the practices. In case that we need to share boards and there are not enough for everybody we will do the practices using a different system.

Teaching methodology

THE COURSE IS PLANNED WITH 100% PRESENTIALITY, SO THERE ARE NOT CHANGES IN THE METHODOLOGY REGARDING THE INFORMATION IN THE COURSE GUIDE.

Evaluation methodology

THERE ARE NOT CHANGES IN THE EVALUATION METHOD REGARDING THE INFORMATION IN THE COURSE GUIDE.

Contingency plan

IF THE COURSE HAS TO BE OFFERED WITH REDUCED PRESENTIALITY OR NOT PRESENTIALLY, THERE WILL BE NOT CHANGES IN THE CONTENTS AND THE EVALUATION METHOD, BUT THE METHODOLOGY WILL BE ADAPTED TO ALLOW FOLLOWING THE COURSE REMOTELY, INCLUDING AMONG OTHERS: * USE THE WIKI AND/OR THE 'RACÓ' TO DOWNLOAD THE SLIDES, EXERCISES, PRACTICAL ASSIGNMENTS, AND OTHER DOCUMENTATION * USE VIDEO AND/OR SCREENCAST MATERIAL FOR ASYNCHRONOUS LECTURES AND PRACTICAL CLASSES * USE VIDEOCONFERENCE FOR SYNCHRONOUS LECTURES AND PRACTICAL CLASSES * USE THE 'RACÓ' FOR ASSIGNMENT SUBMISSIONS * USE MAIL AND/OR THE FORUM FOR ASYNCHRONOUS CONSULTATION * USE CHAT AND/OR VIDEOCONFERENCE FOR SYNCHRONOUS CONSULTATION