Coder Social home page Coder Social logo

srodrb / parallel-solvers-for-linear-system Goto Github PK

View Code? Open in Web Editor NEW

This project forked from waynedw/parallel-solvers-for-linear-system

0.0 2.0 0.0 15.32 MB

Parallel Solver for Large Sparse Matrix Computations

License: MIT License

C++ 60.14% Makefile 0.24% Shell 1.31% TeX 24.45% MATLAB 2.42% C 11.43%

parallel-solvers-for-linear-system's Introduction

Parallelism-in-Matrix-Computations

This repository contains 5 sections of codes to solve matrix computations of various types. The following codes used the MPI/OpenMP programming paradigm, and were tested on four (or eight) nodes of the MC cluster.

1. Implement BBTS

Block banded triangular solver to solve Lx = b, where L is a banded lower triangular matrix with m subdiagonals.

2. Implement a SPIKE-like algorithm

Solve Lˆy = f, where Lˆ is a banded lower triangular matrix of order N = 32, 768 = 215, with t = 128 subdiagonals on a cluster of multicore nodes.

The SPIKE-like algorithm should be implemented using MPI. In this algorithm, use BBTS (from Part (a)) to solve the system involvings Lˆi.

3. Block LU Factorization with boosting

Solve the dense linear system Ax = b using the approximate block LU Factorization algorithm with the procedure of ”diagonal boosting”

Let α be a multiple of the unit roundoff, e.g. 10−6, and aj be the jth column of the updated matrix A after step j − 1. In step j, if the diagonal pivot does not satisfy |pivot| > α||aj ||1, its value is ”boosted” as, pivot = pivot + β||aj ||1, if pivot > 0, pivot = pivot − β||aj ||1, if pivot < 0, where β is often taken as the square root of α.

4. The Spike algorithm

Implement the Spike algorithm in Chapter 5.2.1 to solve Ax = b, where A is a banded matrix, on a cluster of multicore nodes.

5. Sparse matrix solver

Designed a parallel C++ solver with libraries MPI, MKL and LAPACK based on Kaczmarz scheme to solve a sparse linear system Ax = f of order 1 million

Implemented the RCK scheme to do reordering in sparse matrix and utilized Block Gauss-Seidel and permutations to transform the model into independent least square problems within a parallel Conjugate Gradient framework, resulting in a more robust and scalable method compared with GMRES using ILU preconditioner

Textbook: Parallelism in Matrix Computations

Jul.3 2016

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.