<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Parallel Approach of the Algorithm of Finding the Optimal Solution of the Transport Problem by the Method of Potentials</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Boyko[</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Lviv Polytechnic National University</institution>
          ,
          <addr-line>Lviv79013</addr-line>
          ,
          <country country="UA">Ukraine</country>
        </aff>
      </contrib-group>
      <fpage>0000</fpage>
      <lpage>0002</lpage>
      <abstract>
        <p>This paper analyzes the implementation of a parallel algorithm for finding the optimal solution of a transport problem by the potential method using OpenMP technology on dual- and quad-core processor systems. The results are obtained, which indicate the possibility of further optimization of the computational process of finding the optimal solution of the transport problem by varying the number of parallel streams and processor cores of the computer. A number of numerical experiments have been performed to confirm the effectiveness and reliability of the approach witch proposed in the paper.</p>
      </abstract>
      <kwd-group>
        <kwd>Multithreading</kwd>
        <kwd>finite difference</kwd>
        <kwd>linear programming</kwd>
        <kwd>parallelization</kwd>
        <kwd>multicore</kwd>
        <kwd>optimal plan</kwd>
        <kwd>parallel algorithm</kwd>
        <kwd>Amdal law</kwd>
        <kwd>multi-core</kwd>
        <kwd>OpenMP software standard</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1 Introduction</title>
      <p>It should be noted that many problems in their mathematical formulation are
reduced to a transport problem.</p>
      <p>Thus, with this method you can find the optimal organization of work in the
planning of construction sites, the distribution of a given volume of work between
different people, the delivery of goods and more.</p>
      <p>Finding the optimal solution to a transport problem can find application in
different areas:
 in economic
 in logistics planning;
 in the educational process;
 when developing databases;
 in programming.</p>
      <p>Such a wide range of applications testifies to the relevance of the subject under study
task.</p>
      <p>
        The rapid expansion of the spheres of application of the methods of mathematical
modeling and optimization, which has been happening in recent years, creates the
need for solving new classes of problems of increased complexity and dimension [
        <xref ref-type="bibr" rid="ref6 ref7">6,
7</xref>
        ].
      </p>
      <p>The article proposes the application of a parallel algorithm for finding a solution
to a transport problem with current trends in the development of a computer system.</p>
      <p>
        The main advantage of parallel algorithms over sequential ones is the speed of
execution [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. And given the transience of the modern world, there is a need to turn
sequential algorithms into parallel ones because they speed up program execution
time.
      </p>
      <p>Therefore, the purpose of this article is to parallelize the algorithm of finding the
optimal solution of a transport problem by the potential method by using OpenMP
parallel programming technology, that is, to take maximum account of current trends
in the development of multi-core processors.</p>
    </sec>
    <sec id="sec-2">
      <title>2 Review of the Literature</title>
      <p>At the present stage of development of society and economy, specialists must
constantly improve the principles and methods of managing complex economic
systems.</p>
      <p>In these circumstances, the manager must have the basic principles and techniques
of mathematical programming, and be able to apply them in practice.</p>
      <p>Thus, a wide range of economic problems associated with managing complex
processes require the use of modern methods of optimization and management
decisionmaking.</p>
      <p>It is the application of the transport problem to solve the distribution tasks in
various fields of economic activity that enables to obtain the most effective results and to
put them into practice successfully.</p>
      <p>
        The transport problem (1) - (3) [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] is a linear programming problem that is used to
determine the most economical plan for transportation of homogeneous products from
suppliers to consumers.
      </p>
      <p>m n
min </p>
      <p>i1j1cij xij
m
i1xij  b j , j  1,2,..., n,
m
i1xij  ai , i  1,2,..., m,
xij  0
(1)
(2)
(3)
Here xij - the volume of production, cij - the rate of delivery of products from the i
- supplier to the j - consumer, b j - the needs of consumers for products, ai - the
inventory of products from suppliers.</p>
      <p>
        There are two steps to solving a transport problem:
1) building a reference plan [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]:
 method of the northwest corner;
 the least cost method;
 the Vogel method.
2) search for the optimal plan [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]:
 the Hungarian method;
 potential method.
      </p>
      <p>When solving a transport problem, you must have an initial reference plan.</p>
      <p>The work of finding this plan was implemented using the least cost method.</p>
      <p>The rules for finding an initial reference plan for a transport problem by the least
cost method differ from the rules for finding such a plan diagonally by the sequence
of cell selection that you want to fill.</p>
      <p>According to the method of least cost, the cell with the least cost of transporting a
unit of cargo from the supplier to the consumer is selected first.</p>
      <p>If there are several such cells, then we choose the one for which the quantity of
transportable cargo is the largest.</p>
      <p>After constructing the initial reference plan, each of the methods in the table must
be filled in (m  n  1) by cells, because the rank of the matrix of the transport task
constraint system is equal r  m  n  1 , where m - the number of suppliers, n - the
number of consumers.</p>
      <p>If the number of cells filled is less (m  n  1) , then the plan is degenerate.</p>
      <p>Then it is necessary to fill in an appropriate number of empty (nonbasic) cells,
recording in them "zero transportation", and to consider these cells basic.</p>
      <p>However, when the number of cells filled exceeds (m  n  1) , the initial reference
plan is not properly constructed and is not the reference one.</p>
      <p>Next we focus on a detailed analysis of the potential method to obtain the optimal
solution.</p>
      <p>1. Optimality criterion of the reference plan by the method of potentials.</p>
      <p>We already know the methods of finding the initial support plans of a transport
problem, but we do not know if these basic plans are optimal, ie, giving the lowest
total cost of transportation of all cargo from suppliers to consumers.</p>
      <p>The reference plan is tested for potential optimality.</p>
      <p>According to each supplier Ai we put the potential ui , a to each consumer
B j  j .</p>
      <p>Optimality criterion for the transport plan reference plan: if for some reference plan
( xij ) of a transport problem there are such potential numbers ui and  j that for
basic cells the equality ui  j  cij , is fulfilled and for non-core cells the inequality
ui  j  cij is satisfied for all i  1, m, j  1, n , then such reference plan is optimal.</p>
      <p>The reference plan potentials are determined from the system
ui  j  cij that write down for each filled cell of the transport task table.
equations</p>
      <p>Using the calculated potentials, we check the optimality condition ui  j  cij
for unfilled cells in the table.</p>
      <p>If this condition is not met for at least one non-core cell, that is ui  j  cij , the
current plan is not optimal and you need to move to a new reference plan.
2. Transport task recalculation cycles</p>
      <p>The transition from one reference plan to another is performed by filling a
noncore cell for which the optimality condition is violated.</p>
      <p>If there are several outlined cells, then the one that has the most disturbance is
selected for filling, that is max ij  (ui  j )  cij .</p>
      <p>A recalculation cycle is built for the selected empty cell.</p>
      <p>The redistribution of products within the cycle is carried out according to the
following rules:</p>
      <p>a) to each vertex of the cycle is assigned a specific sign, with an unfilled cell a sign
"+", and all others alternately signs "-" and "+";
b) enter into the empty cell the least of the numbers in cells with the sign "-".</p>
      <p>At the same time, this number is added to the corresponding numbers in cells with
the sign "+" and subtracted from the numbers in cells with the sign "-".</p>
      <p>Thus, the free cell became full and the corresponding cell with the smallest number
(at the top with "-") became blank.</p>
      <p>As a result of this redistribution of products, we will receive a new reference plan
for the transport problem, which we again test for optimality.</p>
      <p>If the solution is optimal, then we calculate the minimum value of the objective
function (the minimum cost of transporting the entire load), and if not optimal, then
again build the recalculation cycle and move to the new reference plan using the cycle
shift.</p>
      <p>The process is repeated until the optimal solution to the transport problem is
obtained.</p>
      <p>The values of the base cells that did not participate in the recalculation cycle
remain unchanged in the new table.</p>
      <p>If at some point the needs coincide with the stocks, then the needs are set to true
zero, and in the stocks - dummy (zero with a dot).</p>
      <p>Then a complete system of equations for finding the potential values is
immediately constructed.</p>
      <p>In degenerate plan problems, the cycle shift often needs to be set to 0.</p>
      <p>Then, when moving to the next table, the values of the base cells that participated
in the conversion cycle did not change.</p>
      <p>Only this "base zero" is transferred to a non-base cell, for which it essentially did a
recalculation cycle, and the cell that contained this 0 becomes free.</p>
    </sec>
    <sec id="sec-3">
      <title>3 Statement of the Problem</title>
      <p>Without reducing the generality of the approach proposed in the paper, let us consider
