Coder Social home page Coder Social logo

ghonimo / linear-equations-solver-with-parallel-lu-decomposition-ece588 Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 109.47 MB

A system of linear equations solver with a parallel LU Decomposition algorithm implemented using Pthreads at its core. C/C++ implementations with and without pivoting. Thoroughly documented and benchmarked on an intel linux system and a macbook pro with Apple Silicon M3pro chip. This project was developed as a project at Portland State University

C 76.11% Python 4.85% Makefile 2.64% C++ 10.98% Perl 5.42%
apple-silicon benchmark decomposition hpc hyperthreading intel linear lu lu-decomposition matrix matrix-factorization matrix-generation parallel-computing parallel-programming portland-state-university pthreads solver m3-chip m3pro

linear-equations-solver-with-parallel-lu-decomposition-ece588's Introduction

Parallel Matrix Solver ๐Ÿš€

Welcome to the Parallel Matrix Solver project! This project is designed to solve large systems of linear equations using LU Decomposition, leveraging the power of parallel computing to speed up computations. Perfect for educational purposes and anyone interested in exploring the efficiency of parallel algorithms.

Project Directory Structure ๐Ÿ“š

Dive into the heart of our Parallel Matrix Solver project. Here's how everything is organized:

Source Code ๐Ÿงฌ

src/ - This is where the magic happens! Our source code directory includes both serial and parallel implementations of the LU Decomposition algorithm.

  • parallel_solver.c: Embark on a journey with our parallel version, optimized with Pthreads for concurrency.
  • sequential_solver.c: The classic approach to LU Decomposition. Perfect for understanding the basics and performance comparison.
  • ...: Other variations and utilities to explore different implementations of LU Decomposition.

Headers ๐Ÿ“‘

include/ - All our project-wide declarations live here.

  • matrix.h: Essential definitions and function prototypes for matrix operations.

Documentation ๐Ÿ“–

docs/ - Need guidance? Our docs have got you covered!

  • setup.md: Get up and running with detailed setup instructions.
  • usage.md: Learn how to wield our solver with comprehensive usage instructions.
  • ...: Additional documentation and design logs for our project.

Benchmarks ๐Ÿ“ˆ

benchmarks/ - Curious about performance? Check out our benchmarks!

  • results.md: Dive into detailed performance analysis and see how our parallel implementation stacks up against the serial one.

Matrices ๐Ÿงฉ

matrices/ - Sample matrices for testing and getting a feel of the solver's prowess.

  • ...: A variety of matrices to challenge and benchmark our solver.

Solutions ๐Ÿ

matrices_solution/ - Wondering if you got it right? Here are the solutions for our sample matrices.

  • ...: Solutions for all provided sample matrices to verify your results.

Utilities ๐Ÿ”ง

utilities/ - Our utility belt for benchmarking and matrix generation.

  • ...: Tools to help you generate matrices, run benchmarks, and more.
## Prerequisites

* A C compiler (GCC, Clang, etc.)
* Pthreads library 

## Setup

1. Clone the repository:
```bash
   git clone [email protected]:Ghonim/ECE588_Parallel_Matrix.git
  1. Navigate to the project directory:
cd ECE588_Parallel_Matrix

Setup Instructions

Usage Instructions

Building the Project

The project includes a Makefile for easy compilation of the source code into executable binaries. You can use the following commands to build the project:

  • To build all versions of the solver (sequential, parallel, and parallel with pivoting):
    make all
  • To build specific versions of the solver, use one of the following commands: For the sequential version:
    make sequential
  • For the parallel version without pivoting:
    make parallel
  • For the parallel version with pivoting:
    make pivoting

linear-equations-solver-with-parallel-lu-decomposition-ece588's People

Contributors

ghonimo avatar apmaso avatar

Watchers

 avatar

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.