Abstract

One sided block Jacobi algorithm for the singular value decomposition (SVD) of matrix can be a method of choice to compute SVD efficiently and accurately in parallel. A given matrix is logically partitioned into block columns and is subjected to an iteration process. In each iteration step, for given two block columns, their Gram matrix is generated, its symmetric eigenvalue decomposition (EVD) is computed and the update of block columns by matrix-matrix multiplication is performed. Another possibility is to omit the computation of Gram matrix and the update, so that there is no matrix-matrix multiplication at all. A local matrix is formed by two block columns and its QR decomposition is computed first to reduce the dimension and decrease the off-diagonal norm. Then, the one-sided serial Jacobi SVD is called (either for a local matrix or its R-factor). No update is necessary, since the result from the serial one-sided Jacobi SVD algorithm is the same as the original matrix after update. Crucial for this new approach is an efficient implementation of the QR decomposition for tall and skinny matrices, as well as a fast and accurate (serial) one-sided Jacobi SVD algorithm. Another improvement of the algorithm would be to replace the static (fixed) local stopping criterion in the inner EVD or SVD computations by the dynamic (flexible) one to reduce the work done by these routines in one parallel iteration step. Since the orthogonality of columns is crucial at the end of the algorithm, one could progressively set the local stopping criterion as the computation proceeds. We tried to implement the proposed approaches and compare the achieved results with the standard algorithm.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call