Analýza vlivu použitého maticového formátu na efektivitu násobení matice a vektoru
Loading...
Downloads
Date issued
Authors
Journal Title
Journal ISSN
Volume Title
Publisher
Vysoká škola báňská – Technická univerzita Ostrava
Location
Signature
Abstract
This bachelor thesis deals with the efficiency of matrix-vector multiplication as a key operation for a large variety of scientific applications. For most problems, matrices are large and they contain a small percentage of non-zero elements - we call them sparse. For this reason, formats for storing sparse matrices have started to be developed to effectivelly minimize the memory requirements on one hand, and on the other hand to streamline access to the elements of the matrix that are stored in the array of values and reduce the computation time with them. The basic formats for storing sparse matrices are namely: Coordinate list (COO), Compressed Sparse Row (CSR), Compressed Sparse Column (CSC), Diagonal (DIA), Jagged Diagonal (JAD), Hybrid (HYB), ELLpack (ELL) and Sliced ELL-C-σ (SELL-C-σ). This bachelor thesis is divided into several parts, a summary and an explanation of how matrices are stored within each format, a brief introduction to the libraries used, an introduction to the matrices tested, numerical experiments and finally their analysis. To test the efficiency of the sparse matrix-vector multiplication operation in Python, I used the libraries SciPy, PETSc4py, PyViennaCL to measure the time of the matrix-vector multiplication operation using each format. In C++, I worked with the Armadillo and ViennaCL libraries. The aim of this thesis is to analyze the results and fine-tune the parameters of the SELL-C-σ format in terms of the efficiency of the matrix-vector multiplication operation as a key for iterative solvers. This format combines the CSR and ELL formats for better vectorization of the computations.
Description
Subject(s)
Sparse matrix, Coordinate list format, Compressed Sparse Row format, Compressed Sparse Column format, Hybrid format, Diagonal format, Jagged Diagonal format, ELLpack format, SELL-C-σ, matrix-vector multiplication, Python, C++