About the library

A Task-based Library for Solving Dense Nonsymmetric Eigenvalue Problems

About the library

StarNEig library aims to provide a complete task-based software stack for solving dense nonsymmetric (generalized) eigenvalue problems. The library is built on top of the StarPU runtime system and targets both shared memory and distributed memory machines. Some components of the library support GPUs.

The four main components of the library are:

The library has been developed as a part of the NLAFET project. The project has received funding from the European Union’s Horizon 2020 research and innovation programme under grant agreement No. 671633. Support has also been received from eSSENCE, a collaborative e-Science programme funded by the Swedish Government via the Swedish Research Council (VR), and VR Grant E0485301. The development and performance evaluations were performed on resources provided by the Swedish National Infrastructure for Computing (SNIC) at HPC2N partially funded by VR through grant agreement No. 2016-07213. The library is published under the open-source BSD 3-Clause license.

Please cite the following article when referring to StarNEig:

Mirko Myllykoski, Carl Christian Kjelgaard Mikkelsen: Task-based, GPU-accelerated and Robust Library for Solving Dense Nonsymmetric Eigenvalue Problems, Concurrency and Computation: Practice and Experience, 33 (11), 2021 (online since 2020; e5915), doi: 10.1002/cpe.5915

Performance

Performance comparison against LAPACK (with parallel BLAS) using 25 CPU cores and a Nvidia V100 GPU:

Performance comparison against LAPACK

Performance comparisons against MAGMA (Nvidia V100 GPU) and ScaLAPACK (distributed memory), and strong scalability on shared and distributed memory machines:

Performance comparisons

Also, see following publications:

Current status

The stable 0.1-series currently supports only real arithmetic (real input and output matrices but real and/or complex eigenvalues and eigenvectors). In addition, some interface functions are implemented as LAPACK and ScaLAPACK wrapper functions.

Standard eigenvalue problems:

  Shared memory Distributed memory CUDA
Hessenberg Complete ScaLAPACK Single GPU
Schur Complete Complete Experimental
Reordering Complete Complete Experimental
Eigenvectors Complete

Generalized eigenvalue problems:

  Shared memory Distributed memory CUDA
Hessenberg LAPACK 3rd party
Schur Complete Complete Experimental
Reordering Complete Complete Experimental
Eigenvectors Complete

Authors

StarNEig has been developed at the Department of Computing Science of Umeå University, Sweden. The following people have contributed to the library:

Youtube videos

Task-based Hessenberg reduction

Task-based Schur reduction

Download and documentation

The stable 0.1-series is recommended for most users:

The development series is under continuous development and considered unstable: