Skip to content

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

Notifications You must be signed in to change notification settings

Ghonimo/Linear-Equations-Solver-with-Parallel-LU-decomposition-ECE588

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Parallel Equation Solver

This project implements a parallel linear equation solver for large matrices, employing both serial and parallel LU Decomposition algorithms using Pthreads. It explores performance enhancement achieved through multicore execution strategies.

Project Structure

Parallel Equation Solver
│
├── src/                    # Source files
│   ├── main.c              # Main program entry point
│   ├── lu_serial.c         # Serial LU Decomposition implementation
│   ├── lu_serial.h         # Header for serial LU Decomposition
│   ├── lu_parallel.c       # Parallel LU Decomposition implementation using Pthreads
│   ├── lu_parallel.h       # Header for parallel LU Decomposition
│   └── utilities.c         # Utility functions for matrix operations and timing
│
├── include/                # Header files
│   ├── matrix.h            # Definitions and functions for matrix operations
│   └── timing.h            # Timing and performance measurement utilities
│
├── docs/                   # Documentation files
│   ├── setup.md            # Setup instructions
│   ├── usage.md            # Usage instructions
│   └── development.md      # Notes on development decisions and project structure
│
├── tests/                  # Test files
│   ├── test_serial.c       # Tests for serial implementation
│   └── test_parallel.c     # Tests for parallel implementation
│
├── benchmarks/             # Benchmark scripts and results
│   ├── benchmark_script.sh # Script to run benchmarks
│   └── results.md          # Benchmark results and analysis
│
├── Makefile                # Makefile for building the project
└── README.md               # Project overview and general instructions

Prerequisites

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

Setup

  1. Clone the repository:
   git clone git@github.com:Ghonim/ECE588_Parallel_Matrix.git
  1. Navigate to the project directory:
cd ECE588_Parallel_Matrix

Setup Instructions

Usage Instructions

About

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

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •