The QR algorithm is one of the three phases in the process of computing the eigenvalues and the eigenvectors of a dense nonsymmetric matrix. This paper describes a task-based QR algorithm for reducing an upper Hessenberg matrix to real Schur form. The  algorithm also supports generalized eigenvalue problems (QZ algorithm) but this paper focuses more on the standard case. The  algorithm inherits previous algorithmic improvements, such as tightly-coupled multi-shifts and Aggressive Early Deflation (AED), and also incorporates several new ideas that significantly improve the performance. This includes the elimination of several synchronization points, the dynamic merging of previously separate computational steps, the shorting and the prioritization of the critical path, and the introduction of an experimental GPU support. The  implementation is demonstrated to be significantly faster than multi-threaded LAPACK and ScaLAPACK on both single-node and multi-node environments . The implementation is built on top of the StarPU runtime system and is part of an open-source StarNEig library.
The QR algorithm is one of the three phases in the process of computing the eigenvalues and the eigenvectors of a dense nonsymmetric matrix. This paper describes a task-based QR algorithm for reducing an upper Hessenberg matrix to real Schur form. The task-based algorithm also supports generalized eigenvalue problems (QZ algorithm) but this paper focuses more on the standard case. The task-based algorithm inherits previous algorithmic improvements, such as tightly-coupled multi-shifts and Aggressive Early Deflation (AED), and also incorporates several new ideas that significantly improve the performance. This includes the elimination of several synchronization points, the dynamic merging of previously separate computational steps, the shorting and the prioritization of the critical path, and the introduction of an experimental GPU support. The task-based implementation is demonstrated to be significantly faster than multi-threaded LAPACK and ScaLAPACK in both single-node and multi-node configurations on two different machines based on Intel and AMD CPUs . The implementation is built on top of the StarPU runtime system and is part of an open-source StarNEig library.
A
task-based
A
task-based
A
task-based
R
on
in
R
environments
configurations on two different machines based on Intel and AMD CPUs