Volume 2 (63)

CONTENTS

  1. Perminov P. O., Migov D. A. Calculation of the reliability of extended tri-connected networks  

  2. Malyshkin V. E., Perepelkin V. A. Definition of the Program Notion       

  3. Bystrov A. V., Virbitskaite I. B., Oshevskaya E. S. Stochastic Petri nets software tools

  4. Kozlov M. A., Panova E. A., Meyerov I. B. Implementation of searching for the most frequent DNA sequences using the Kokkos library


P.O. Perminov, D.A. Migov

Novosibirsk State University, 630090, Novosibirsk, Russia
Institute of Computational Mathematics and Mathematical Geophysics SB RAS,
630090, Novosibirsk, Russia

CALCULATION OF THE RELIABILITY OF EXTENDED TRI-CONNECTED NETWORKS

DOI: 10.24412/2073-0667-2024-2-5-15
EDN: VZCSXV

 

When analyzing the reliability of networks for various purposes, the apparatus of random graphs is usually used. The most common indicator of reliability is the probability of connectivity of a random graph with unreliable edges, which describes the reliability of a network in terms of the ability to establish a connection between each pair of network nodes. However, the problem of calculating the probability of network connectivity is NP-hard. To reduce the dimensional when carrying out precise calculations, methods based on the use of structural features of networks are widely used, primarily various methods of reduction and decomposition.
Networks with an extended structure are used in number of applications. These are, for example, networks located in extended objects — mines, ships, other objects. Linear wireless sensor networks, designed for monitoring various long-distance objects, such as pipelines, bridges, roads, also have an extended structure. Despite their linear physical structure, the topological graph of such a network can be either linear or non-linear, since wireless communication channels are possible not only between the nearest neighboring nodes. For example, if each node can communicate with three nodes on the right and three nodes on the left, we obtain a network containing a group of three-vertex cross separators.
If the graph of an extended network is linear, then calculating its probabilistic connectivity is not difficult. The use of a serial-parallel transformation, or other techniques, allows us to make the calculation within polynomial complexity. If the network graph is biconnected and contains a separators of two nodes, then the calculation can be significantly accelerated by using decomposition along these separators.
In this paper, we study the possibility of quickly calculating the reliability of extended three-connected networks using decomposition according to the previously proposed formula. Such decomposition will lead to the production of 10 new extended graphs of a smaller size. As experiments have shown, this approach is quite effective and makes it possible to calculate the reliability of extended networks, for which it is not possible to calculate the reliability using an accurate method.

Key words: network reliability, random graph, triconnected graph, probabilistic connectivity, factorization method, network decomposition, cut, separator.

 

The work was carried out within the framework of the project N 0251-2021-0005 of a state assignment of the Institute of Computational Mathematics and Mathematical Geophysics SB RAS.

 

Bibliographic reference: Perminov P. 0., Migov D. A. Calculation of the reliability of extended tri-connected networks //journal “Problems of informatics”. 2024, № 2. P.5-15. DOI: 10.24412/2073-0667-2024-5-15

article


V. E. Malyshkin, V.A. Perepelkin

Institute of Computational Mathematics and Mathematical Geophysics SB RAS, 630090, Novosibirsk, Russia
Novosibirsk State University,630090, Novosibirsk, Russia
Novosibirsk State Technical University, 630073, Novosibirsk, Russia

DEFINITION OF THE PROGRAM NOTION

DOI: 10.24412/2073-0667-2024-2-16-31
EDN: CEDVVD

 

