Skip to content

A parallel impementation of the Gauss-Jordan method using MPI with C++.

License

Notifications You must be signed in to change notification settings

JasonPap/Parallel-Gauss-Jordan

Repository files navigation

Parallel Gauss-Jordan

This project is a parallel impementation of the Gauss-Jordan method for solving linear systems using the MPI with C++.

It was developed during my university class Parallel Algorithms

Notes

  • The array is distributed equaly to all the processes by columns and computations are made in parallel.
  • In order to avoid swapping all elements of a row on every iteration, a pivot array is used as an index and is kept persistant with the required communication.
  • The code have been re-written to be compatible with older C++ compilers and no longer need the -std=c++11 compile flag.
  • The B array is always handled by the master process (rank 0).
  • There are two modes for distributing columns, by groups and round-robin.
  • [limitation]The dimention of the array A must be an exact multiple of the number of processes.
  • The array A is always a square array NxN with random values.

Usage

To compile the files use the make command.

To run:

mpiexec -n <number of processes> ./parallel-gauss-jordan <dimention> <distribution mode (0/1)>

About

A parallel impementation of the Gauss-Jordan method using MPI with C++.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages