Parallel One-Sided Block Jacobi SVD Algorithm: I. Analysis and Design
Gabriel Okša, Marián Vajteršic · 2007
The computation of a singular value decomposition of an m× n matrix A is certainly one of the most often demanded tasks in various applications. There are many algorithms for computing the full or partial singular value decomposition. Among them, the one-sided Jacobi method (coupled with some orderings) is reputable for its ability to compute the singular values as well as left and right singular vectors with high relative accuracy. This is important, for example, in applications like quantum physics or chemistry, where the atomic and/or molecular energies of tiny values have to be computed very accurately (these energies are modeled as the eigenvalues of symmetric operators, thus they equal to singular values). Unfortunately, the Jacobi method belongs also to the slowest algorithms, and as such has been almost abandoned. Recently, some new ideas for accelerating the one-sided serial Jacobi algorithm were presented and implemented. Numerical experiments have shown that the modified Jacobi algorithm is as fast as the QR algorithm and slightly slower than the divide-and-conquer one. We describe in detail main ideas of an acceleration, namely, working with matrix blocks rather than elements, the preprocessing of an original matrix, the special initialization procedure, the new matrix recursion and the sine-cosine decomposition of certain matrix blocks. The possible parallelization strategy for the one-sided block-Jacobi algorithm is also discussed.