When solving complex problems in programming an important role plays definition of the program notion. Depending on the way program is concerned an approach to its construction, as well as its properties, vary. In the paper the program notion is studied and defined based on the theory of parallel programs synthesis on the basis of computational models. The proposed definition conforms to the theory, starting from the description of the problem in the subject domain terms and up to imperative program execution with dynamic properties provided.
In programmers’ work it is not usual to employ a precise definition of the program notion. Usually some partial definition is used, which is applicable in particular circumstances. In practice there is no problem with that. Nevertheless, in solving problems of automatic construction of any kind of programs (sequential, parallel, distributed, real-time, numerical, etc.) in various computational model (in various models of informatics) and for different bases it becomes necessary to precisely define the program notion. This allows to precisely define objects and concepts of the theory and practice of informatics and use them in precise proofs/argumentation of various statements in different theories. That’s why we have chosen mathematical logic as the base theory within which all considerations in the papers are made.
The theory of synthesis of parallel programs and systems on the basis of computational models was originally formulated in [1] and further studied in [2, 3]. Computational model (CM) is a bipartite directed finite graph, the parts of which form two sets of vertices, called sets of operations and variables. The arcs entering and exiting the operation determine the input and output variables of this operation, respectively. A computational model describes a certain subject domain, where the properties of objects in the subject domain are described by the set of variables (property values are represented by variable values), and the ability to calculate the values of some properties from others is represented by the set of operations (see Fig. ??). CM defines an axiomatic theory.
The interpretation function I is defined on the vertices of the graph. Each variable x has the value I (x), and each operation a computes a function I (a). To make computations available each operation has a computational module assigned. An example of such module is a conventional serial subroutine capable of computing values of output variables of the operation, provided values of operation’s input variables are submitted as inputs to the subroutine. Let’s define two subsets on the set of variables of the computational model - V and IE, and call them input and output variables of the problem. Values
This work was carried out under state contract with ICMMG SB RAS FWNM-2022-0005.
of all variables from V are considered given. In this ease, we will say that the VW-problem is posed on a computational model. If in a computational model there is a subset of operations, the ordered application of which to known values of variables will allow obtaining values of new variables until all variables from W obtain values, then this set defines a set of functional terms, each of which calculates one of the variables in W and is calculated from the variables of set V. We will call this set of functional terms a VW-plan (or simply a plan). To solve any VW-problem, generally, zero or more VW-plans can be constructed. Obviously, for a given VW-problem, one can set the task of finding a VW-plan, and if successful, compute the values of all variables from W, given the values of the variables from V.
The above allows us to give the following definition of the notion of a program. A program is a description of a process of computation of the values of the interpretation function for the variables included in the VW-plan, and only them.
Execution of a plan demands definition of control, i.e. the order in which operations are to be executed. That order must not contradict information dependencies between operations. Also the resources have to be assigned: each variable must have a memory extent to store its value and each operation must have a processor time to execute its corresponding module. Generally both control definition and resources assignment should be done partially statically and the rest - dynamically. This allows to provide static and dynamic properties of the program. Derivation of a VW-plan to solve the formulated problem can also be derived dynamically.
The proposed definition of the program notion has a number of advantages, considered in the paper. The advantages include the ability of algorithmic optimizations, the ability to optimize non-functional properties, etc. Also the process of programming in terms of computational models is described. Other program definitions are concerned in comparison.

Key words: Program concept, automatic program construction, active knowledge.

Bibliographic reference: Malyshkin V. E., Perepelkin V. A. Definition of the Program Notion //journal “Problems of informatics”. 2024, № 2. P.16-31. DOI: 10.24412/2073-0667-2024-16-31

article


A.V. Bystrov, I. B. Virbitskaite, E.S. Oshevskaya

A. P. Ershov Institute of Informatics Systems, 630090, Novosibirsk, Russia
 
STOCHASTIC PETRI NETS SOFTWARE TOOLS
 
DOI: 10.24412/2073-0667-2024-2-32-57
EDN: KNBRYZ
 
The behavior of a wide variety of systems, biochemical, transport, industrial, software, and so on, is inherently parallel, non-deterministic, and stochastic. The study and design of these systems requires the use of models that take into account all these aspects, as well as appropriate software tools. Stochastic Petri nets and their various extensions are successfully used as such models. They combine the clarity and intuitiveness of the graphical representation with well-developed mathematical and algorithmic apparatus of analysis. These models allow us to study not only qualitative but also quantitative properties of systems, such as bandwidth, reliability, waiting time, etc. Software tools that support the construction, modification and analysis of system models based on various variants of stochastic Petri nets have already been developed and continue to appear.
This paper provides a detailed overview of several such multiplatfom software tools, namely, GreatSPN, ORIS, PetriNuts, TimeNet and PIPE2 that are available on the Internet, and got recognized by users. The introduction, informally, but with proper references to the literature, gives the basic concepts, defines the classes of Petri nets and terms used later. Then, for each of the software tools, its structure, features and peculiarities are considered. The tools are then compared in terms of their functional and performance analysis capabilities, and recommendations to users on how to use the tools depending on what type of stochastic models need to be investigated are discussed. The main purpose of the paper is to facilitate the researcher and engineer in selecting the most appropriate modeling and analysis tool for the task at hand.

Key words: stochastic Petri nets, modelling, simulation, performance analysis, Petri net tools.

Bibliographic reference: Bystrov A. V., Virbitskaite I. B., Oshevskaya E. S. Stochastic Petri nets software tools //journal “Problems of informatics”. 2024, № 2. P.32-57. DOI: 10.24412/2073-0667-2024-32-57

article


M. Kozlov, E. Panova, I. Meyerov

Lobachevsky State University of Nizhny Novgorod, 603950, Nizhny Novgorod, Russia

IMPLEMENTATION OF SEARCHING FOR THE MOST FREQUENT DNA SEQUENCES USING THE KOKKOS LIBRARY

