A Task-Based Algorithm for Reordering the Eigenvalues of a Matrix in Real Schur Form

  • Mirko MyllykoskiEmail author
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 10777)


A task-based parallel algorithm for reordering the eigenvalues of a matrix in real Schur form is presented. The algorithm is realized on top of the StarPU runtime system. Only the aspects which are relevant for shared memory machines are discussed here, but the implementation can be configured to run on distributed memory machines as well. Various techniques to reduce the overhead and the core idle time are discussed. Computational experiments indicate that the new algorithm is between 1.5 and 6.6 times faster than a state of the art MPI-based implementation found in ScaLAPACK. With medium to large matrices, strong scaling efficiencies above 60% up to 28 CPU cores are reported. The overhead and the core idle time are shown to be negligible with the exception of the smallest matrices and highest core counts.


Eigenvalue reordering problem Task based programming Shared memory machines 



This work is part of a project that has received funding from the European Union’s Horizon 2020 research and innovation programme under grant agreement No. 671633 (NLAFET). Support has also been received from eSSENCE, a collaborative e-Science program funded by the Swedish Government via the Swedish Research Council (VR). The author would like to extend his gratitude to Asst. Prof. Lars Karlsson and Dr. Carl Christian Kjelgaard Mikkelsen for their valuable comments and suggestions. Moreover, the author would like to thank Lic. Björn Adlerborn, Prof. Daniel Kressner (EPFL) and Prof. Bo Kågström, who is coordinator and scientific director of the NLAFET project, as well as the StarPU development team for answering various question on StarPU. Finally, the author thanks the anonymous reviewers for their valuable feedback.


  1. 1.
    LAPACK—Linear Algebra PACKage.
  2. 2.
    ScaLAPACK—Scalable Linear Algebra PACKage.
  3. 3.
    StarPU—A Unified Runtime System for Heterogeneous Multicore Architectures.
  4. 4.
    Bai, Z., Demmel, J.W.: On swapping diagonal blocks in real Schur form. Linear Algebra Appl. 186, 73–95 (1993). MathSciNetCrossRefzbMATHGoogle Scholar
  5. 5.
    Granat, R., Kågström, B., Kressner, D.: Parallel eigenvalue reordering in real Schur forms. Concurr. Comput.: Pract. Exp. 21(9), 1225–1250 (2009). CrossRefGoogle Scholar
  6. 6.
    Kressner, D.: Block algorithms for reordering standard and generalized Schur forms. ACM Trans. Math. Softw. 32(4), 521–532 (2006). MathSciNetCrossRefzbMATHGoogle Scholar
  7. 7.
    Myllykoski, M., Kjelgaard Mikkelsen, C.C., Karlsson, L., Kågström, B.: Task-based parallel algorithms for eigenvalue reordering of matrices in real Schur form. NLAFET Working Note WN-11, April 2017. Also as Report UMINF 17.11, Department of Computing Science, Umeå University, SE-901 87 Umeå, SwedenGoogle Scholar

Copyright information

© Springer International Publishing AG, part of Springer Nature 2018

Authors and Affiliations

  1. 1.Department of Computing ScienceUmeå UniversityUmeåSweden

Personalised recommendations