bkochuna / ners570f24-SpMV

3 stars 0 forks source link

Add an ELL matrix class #5

Open KyleVaughn opened 1 week ago

KyleVaughn commented 1 week ago

Description:

Add an ELL matrix class, which is a child class of the SparseMatrix class.

ELL format involves padding the non-zero elements to a 2D array and a transposition process to improve the code performance. Although it might occupy more memory than other formats when the rows have highly variable numbers of non-zero elements, ELL always keeps the elements aligned in a simple way that doesn't explicitly need row pointers. ELL format makes it easy to implement the multiplication and evenly divide the job into pieces for parallel computing.

The job of this issue is to implement the construction of ELL matrix class including several attributes and methods so that the code can 1. get more adapted to matrices with similar n of nonzeros per row, and 2. get prepared for future development of parallel computing.

Tasks:

Definition of done:

xianyu2023umich commented 15 hours ago

@nickamano Description ready for review.