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.
- Matrix Condensation (mc_p.f95)
- Gaussian Elimination (ge_p.f95)
- Gaussian Elimination by LU decoposition of ScaLAPACK (ge_scalapack.f)
- gfortran
- OpenMPI
- ScaLAPACK
make mc_p
make ge_p
make ge_scalapack
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
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.
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.