MORSy – sparse Matrix ORdering Software for fill-in minimization

Owerview

MORSy is an open source library for computing fill-reducing ordering of sparse matrix. It is based on the multilevel nested dissection algorithm with modifications for using vertex separator at all steps of multilevel scheme. MORSy has been developed at the Department of Computational Mathematics and Cybernetics at the State University of Nizhny Novgorod. It is used in the High Performance Computing Center of the State University of Nizhny Novgorod for solving sparse systems of linear equations in the process of finite element simulation of heart activity.

PMORSy is a parallel version of MORSy library for shared-memory systems. Parallel processing is done in a task-based fashion. It uses OpenMP 3.0 task parallelism relying on the dynamic load balancing implemented in the OpenMP runtime.

MORSy and PMORSy is distributed under the LGPL licence. They are cross-platform and can be used under Linux and Windows operating systems.

Download

MORSy_1.0.0.zip (432 Kb)

PMORSy_1.2.0.zip  (402 Kb)

DMORSy_1.0 (97 Kb)

PMORSySample.zip (205 Kb)

Documents

MORSy User Guide 1.0

PMORSy User Guide 1.0

Last changes

MORSy  v. 1.0.0 15.04.2014 The basic version of MORSy
PMORSy  v. 1.0.0 29.05.2015 The basic version of PMORSy (shared-memory parallelism)
PMORSy  v. 1.2.0 14.09.2016 New algorithms for graph coarsening and graph initial partitioning were added

Related publications

  1. Pirova A., Meyerov I. MORSy – a new tool for sparse matrix reordering // An International Conference on Engineering and Applied Sciences Optimization. M. Papadrakakis, M.G. Karlaftis, N.D. Lagaros (eds.) (Kos Island, Greece, 4-6 June 2014). – pp. 1952-1963.
  2. Pirova A., Meyerov I., Kozinov E., Lebedev S. PMORSy: parallel sparse matrix ordering software for fill-in minimization // Optimization Methods and Software. — 2016. [preprint version]
  3. Pirova A.Yu., Meyerov I.B., Kozinov E.A., Lebedev S.A. A parallel multilevel nested dissection algorithm for shared-memory computing systems // Numerical methods and Programming. – Vol 16, No. 3. – Moscow,  RCC, 2015 – P. 407–420. (in Russian)