Solving Linear Diophantine Systems on Parallel Architectures

Dmitry Zaitsev, Stanimire Tomov, Jack Dongarra

Research output: Contribution to journalArticlepeer-review

Abstract

Solving linear Diophantine systems of equations is applied in discrete-event systems, model checking, formal languages and automata, logic programming, cryptography, networking, signal processing, and chemistry. For modeling discrete systems with Petri nets, a solution in non-negative integer numbers is required, which represents an intractable problem. For this reason, solving such kinds of tasks with significant speedup is highly appreciated. In this paper we design a new solver of linear Diophantine systems based on the parallel-sequential composition of the system clans. The solver is studied and implemented to run on parallel architectures using a two-level parallelization concept based on MPI and OpenMP. A decomposable system is usually represented by a sparse matrix; a minimal clan size of the decomposition restricts the granulation of the technique. MPI is applied for solving systems for clans using a parallel-sequential composition on distributed-memory computing nodes, while OpenMP is applied in solving a single indecomposable system on a single node using multiple cores. A dynamic task-dispatching subsystem is developed for distributing systems on nodes in the process of compositional solution. Computational speedups are obtained on a series of test examples, e.g., illustrating that the best value constitutes up to 45 times speedup obtained on 5 nodes with 20 cores each.
Original languageEnglish
JournalIEEE Transactions on Parallel and Distributed Systems
Early online date5 Oct 2018
DOIs
Publication statusPublished - 2018

Keywords

  • MPI
  • OpenMP
  • Diophantine system
  • Petri net
  • clan
  • speed-up

Fingerprint

Dive into the research topics of 'Solving Linear Diophantine Systems on Parallel Architectures'. Together they form a unique fingerprint.

Cite this