the model problem of minimizing the cost of drinking water delivery.</p>
      <p>Delivery of drinking water to vending machines will always be necessary, most
people use them several times a week.</p>
      <p>Therefore, there may be problems with the transportation and filling of the
machines in a timely manner and with minimal gasoline costs.</p>
      <p>The volume of drinking water is determined by the presence of a certain number of
liters of water from the storage.</p>
      <p>When delivering water to fill an automatic machine, there are situations where one
machine can fill multiple automatic machines because it contains more water than
necessary.</p>
      <p>Alternatively, it is necessary for one machine to transport water to machines that
are closest to each other and contain a volume so that the machine can fill them with
the least residue.</p>
      <p>When carrying out such operations with a large number of consumers, there are
certain difficulties in finding the best option among the many existing ones that would
provide for the needs of consumers and the costs of carriers would be minimal.</p>
      <p>To solve this problem, you can build an economic-mathematical model that boils
down to a transport-type problem.</p>
      <p>Suppose we have n drinking water storage facilities that are in demand at a
particular time, and it is planned to distribute water from them to m consumers (drinking
water dispensers).</p>
      <p>To construct an economic and mathematical model of the problem we introduce
the following notation: i - water storage index, i  1, n, j - vending machine index,
j  1, m , b j - volume of water to be delivered to the j vending machine; cij - the
cost of transporting water to the j vending machine from i storage; ai - volume of
water in the i storage in liters; xij - the number of liters that will be delivered to the
vending machine from its storage.</p>
      <p>It is necessary to find a solution to problem (1) - (3), that is, an optimal strategy for
the distribution of available water resources, which will minimize the cost of the
carrier during the water delivery.
4</p>
    </sec>
    <sec id="sec-4">
      <title>Methods of Solving</title>
      <p>
        In the paper, the potential method is chosen to parallel the solution of a given
problem, because it allows to solve the transport problem for a finite number of steps
(iterations) according to the constructed reference plan, which uses the least cost method
[
        <xref ref-type="bibr" rid="ref11 ref12 ref13">11-13</xref>
        ].
      </p>
      <p>The advantages of the potential method over other methods are that there is no
need to construct cycles for each of the empty cells and simplify the calculation of the
algebraic sums of tariffs.</p>
      <p>Only one cycle is being built - the one that is being recalculated.</p>
      <p>Applying the method of potentials, we can speak not of the sign of algebraic sums
of tariffs, but of the comparison of indirect tariffs with the true ones.</p>
      <p>The requirement for the inalienability of algebraic sums of tariffs is replaced by the
condition that indirect tariffs do not exceed the true ones.</p>
      <p>It should be borne in mind that the potentials (as well as cycles) for each new
baseline plan are redefined.</p>
      <p>To understand this, we first present a sequential algorithm for solving a problem,
and then build a parallel algorithm based on it.</p>
      <p>The sequential algorithm for solving the transport problem (1) - (3) by the potential
method for obtaining the optimal solution is as follows:
1. Let u1  0, Dmin  c11  u1  1
2. Let's find out ui , j , i  2, n, j  1, m .</p>
      <p>3. For each cell (i, j) we calculate Dij  cij  ui  j , incidentally searching
Dmin .</p>
      <p>4. If not Dmin</p>
      <p> 0 , then the plan is optimal and the method ends.
5. We select the cell (imin , jmin ) with the smallest Dij  Dmin
and construct
the loop, while at the same time finding the least xmin of the values xij in the cells
that have an even number in the cycle.</p>
      <p>6. We assume that xij  xij  xmin if the sequence number of a cell in a loop is
odd xij  xij  xmin , if the sequence number of a cell in a cycle is even, then i, j
the coordinates of the cell.</p>
      <p>7. Go to step 3.</p>
      <p>Analyzing the algorithm for the possibility of parallelization, we came to the
following conclusions:</p>
      <p>1) Steps 1-2 are inappropriate to parallelize, since the potential value can only be
obtained if the potential value is available and vice versa.</p>
      <p>2) Steps 3-4 are convenient to parallelize since the shared data are arrays C ,U and
V , and do not change during execution, but are read-only.</p>
      <p>The value Dmin changes during execution, however, announcing local variables
