The motivation behind this project is to understand the fundamentals behind the time and space complexity of algebraic routines on sparse matrices, given different conditions. A major part of this project is understanding the im- portance of preconditioning, where the use of different preconditioners, which are the different sparse matrix representations; as well as multi-threading and parallelism, can lead to a significant reduction routine computation times.
Information regarding OpenMP multi-threading and the different sparse matrix representations have been covered in detail in the report.
Use the provided Makefile to compile the program which will create an executable matrix program.
make installThe program must be run with parameters. There are a few optional and required parameters. View the CLA usage below.
matrix {routines} [options] -f matrix1 [matrix2]--sm scalarperform scalar multiplcation with value scalar--trcompute the matrix trace value--adperform matrix addition on two matrices, matrix2 must be specified--tstranspose the given matrix--mmperform matrix multiplication on two matrices, matrix2 must be specified
-t threadsspecify the number of execution threads to use-lif present, results will be logged to an output file-sif present, results will not contain the matrix data
This program has been tested on Mac environments.
This project is licensed under the MIT License.