DOI: 10.24412/2073-0667-2024-2-58-71
EDN: TGQKBV
 
Nowadays, the wide variety of existing architectures raises the problem of developing universal approaches to programming. Various frameworks enable single-source code creation for multiple devices, for example, CPU, GPU, FPGA. Such frameworks include OpenCL, OpenACC, Kokkos, Alpaka and others. However, the problem of efficiency and performance portability remains relevant. It is not always possible to create one code that works efficiently on different devices because of their specific architectures. This article discusses performance aspects in relation to the Kokkos library, a widely used framework for creating cross-platform code.
As a benchmark, we consider a bioinformatics problem to find the most frequent DNA sequences of certain length. It is assumed that important genetic information can be encrypted in such sequences. DNA sequence can be represented as a string consisting of four characters “A”, “C”, “G”, “T”, which denote corresponding nucleobases. Therefore, the problem reduces to counting fixed-length patterns in DNA and can be solved using existing string matching algorithms. Faro and Lecroq (2013) reviewed and classified exact string matching algorithms and experimentally evaluated them on different kinds of texts. Hakak et al. (2019) showed the latest advancements in the field of string matching algorithms and designated modern trends and challenges. They analyzed various classes of algorithms and drew conclusions about the limitations and effectiveness of different string matching algorithms for various applications. In this article, we have chosen two algorithms for consideration: the well-known Rabin- Karp algorithm and the Hash3 algorithm from the Hashg family [Lecroq 2007]. The Hash3 algorithm is one of the most effective algorithms for short-length patterns of approximately 8 to 128 characters long. Both these algorithms are based on hashing and are well applicable for genome analysis. For verification and comparison, we also consider a simple naive algorithm based on sequential pattern matching.
The naive algorithm consists of character-by-character comparison of all fixed-length patterns. This algorithm is not effective enough, but has great potential for parallelization. We received an acceleration of up to 35 times when ported the parallel naive algorithm from CPU to GPU. The Rabin- Karp algorithm allows us to eliminate character-by-character comparisons effectively using hashing and shows better efficiency compared to the naive algorithm on both CPU and GPU. Our cross-platform parallel implementation of the Rabin-Karp algorithm is approximately 1.25 times faster than the naive algorithm on CPU and 2 times faster on GPU. The Hash3 algorithm cuts off character-by-character comparisons extremely efficiently. Because of this, the Hash3 algorithm is an order of magnitude faster than the naive algorithm. Due to the almost absence of character-by-character comparisons,
the algorithm is memory bound and has less potential for parallelization. The Hash3 algorithm was accelerated by 7 times on GPU relative to CPU.
We implement these algorithms for CPU and GPU using OpenMP, Cuda and Kokkos technologies. We demonstrate that when using Kokkos with a naive algorithm, the performance loss does not exceed 10% relative to the OpenMP version. Losses are caused by the compiler making more efficient use of SIMD calculations in the OpenMP implementation when matching patterns. There is no performance loss for the Rabin-Karp and Hash3 algorithms when porting the OpenMP version to Kokkos. Speedup of all algorithms is about 14 times on 16 physical cores. It is worth noting that the Hash3 algorithm showed a noticeable improvement on the CPU when using hyper-threading, unlike other algorithms under consideration. This can be explained by more efficient memory management. Speedup on 32 threads and 16 physical cores for the naive algorithm and the Rabin-Karp algorithm is 16-17 times, while for the Hash3 algorithm it is 25 times.
Next, we run the developed code on the GPU and show that the Kokkos version of the Rabin-Karp algorithm loses to the Cuda version on the GPU by no more than 10%. At the same time, the Kokkos versions of the naive and Rabin-Karp algorithms outperform our Cuda baseline version by 10-20%. The authors did not set themselves the goal of optimizing the Cuda code. We believe that it is possible to optimize the Cuda code to match the performance of the Kokkos version. However, it is noteworthy that sometimes the baseline Kokkos version runs faster than the baseline Cuda version.
Overall, we demonstrate that in many cases the Kokkos version works as well as native OpenMP or Cuda code. In the worst case, the performance loss was no more than 10%. We believe that paying this price is reasonable in order to run a single code on different devices.

Key words: Kokkos, single-source programming, cross-platform software, heterogeneous computing, program performance, string matching algorithms, bioinformatics.

This work was funded by the Ministry of Science and Higher Education of the Russian Federation, project No. FSWR-2023-0034.

Bibliographic reference: Kozlov M. A., Panova E. A., Meyerov I. B. Implementation of searching for the most frequent DNA sequences using the Kokkos library //journal “Problems of informatics”. 2024, № 2. P.58-71. DOI: 10.24412/2073-0667-2024-58-71

article