Dmin for each of the threads allows for proper synchronization.</p>
      <p>Therefore, steps 3-4 are subject to parallelization by distributing iterations between
threads.</p>
      <p>3) Step 5 is inappropriate to parallelize, the fragments of the search of the -this cell
can only be performed if the -this cell of the cycle is present.</p>
      <p>4) Step 6 is easy to parallelize using read-only shared data xmin .</p>
      <p>Therefore, step 6 is subject to parallelization by distributing iterations between
threads.</p>
      <p>So, the parallel algorithm will look like this:</p>
      <p>Items 1), 2), 4), 6), 7), 9), 10) coincide with the sequential algorithm, and the
following items are different:</p>
      <p>3. We divide many cells into portions in proportion to the number of processor
cores. We pass information to computing nodes.</p>
      <p>5. Based on the data obtained from the computing nodes, we select the smallest
Dmin .</p>
      <p>8. We divide many cells into portions in proportion to the number of processor
cores.</p>
      <p>We pass the position of the cycle cells to the computing nodes.</p>
    </sec>
    <sec id="sec-5">
      <title>5 Software Development</title>
      <sec id="sec-5-1">
        <title>The program is designed using C ++.</title>
        <p>C ++ compiled applications are mobile, namely it can be run on computers from
different manufacturers and operating systems, making C ++ particularly popular.</p>
        <p>Application interface (see Fig. 1)
1) Was designed in C ++ Builder6.</p>
        <p>This allows you to edit the number of rows and columns of the matrix - add or
delete them, fill in the data manually through the application interface, or read from a
file.</p>
        <p>In the absence of redundancy, no intermediate results are output, only a
postdegeneration reference plan, U and V potentials, a free cell estimation matrix, an
optimal plan and minimal transportation costs.
Also, we output all the intermediate and final results in a text file, in it you can see the
dimension of the matrix, the initial matrix, all stages of its modification and such end
results as the execution time, the reference plan and the minimum costs.</p>
        <p>
          In Fig.2 you can see the initial matrix and the final results of the execution.
To parallel the computational process, a parallel programming software with OpenMP
specification was used [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ].
        </p>
        <p>OpenMP is a standard that includes compiler directives, libraries, and system
variables that can be used to indicate concurrency on shared memory systems.</p>
        <p>This is a technology that can be considered as a high-level add-on over Pthreads
(or similar thread libraries).</p>
        <p>
          OpenMP provides SPMD - a Model (Single Program Multiple Data) of parallel
programming, which uses the same code for all parallel streams [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ].
        </p>
        <p>OpenMP is easy to use and includes only two basic types of designs: directives and
functions of the OpenMP runtime that connect as an additional “omp.h” library.
Graphic description language was used to represent the diagrams for object modeling
in software development area - UML, namely in Draw IO.</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>6 Numerical Experiments</title>
      <p>
        It is known [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] that the parallel acceleration is called the ratio of the execution time
of a sequential program to the execution time of its parallel implementation:
R 
t
consistent
tparallel
(4)
After experimental verification of the execution time of the serial and parallel
algorithm on the same input data, the average results of execution time and acceleration
on several kernels are presented in Table 1.
      </p>
      <p>From here you can see that the parallel algorithm gives an acceleration of more
than one unit (gain) when the input matrix size is about 10,000 elements.</p>
      <p>The graphs shown in Fig. 3 and Fig.4 it can be seen that, indeed, the larger the
dimension, the better the advantage of the larger the number of processor cores.</p>
      <p>
        Amdal's law [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] theoretically expects to obtain acceleration for a dual-core
processor of 1,29 and for a quad-core one of 1,45.
the task, m*n
      </p>
      <sec id="sec-6-1">
        <title>The time of execution of the sequential algorithm, s</title>
      </sec>
      <sec id="sec-6-2">
        <title>Parallel algorithm execution time, s</title>
      </sec>
      <sec id="sec-6-3">
        <title>2 processors</title>
      </sec>
      <sec id="sec-6-4">
        <title>4 processors</title>
      </sec>
      <sec id="sec-6-5">
        <title>Acceleration Time Acceleration 100 500</title>
        <p>1000
10000
100000
0,0312
0,495
1,003
4,537
14,527</p>
        <p>Time
