Hybrid Monte Carlo Method for Matrix Computation on P100 GPUs

Hybrid Monte Carlo Method for Matrix Computation on P100 GPUs

Project reference: 1701

The focus of this project will be on  enhancing further hybrid (e.g. stochastic/ deterministic) method for Linear Algebra. The focus is on Monte Carlo and quasi-Monte Carlo hybrid methods and algorithms for matrix inversion and solving systems of linear algebraic equations. Recent development s led to efficient approaches  based on bulding an efficient stochastic preconditioner and then solving the corresponding System of Linear Algebraic Equations (SLAE) by applying an iterative method. Thepreconditioner is a Monte Carlo preconditioner based on Markov Chain Monte Carlo (MCMC) methods to compute a rough approximate matrix inverse first. The above Monte Carlo preconditioner is further used to solve systems of linear algebraic equations thus delivering hybrid stochastic/deterministic algorithms. The advantage of the proposed approach is that the sparse Monte Carlo matrix inversion has a computational complexity linear of the size of the matrix.  Current implementations are either pure MPI or mixed MPI/OpenMP ones.  The efficiency of the approach is usually  tested on a set of different test matrices from several matrix market collections.

The intern have to take the existing MPI or MPI/OpenMP code and will have to design mixed MPI/CUDA  implementation to run on the new NVIDIA P100 GPUs.  The efficiency of the new implementation will be investigated as possible comparisons with the pure MPI implementation will be carried out time permitting.

Project Mentor: Vassil Alexandrov

Site Co-ordinator: Maria Ribera Sancho

Learning Outcomes:

The student will learn to design parallel hybrid  Monte Carlo methods.

The student will learn how to implement these methods on modern computer architectures with latest NVIDIA P100 GPU accelerators as well as how to design and develop mixed MPI/CUDA code.

Student Prerequisites (compulsory): 

Introductory level of Linear Algebra, some parallel algorithms design and implementation concepts, parallel programming using MPI and CUDA.

 Student Prerequisites (desirable): 

Some skills in being able to develop mixed code such MPI/OpenMP will be an advantage.

Training Materials:

These can be tailored to the student once he/she is selected.


  • Week 1/: Training week
  • Week 2/:  Literature Review Preliminary Report (Plan writing)
  • Week 3 – 7/: Project Development
  • Week8/: Final Report write-up

Final Product Description: 

The final product will be a parallel application that can be executed on hybrid architectures with NVIDIA  P100 GPU accelerators.  Ideally we would like to publish the results in a paper on a conference or a workshop.

Adapting the Project: Increasing the Difficulty:

The project is on the appropriate cognitive level, taking into account the timeframe and the need to submit final working product and 2 reports


The student will need access to a machine with NVIDIA P100 GPU accelerators, standard computing resources (laptop, internet connection) as well as an account in Marenostrum supercomputer.

Barcelona Supercomputing Centre


Tagged with: , ,

Leave a Reply

Your email address will not be published. Required fields are marked *


This site uses Akismet to reduce spam. Learn how your comment data is processed.