SMG2S

SMG2S (Sparse Matrix Generator with Given Spectrum) is able to generate large-scale non-Hermitian and non-Symmetric matrices in parallel with the spectral distribution functions or eigenvalues given by users, and the spectrum of generated matrix is the same as the one specified by the users.

2
mentions
2
contributors

What SMG2S can do for you

What is SMG2S?

SMG2S is able to generate large-scale non-Hermitian and non-Symmetric matrices in parallel with the spectral distribution functions or eigenvalues given by users, and the spectrum of generated matrix is the same as the one specified by the users. SMG2S can be used to benchmark the iterative solvers for both linear systems and eigenvalue problems on supercomputers using the generated very large test matrices with customized spectral properties.

As a matrix generator, SMG2S provides:

  • generating of both Non-Hermitian and Non-Symmetric sparse matrix

  • generated matrices are naturally sparse with non-trivial sparsity pattern

  • Given Spectrum: the spectrum of generated matrix is the same as the one specified by the users

  • Sparsity patterns are diverse and controllable

As a software, SMG2S provides:

  • a collection of C++ header only files
  • C++ templated implementation for different data type
  • parallel implementation based on MPI which is able to efficiently generate very large sparse matrices in parallel on supercomputers
  • an easy-to-use C interface
  • a verification module based on Python for the sparsity pattern plotting and spectrum verification of small size of generated matrix.
  • Efficient parallel IO to store the generated matrix into MatrixMarket format

Cite SMG2S

If you find SMG2S useful in your project, we kindly request that you cite the following paper:

Wu, Xinzhe, Serge G. Petiton, and Yutong Lu. "A Parallel Generator of Non-Hermitian Matrices computed from Given Spectra." Concurrency and Computation: Practice and Experience, 32(20), e5710, 2020. [DOI] [PDF].

Logo of SMG2S
Keywords
Programming languages
  • C++ 95%
  • CMake 2%
  • Python 2%
  • C 1%
License
  • MIT
</>Source code

Participating organisations

Forschungszentrum Jülich
French National Centre for Scientific Research
University of Lille
Centre de Recherche en Informatique, Signal et Automatique de Lille

Mentions

Contributors

XW
Xinzhe Wu
Designer, Developer and Maintainer
Forschungszentrum Jülich Jülich Supercomputing Centre
SP
Serge Petiton
Designer
University of Lille & CNRS