0,221
1,184
1,562
3,917
11,91
0,14
0,413
0,642
1,158
1,219
0,282
1,029
1,483
3,437
10,15
0,11
0,467
0,676
1,32
1,431
Testing on the dimension of Problem 100000 obtained acceleration rates of 1,219 (2
processors) and 1,431 (4 processors).</p>
        <p>This relatively low acceleration is related to the amount of concurrent code in the
algorithm.</p>
        <p>The results obtained confirm Amdal's law; the acceleration of the system cannot
exceed the inverse of the proportion of successive calculations.
Conducted testing of the developed software allows to conclude that the parallel
algorithm for solving the transport problem can be used to effectively find the optimal
solution by the potential method only with a large amount of input data with an
increased number of processor cores.</p>
        <p>The latter is especially relevant for the modern development of multi-core systems.
7</p>
      </sec>
    </sec>
    <sec id="sec-7">
      <title>Conclusion</title>
      <p>In this work we propose an algorithm for finding the optimal solution of a transport
problem that can be used on multi-core systems.</p>
      <p>The latter are increasingly used in various subject areas and are a better
opportunity to increase the power of processors.</p>
      <p>The parallelization was done using OpenMP parallel programming technology.</p>
      <p>The efficiency of this algorithm is tested by running it on dual- and quad-core
processors.</p>
      <p>The validity of the results obtained in the article is confirmed by the theoretically
obtained estimates by Amdal's law.</p>
      <p>You can also conclude that this algorithm allows you to get the best solution for a
transport problem for large dimensions of input with greater efficiency.</p>
      <p>This study is particularly relevant in the current rapid development of multi-core
