Skip to content

vbvg2008/MatrixCondensation

Repository files navigation

Parallel Matrix Condensation for Calculating Log-Determinant of Large Matrix

This repository contains the source code, sample input, output and result for following parallel algorithms that calculate the determinant of large matrix. All algorithms are implemented by Fortran and are parallelized by MPI.

Prerequisites

  • gfortran
  • OpenMPI
  • ScaLAPACK

Instruction of Execution

Compile the source code:

make mc_p
make ge_p
make ge_scalapack

Run the executable:

Calculate log(abs(det)) of random 1000x1000 dense matrix using 4 processors by matrix condensation:

mpirun -n 4 mc_p 1000 

Calculate log(abs(det)) of a specific 1000x1000 dense matrix using 4 processors by matrix condensation:

mpirun -n 4 mc_p 1000 ./input/m1000x1000.bin 

Output

The ouput folder is the raw experimental results from OSCER cluster(OU Supercomputing Center for Education&Research). If you want to run the experiment in OSCER too, you can use the batchrun.sh and comp.sbatch provided in this repository.

Results

The results folder contains the following:

  • Runtimeresults.xlsx: spreadsheet that stores the average run time, speedup, communication time and data distribution time for all algorithms.
  • Extract_results_plot: jupyter notebook that extracts the raw output, analyze data and generate the plots.

Showcase

Execution time for three algorithms:

Matrix Condensation Execution Time

Gaussian Elimination Execution Time

Gaussian Elimination Scalapack Execution Time

Speed-up for all problem sizes:

Speed-up for all sizes

Average speed-up of all problem sizes:

Average speed-up

Average CPU communication time of all problem sizes(for mc_p and ge_p):

Average communication

Average data distribution time of all problem sizes(for mc_p and ge_p):

Average distribution

Contact:

[email protected]

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published