systems.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Ivanytska</surname>
            ,
            <given-names>O.V</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Roshchina</surname>
            ,
            <given-names>N.V</given-names>
          </string-name>
          , Serbu,l R.
          <article-title>S: Transport problem of linear programming</article-title>
          ,
          <source>Agrosvit, No. 14</source>
          , pp.
          <fpage>35</fpage>
          -
          <lpage>40</lpage>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Samoilenko</surname>
            ,
            <given-names>M.I</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Skokov</surname>
            ,
            <given-names>B.G.</given-names>
          </string-name>
          :
          <article-title>Operations Research (Mathematical Programming</article-title>
          .
          <source>Queuing Theory)</source>
          ,
          <volume>176</volume>
          p.,
          <string-name>
            <surname>Kharkiv</surname>
          </string-name>
          (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Dunaevskaya</surname>
            ,
            <given-names>O.I.</given-names>
          </string-name>
          :
          <article-title>Essence of mathematical methods and models for solving economic problems, International conferences: Research and optimization of economic processes "</article-title>
          <source>Optimum"</source>
          , pp.
          <fpage>128</fpage>
          -
          <lpage>134</lpage>
          ,
          <string-name>
            <surname>Kharkov</surname>
          </string-name>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Yakovlev</surname>
            ,
            <given-names>M.F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gerasymova</surname>
            ,
            <given-names>T.O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nesterenko</surname>
            ,
            <given-names>A.N.</given-names>
          </string-name>
          :
          <article-title>Characteristic feature of the solving both of non-linear systems and systems of ordinary differential equations on parallel computer</article-title>
          . In Proceedings of international symposium “
          <article-title>Optimization problems of computations” (OPC - XXXV)</article-title>
          .
          <article-title>Kyiv: V.M. Glushkov Institute of cybernetics of NAS of Ukraine</article-title>
          , Vol.
          <volume>2</volume>
          , pp.
          <fpage>435</fpage>
          -
          <lpage>439</lpage>
          ,
          <string-name>
            <surname>Kyiv</surname>
          </string-name>
          (
          <year>2009</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Yakovlev</surname>
          </string-name>
          , MV.F.,
          <string-name>
            <surname>Nesterenko</surname>
            ,
            <given-names>A.N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Brusnikin</surname>
            ,
            <given-names>V.N.</given-names>
          </string-name>
          <article-title>Problems of the efficient solving of non-linear systems on multi-processor MIMD-architecture computers</article-title>
          .
          <source>Mathematical machines and systems. (4)</source>
          . P.
          <volume>12</volume>
          -
          <fpage>17</fpage>
          . (
          <year>2014</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Khymych</surname>
            ,
            <given-names>A.N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Molchanov</surname>
            ,
            <given-names>Y.N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Popov</surname>
            ,
            <given-names>A.V.</given-names>
          </string-name>
          <article-title>other: Parallel algorithms for solving problems of computational mathematics</article-title>
          . Kiev: Scientific Opinion,
          <volume>248</volume>
          pp. (
          <year>2008</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Mochurad</surname>
            ,
            <given-names>L.I.</given-names>
          </string-name>
          <article-title>Method of reduction model for calculation of electrostatic fields of electronic fields of electronic optics systems</article-title>
          .
          <source>Science journal Radioelektronіka</source>
          , informatics, management,
          <volume>1</volume>
          (
          <issue>48</issue>
          ), pp.
          <fpage>29</fpage>
          -
          <lpage>40</lpage>
          (
          <year>2019</year>
          ). (Ukrainian)
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Voss</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>OpenMP Share Memory Parallel programming</article-title>
          . Toronto, Kanada (
          <year>2003</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Chapman</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jost</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          :
          <article-title>Using OpenMP: portable shared memory parallel programming (Scientific and Engineering Computation)</article-title>
          . Cambridge, Massachusetts: The MIT Press (
          <year>2008</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Chandra</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Menon</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dagum</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kohr</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Maydan</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>McDonald</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          :
          <article-title>Parallel Programming in OpenMP</article-title>
          . Morgan Kaufinann Publishers (
          <year>2000</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Grama</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gupta</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Karypis</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kumar</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          :
          <article-title>Introduction to Parallel Computing</article-title>
          .
          <source>Addison Wesley, ISBN- 0-201-64865-2</source>
          , 856 p. (
          <year>2003</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Mochurad</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Boyko</surname>
          </string-name>
          , N.:
          <article-title>Solving Systems of Nonlinear Equations on Multi-core Processors</article-title>
          .
          <source>Advances in Intelligent Systems and Computing IV Selected Papers from the International Conference on Computer Science and Information Technologies, CSIT 2019, September</source>
          <volume>17</volume>
          -20, рp.
          <fpage>90</fpage>
          -
          <lpage>106</lpage>
          , Lviv, Ukraine (
          <year>2019</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Sira</surname>
            ,
            <given-names>O.V</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bachkir</surname>
            ,
            <given-names>L.V.</given-names>
          </string-name>
          :
          <article-title>Transport Problems with Stochastic Demand, KSPU Bulletin</article-title>
          . Vol.
          <volume>6</volume>
          /
          <year>2006</year>
          (41).
          <source>Part 1</source>
          , pp.
          <fpage>22</fpage>
          -
          <lpage>25</lpage>
          ,
          <string-name>
            <surname>Kyiv</surname>
          </string-name>
          (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Shakhovska</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Boyko</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zasoba</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Benova</surname>
          </string-name>
          , E.:
          <article-title>Big data processing technologies in distributed information systems</article-title>
          .
          <source>Procedia Computer Science</source>
          , 10th International conference
          <article-title>on emerging ubiquitous systems and pervasive networks (EUSPN-2019), 9th International conference on current and future trends of information and communication technologies in healthcare (ICTH-</article-title>
          <year>2019</year>
          ), Vol.
          <volume>160</volume>
          ,
          <year>2019</year>
          , pp.
          <fpage>561</fpage>
          -
          <lpage>566</lpage>
          , Lviv, Ukraine (
          <year>2019</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Boyko</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Shakhovska</surname>
            ,
            <given-names>Kh.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mochurad</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Campos</surname>
          </string-name>
          , J.:
          <article-title>Information System of Catering Selection by Using Clustering Analysis</article-title>
          ,
          <source>Proceedings of the 1st International Workshop on Digital Content &amp; Smart Multimedia (DCSMart</source>
          <year>2019</year>
          ), рр.
          <fpage>94</fpage>
          -
          <lpage>106</lpage>
          , Lviv, Ukraine (
          <year>2019</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Kvurt</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tsylylyk</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>The use of the laws of Amdal's and Gustafson's in estimating the acceleration rate in multiprocessor systems</article-title>
          ,
          <source>Measurement Engineering and Metrology</source>
          , Vol.
          <volume>70</volume>
          , pp.
          <fpage>55</fpage>
          -
          <lpage>57</lpage>
          , Lviv, Ukraine (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>