<!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>Automated Design of a Parallel Program Intraparticle Diffusion and Adsorption in Nanoporous Media for Modeling Heterogeneous</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Anatoliy Yu. Doroshenko</string-name>
          <email>doroshenkoanatoliy2@gmail.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Mykhaylo R. Petryk</string-name>
          <email>mykhaylo_petryk@tntu.edu.ua</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Dmytro Ivanenko</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Olena A. Yatsenko</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>M. Mykhalyk</string-name>
          <email>d.mykhalyk@gmail.com</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Pavlo</string-name>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Institute of Software Systems of the National Academy of Sciences of Ukraine</institution>
          ,
          <addr-line>Glushkov prosp. 40, build. 5, Kyiv, 03187</addr-line>
          ,
          <country country="UA">Ukraine</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Ternopil Ivan Puluj National Technical University</institution>
          ,
          <addr-line>Ruska str. 56, build. 1, Ternopil, 46001</addr-line>
          ,
          <country country="UA">Ukraine</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>The design of high-level programming abstractions in the form of algebra-algorithmic languages and models is one of the promising directions in the development and research of parallel computing systems. The purpose of such design is the development of architectureand language-independent programming tools for multiprocessor platforms. The paper gives the results of the construction and parallelization of a program implementing a CrankNicolson scheme using algebra-algorithmic specifications represented in a natural-linguistic form. The Crank-Nicolson scheme is applied for obtaining a numerical solution of the model of a distributed mass transfer system and identifying the distribution of diffusion coefficients in a heterogeneous nanoporous medium. Heterogeneous media consisting of thin layers of particles of forked porous structure with different physical-chemical properties are widely used in science-intensive technologies and priority sectors of industry, medicine, ecology, etc. Such layers are distributed systems of pores consisting of two main spaces: micro- and nanopores of particles and macropores and cavities between particles. In modeling concentration and gradient fields for various diffusible components, an important scientific problem is the identification of kinetic parameters of a transfer, predetermining mass transfer velocity on macro- and micro levels, and also equilibrium conditions. The tools for automated design, synthesis, and auto-tuning of programs were applied that provided the translation of the Crank-Nicolson algorithm into source code in a target programming language and its tuning for execution environment to increase the program performance. The experiment results of auto-tuning the software implementation of the Crank-Nicolson scheme demonstrated high multiprocessor speedup on test data input. Automated software design, heterogeneous and nanoporous media, mass transfer, mathematic model, parallel computing, program auto-tuning</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>
        One of the promising directions in the development and research of parallel computing systems is
the construction of high-level programming abstractions in the form of algebra-algorithmic languages
and models, the purpose of which is the development of architecture- and language-independent
programming tools for multiprocessor platforms. In works [
        <xref ref-type="bibr" rid="ref1 ref2 ref3 ref4 ref5">1–5</xref>
        ], methods and tools for automated
design, synthesis, and automatic self-adjustment (auto-tuning) of parallel programs based on
Glushkov’s system of algorithmic algebras (SAA) and the rewriting rules technique were developed.
SAA is intended for formalized design of programs presented in the form of high-level schemes.
Auto-tuning provides optimization of programs — their adjustment to a specific computing
environment by the automated search for the optimal program from a set of possible options, each of
which is executed on a given parallel architecture with performance (execution time) measurement.
Auto-tuning tools apply rewriting rules to transform programs.
      </p>
      <p>
        In this paper, the tools developed are used for the design and auto-tuning of a parallel program for
the implementation of the Crank-Nicolson scheme for execution on a multi-core processor. The
Crank-Nicolson method is a special numerical technique for solving differential equations with partial
derivatives based on a special scheme of the finite difference method, in particular, for heat
conduction and diffusion equations. In [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], the Crank-Nicolson scheme is applied for obtaining a
numerical solution of the model of a distributed mass transfer system and identification in the direct
and conjugate formulation for identifying the distribution of diffusion coefficients in a heterogeneous
nanoporous medium based on the theory of optimal control of the state of multicomponent systems. A
gradient procedure for identifying parameters of internal transfer kinetics was implemented and the
distribution of diffusion coefficient values for intraparticle and interparticle transfer was obtained.
      </p>
      <p>
        Heterogeneous nanoporous media consisting of thin layers of particles of a branched porous
structure with different physical and chemical properties are widely used in science-intensive
technologies and priority sectors of industry, medicine, ecology, etc. Such layers are distributed
multilevel pore systems consisting of two main spaces: micro- and nanopores of particles and macropores
and cavities between particles. The intraparticle space has a higher degree of adsorptive capacity and,
at the same time, a lower rate of diffusion intrusion compared to the interparticle space [
        <xref ref-type="bibr" rid="ref7 ref8 ref9">7–9</xref>
        ]. When
modeling concentration and gradient fields for various diffused components, an important scientific
problem is the identification of kinetic transport parameters that determine the rate of mass transfer at
the macro- and micro-levels, as well as equilibrium conditions.
      </p>
    </sec>
    <sec id="sec-2">
      <title>2. The tools for automated design, generation, and auto-tuning of programs</title>
      <p>
        In this work, we use the system of algorithmic algebras [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] intended for the construction of
algorithms and programs represented in the form of high-level schemes. SAA is the two-sorted
algebra , where and are sets of predicates and operators defined on
an information set; is a signature of operations, consisting of logic (disjunction, conjunction,
negation) and operator constructs, which will be considered further. In this work, a natural-linguistic
form of operations notation is used. SAA is based on the language SAA/1 [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], which uses a
representation of algorithms close to natural language and can be translated into a target programming
language (C++, Java and other). Algorithms represented in SAA/1 are called SAA schemes.
Identifiers of predicates are written in single quotes, and operators are enclosed in double ones.
Predicates and operators in SAA/1 can be basic or compound. Basic elements are elementary atomic
abstractions in SAA schemes.
      </p>
      <p>Compound operators are built from basic operators based on the following operations:
 composition (sequential execution) of operators:
 branching:
 for loop:
 asynchronous execution of operators (threads):
 control point: , which is associated with a synchronization condition that has
the value “false” until the computation process has reached this point in an algorithm scheme, and
the value “true” after the point is reached;
 synchronizer: , which delays the computation until the value of the
synchronization condition becomes “true”.</p>
      <p>
        The developed integrated toolkit for program design and synthesis (IDS) [
        <xref ref-type="bibr" rid="ref1 ref4">1, 4</xref>
        ] provides automated
construction of algorithm schemes and generation of corresponding code in target programming
languages (C, C++, Java). Algorithms are designed using a list of SAA operations and a tree. The user
selects constructs from the list and adds them to the algorithm construction tree. At each step of the
design process, the system allows the user to select only those operations, the insertion of which into
the scheme does not violate its syntactic correctness. The algorithm tree is further used to
automatically generate the text of the SAA scheme and the code in a programming language. The
representation of each SAA construct in the text in the programming language is specified as a
template in the database of the integrated toolkit.
      </p>
      <p>
        The application of formal methods in the IDS toolkit and rewriting rules of the TermWare
system [
        <xref ref-type="bibr" rid="ref4 ref5">4, 5</xref>
        ] provides an opportunity to automate the manual work of programmers and perform
more complex parallelization of algorithms. TermWare provides a language for describing rewriting
rules that operate on special data structures — terms, as well as tools for processing and interpreting
rules for transforming terms. The performance of the designed programs can be improved by using
the developed automatic program tuning system TuningGenie [
        <xref ref-type="bibr" rid="ref2 ref3">2, 3</xref>
        ]. TuningGenie is intended for the
automated generation of autotuner applications from source code in Java language. The idea of the
autotuner is to empirically evaluate several versions of the input program and select the best one —
with reduced execution time and higher accuracy of the results. The system works with the program
text, using the expert knowledge of the developer, who adds certain metadata (parameter names and
value ranges) to the source code in the form of special comments (pragmas). By using such expert
knowledge, the number of options for the evaluation program is reduced, which increases the
performance of the autotuner.
      </p>
      <p>TuningGenie uses TermWare to extract expert knowledge from original software code and
generate a new version of a program at each autotuning iteration. By manipulating terms represented
as abstract syntax trees, TuningGenie can perform structural changes in program computations using
the declarative style of the TermWare system. In the process of analyzing the source code and
building a term tree, the autotuner builds a set of configurations based on expert data. These
configurations are then translated into rewriting rules. Also, at this preliminary stage, some program
parameter values are computed. The outputs of this step include a program term, a set of
parameterized rewriting rules, and a set of rule configurations that specify specific parameter values.
Each of these configurations specifies a unique version of the input application. Next, TuningGenie
searches for the most efficient configuration for a given computing environment.</p>
      <p>Expert knowledge about the subject domain and implementation is stored in a source code as
special directives called pragmas. Pragmas are special form comments, so they are ignored by the
Java compiler. Adding pragmas does not change the structure of computations, and a program
equipped with pragmas can be translated by any compiler without additional libraries. Below is an
example of one of TuningGenie’s pragmas called tunableParam. This pragma sets the possible values
for the NumThreads variable, which stores the number of parallel threads, in a range
with
step 1:
// tunableParam name=NumThreads start=1 stop=16 step=1
int NumThreads = 1;</p>
      <p>The tunableParam pragma is used for algorithms that use data parallelization: it allows finding the
optimal decomposition of calculations by estimating the size of a block that is executed on one
processor. It can also be used when it is necessary to estimate the optimal amount of limited
resources, for example, the size of the cache.</p>
      <p>In this work, the developed tools are used for the automated design and tuning of a parallel
program for the implementation of the Crank-Nicolson scheme. The formulation of the problem for
which the scheme is used is considered in the next section.</p>
    </sec>
    <sec id="sec-3">
      <title>3. Formulation of the problem of two-level transport in a heterogeneous system of nanoporous particles and an algorithm for implementing the gradient method of identifying intraparticle diffusion coefficients</title>
      <p>Mass transfer in a system of heterogeneous media consisting of small particles of a nanoporous
structure causes two types of mass transfer: diffusion in macropores, due to the space between
particles, and diffusion in the system of micro- and nanopores inside the particles of a heterogeneous
medium. To determine the contribution of each type of diffusion to the overall mass transfer system, it
is necessary to know the values of the parameters that define the adsorption equilibria, etc. In this
work, a heterogeneous nanoporous medium is considered, which consists of a large number of
thin layers, nanoporous spherical particles located perpendicular to the direction of the incoming flow
and interconnected by a system of conditions of n-interface interactions. This is decisive for
heterogeneous thin nanoporous samples, especially in the case of gas diffusion before the state of
adsorption equilibrium, taking into account the system of multi-interface interactions. Mass transfer
occurs through the permeable surface of the bed in two directions: in the axial direction — in the
space of macropores (direction along the height of the bed, perpendicular to the surface of the
layers) and radial — in the space of micro- and nanopores. The evolution of the system towards
equilibrium is carried out by concentration gradients in macropores and micro- and nanopores of
particles (from the surface to the center).</p>
      <p>
        The mathematical model of such a transfer, taking into account the above-mentioned physical
factors, is described in the form of a mixed boundary value problem [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]: to construct a bounded in
domain
solution of the system of equations in partial derivatives written in matrix form:
with initial conditions:
boundary conditions:
and a system of conditions of n-interface interactions along coordinate
:
where
      </p>
      <p>
        The system of differential equations (1) describes the transfer in the interparticle space, limited by
the right-hand parts of the system, which take into account the effect of micro transfer on the outer
surfaces of particles or crystallites for each k-th layer of the bed. The system of equations (2)
describes transport in micro- and nanopores of the intraparticle space. The relation between
concentrations in the interparticle space and concentrations in the intraparticle space is defined
by the system of right-hand boundary conditions (5), which also defines the conditions of adsorption
equilibrium on the surfaces of spherical particles, is the thickness of the k-th layer,
is the radius of the particle. The problem is solved using the Crank-Nicolson difference scheme [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
      </p>
      <p>
        The procedure for implementing the gradient method of identifying intraparticle mass transfer
coefficients (
,
) is based on the use of the system state matrix
,
which corresponds to the total accumulated mass of the diffused component in the pores of particles
in the interparticle and intraparticle space [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. The matrix is defined by the formula
,
where
layers (Figure 1) [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ].
      </p>
      <p>is the matrix of experimental studies data for і-th surface and k-th time
, time and space variables
and
define specific states of the
competitive transfer system for heterogeneous (by direction ) catalytic medium of nanoporous
particles, for which identification of kinetic parameters-coefficients of intraparticle diffusion is carried
out
for each of</p>
      <p>layers.</p>
      <p>To identify this distribution (vector)</p>
      <p>
        , one of the gradient methods is used, the mathematical
substantiation of which is applied to the problems of parametric identification of multicomponent
distributed systems and is presented in [
        <xref ref-type="bibr" rid="ref12 ref13">12, 13</xref>
        ]. Based on the specifics of the problem, the method of
minimum errors is the most suitable, according to which, to define the ( )-th the approximation of
the diffusion coefficient in the intraparticle space
, we apply the following
gradientidentification procedure defined in matrix form:
where
is the value of the coefficient for each
      </p>
      <p>-th step of the iteration.</p>
      <p>The general scheme of the algorithm for identifying intraparticle diffusion coefficients
is shown in Figure 2.</p>
      <p>
        The results of the experiments on numerical modeling and identification of kinetic parameters
based on the given algorithm are considered in [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
      </p>
    </sec>
    <sec id="sec-4">
      <title>4. Results of experiments</title>
      <p>This section gives the results of tuning the parallel program implementing the Crank-Nicolson
scheme to a target execution environment and numerical modeling and identification of kinetic
parameters of a heterogeneous nanoporous mass transfer system.</p>
      <p>Further, the process of parallelization of one of the subroutines of the implementation of the
Crank-Nicolson scheme is described. The sequential SAA scheme of this routine, designed using the
IDS toolkit, is shown below. The scheme is a loop by variable , in which functions
iterate_c(k) and iterate_q(k) calculate the k-th layer for concentration values and in the
interparticle and intraparticle space, respectively.</p>
      <p>SCHEME CRANK-NICOLSON SEQUENTIAL ====
“iterations”
==== FOR (k FROM 1 TO N)
“iterate_c(k)”;
“iterate_q(k)”</p>
      <p>END OF LOOP
END OF SCHEME</p>
      <p>The parallelization of the scheme consists in the division of the segment into NumThreads
sections processed simultaneously. The SAA scheme of the parallel algorithm is as follows:
SCHEME CRANK-NICOLSON PARALLEL ====
“iterations”
==== PARALLEL(j = 1,..., NumThreads)
(</p>
      <p>“IterateThread(j)”
);</p>
      <p>WAIT ‘Processing in all (NumThreads) threads is finished’;
“IterateThread(j)”
==== “chunk := N / NumThreads”;
“start := (j – 1) * chunk + 1”;
“end := (j – 1) * chunk + chunk”;
IF (j = NumThreads) THEN</p>
      <p>“end := N”
END IF;
FOR (k FROM start TO end)
“iterate_c(k)”;
“iterate_q(k)”
END OF LOOP;</p>
      <p>CP ‘Processing in the thread (j) is finished’;
END OF SCHEME</p>
      <p>Based on the designed scheme, the IDS toolkit performed automated code generation in the Java
language. Next, the TuningGenie system was used to find the optimal configuration for the program
when running on a multi-core processor. With this system, various combinations of
performancerelated JVM compiler options (-XX:-UseBiasedLocking/-XX:BiasedLockingStartupDelay) were
tested at various thread count values. Changing compiler options did not show a significant impact on
computational performance, so the following results refer mainly to changes to the NumThreads
parameter. The characteristics of the test environment were the following: quad-core processor Intel
Core i7-6820HQ with frequency 2,7 GHz; cache L1: 32k/32k x4, cache L2/L3: 256k x4, 8 MB; RAM
16 GB, 2133 MHz LPDDR3; OpenJDK build 11.0.2+9; macOS v11.6.</p>
      <p>Intuition suggests that the optimal number of threads should be 8, since the processor is a
quadcore with support for hyper-threading technology. This configuration is marked with a triangle in the
diagram (Figure 3) and demonstrated an acceptable multiprocessor speedup of 5.16 on the test input
data.</p>
      <p>However, increasing the number of threads further resulted in additional performance
improvement of approximately 140%. The fastest application configuration with 62 threads (indicated
by the dot in the diagram) achieved a fairly good multiprocessor speedup of 6.5. This is explained by
the increased efficiency of using processor caches. Fine-grained decomposition is more likely to be
placed in the L1–L3 cache and saves time for access to “slow” RAM. This effect is balanced by the
additional time cost of thread competition. Nevertheless, the overall effect was positive.</p>
      <p>The results of the parametric identification of kinetic parameters carried out in accordance with the
considered methodology and using the specified experimental data are presented in Figure 4 and
Figure 5. Like the results of the experimental studies (Figure 1), they were obtained for different time
snapshots for the cases of the process of independent diffusion of benzene and hexane. Figure 4 (a)
and Figure 5 (a) show the graphical distributions of the values of the identified diffusion coefficients
along coordinate during the diffusion of benzene for the moments of time and
From the given graphic results of the process of identification of diffusion coefficients
, for the intraparticle space, it is possible to distinguish general characteristic laws, which
consist in a somewhat pseudo-exponential decrease of the values of diffusion coefficients in the range
of m/sec2 (taking into account the computation errors). A similar picture is
observed for the diffusion process of hexane, for which the procedure of identification of diffusion
coefficients in the intraparticle space
for time snapshots
and
was
carried out. The results of the identification are presented in Figure 5 (a).</p>
      <p>The obtained results of the identified distributions of diffusion coefficients in the intraparticle
space along coordinate (the main direction of heterogeneity of the system) allow sufficiently
accurate modeling of the concentration fields and integral mass distributions in the heterogeneous
catalytic nanoporous layer. Figure 4 (b) and Figure 5 (b) present the concentration profiles
demonstrating a comparative analysis of model curves (2), constructed as a result of the numerical
solution of the problem (1)–(6) using the Crank-Nicolson scheme, and also the comparison of the
results of identified coefficients within particle diffusion with approximations of experimental
distribution curves of the absorbed mass in the nanoporous layer used for the identification procedure.
a)
b)
for hexane diffusion: a) the distribution of diffusion coefficients
b) the comparison of model (2) and experimental (1) curves
in the intraparticle space;
for
for
for
for</p>
    </sec>
    <sec id="sec-5">
      <title>5. Conclusion</title>
      <p>Automated design and parallelization of the Crank-Nicolson scheme implementation program
using algebraic-algorithmic specifications presented in the natural-linguistic form were performed.
Previously developed tools for automated design, synthesis, and auto-tuning of programs were
applied, which provided the transformation of algebraic-algorithmic schemes into source code in a
programming language and its automated tuning to the execution environment to increase the program
performance. The results of the experiment on the automated tuning of the parallel program
demonstrated a high multiprocessor speedup on test input data.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>P. I.</given-names>
            <surname>Andon</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Yu. Doroshenko</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K. A.</given-names>
            <surname>Zhereb</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O. A.</given-names>
            <surname>Yatsenko</surname>
          </string-name>
          ,
          <article-title>Algebra-Algorithmic Models and Methods of Parallel Programming, Akademperiodyka</article-title>
          , Kyiv,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>A.</given-names>
            <surname>Doroshenko</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Ivanenko</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Novak</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Yatsenko</surname>
          </string-name>
          ,
          <article-title>A mixed method of parallel software autotuning using statistical modeling and machine learning</article-title>
          , in: V.
          <string-name>
            <surname>Ermolayev</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Suárez-Figueroa</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          <string-name>
            <surname>Yakovyna</surname>
            ,
            <given-names>H. C.</given-names>
          </string-name>
          <string-name>
            <surname>Mayr</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Nikitchenko</surname>
            ,
            <given-names>A</given-names>
          </string-name>
          . Spivakovsky (Eds.) Information and Communication Technologies in Education, Research, and Industrial Applications,
          <string-name>
            <surname>ICTERI</surname>
          </string-name>
          <year>2018</year>
          , volume
          <volume>1007</volume>
          of Communications in Computer and Information Science, Springer-Verlag, Cham,
          <year>2019</year>
          , pp.
          <fpage>102</fpage>
          -
          <lpage>123</lpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>030</fpage>
          -13929-
          <issue>2</issue>
          _
          <fpage>6</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>P.</given-names>
            <surname>Ivanenko</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Doroshenko</surname>
          </string-name>
          , K. Zhereb,
          <article-title>TuningGenie: auto-tuning framework based on rewriting rules</article-title>
          , in: V.
          <string-name>
            <surname>Ermolayev</surname>
            ,
            <given-names>H. C.</given-names>
          </string-name>
          <string-name>
            <surname>Mayr</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Nikitchenko</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Spivakovsky</surname>
            , G. Zholtkevych (Eds.) Information and Communication Technologies in Education, Research, and Industrial Applications,
            <given-names>ICTERI</given-names>
          </string-name>
          <year>2014</year>
          , volume
          <volume>469</volume>
          of Communications in Computer and Information Science, Springer-Verlag, Cham,
          <year>2014</year>
          , pp.
          <fpage>139</fpage>
          -
          <lpage>158</lpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>319</fpage>
          -13206-
          <issue>8</issue>
          _
          <fpage>7</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>A.</given-names>
            <surname>Doroshenko</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Zhereb</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Yatsenko</surname>
          </string-name>
          ,
          <article-title>Developing and optimizing parallel programs with algebra-algorithmic and term rewriting tools</article-title>
          , in: V.
          <string-name>
            <surname>Ermolayev</surname>
            ,
            <given-names>H. C.</given-names>
          </string-name>
          <string-name>
            <surname>Mayr</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Nikitchenko</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Spivakovsky</surname>
            , G. Zholtkevych (Eds.) Information and Communication Technologies in Education, Research, and Industrial Applications,
            <given-names>ICTERI</given-names>
          </string-name>
          <year>2013</year>
          , volume
          <volume>412</volume>
          of Communications in Computer and Information Science, Springer-Verlag, Cham,
          <year>2013</year>
          , pp.
          <fpage>70</fpage>
          -
          <lpage>92</lpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>319</fpage>
          -03998-
          <issue>5</issue>
          _
          <fpage>5</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>A.</given-names>
            <surname>Doroshenko</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Shevchenko</surname>
          </string-name>
          ,
          <article-title>A rewriting framework for rule-based programming dynamic applications</article-title>
          ,
          <source>Fundamenta Informaticae</source>
          <volume>72</volume>
          (
          <year>2006</year>
          )
          <fpage>95</fpage>
          -
          <lpage>108</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>M. R.</given-names>
            <surname>Petryk</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. M.</given-names>
            <surname>Mykhalyk</surname>
          </string-name>
          ,
          <string-name>
            <given-names>I. V.</given-names>
            <surname>Hoianiuk</surname>
          </string-name>
          ,
          <article-title>High-performance methods of identification of kinetic parameter for monodiffusion adsorption mass transfer</article-title>
          [in Ukrainian],
          <source>Bulletin of the National University of Water and Environmental Engineering</source>
          <volume>4</volume>
          (
          <year>2020</year>
          )
          <fpage>91</fpage>
          -
          <lpage>104</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>J.</given-names>
            <surname>Kärger</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. M.</given-names>
            <surname>Ruthven</surname>
          </string-name>
          ,
          <article-title>Diffusion and adsorption in porous solids</article-title>
          , in: F.
          <string-name>
            <surname>Schüth</surname>
            ,
            <given-names>K. S. W.</given-names>
          </string-name>
          <string-name>
            <surname>Sing</surname>
          </string-name>
          , J. Weitkamp (Eds.).
          <source>Handbook of Porous Solids</source>
          , Wiley-VCH,
          <year>Weinheim</year>
          ,
          <year>2002</year>
          , pp.
          <fpage>2089</fpage>
          -
          <lpage>2173</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>N. Y.</given-names>
            <surname>Chen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T. F.</given-names>
            <surname>Degnan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. C.</given-names>
            <surname>Smith</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Molecular</given-names>
            <surname>Transport</surname>
          </string-name>
          and
          <article-title>Reaction in Zeolites: Design and Application of Shape Selective Catalysis</article-title>
          , Wiley, New York,
          <year>1994</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>D.</given-names>
            <surname>Ruthven</surname>
          </string-name>
          , Principles of Adsorption and Adsorption Processes, Wiley, New York,
          <year>1984</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>J.</given-names>
            <surname>Kärger</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Grinberg</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Heitjans</surname>
          </string-name>
          , Diffusion Fundamentals, Leipziger Universitätsverlag, Leipzig,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>M. R.</given-names>
            <surname>Petryk</surname>
          </string-name>
          , J. Fraissard,
          <article-title>Mathematical modeling of nonlinear competitive two-component diffusion in media of nanoporous particles</article-title>
          ,
          <source>Journal of Automation and Information Sciences</source>
          ,
          <volume>41</volume>
          (
          <year>2009</year>
          )
          <fpage>37</fpage>
          -
          <lpage>55</lpage>
          . doi:
          <volume>10</volume>
          .1615/JAutomatInfScien.v41.
          <year>i3</year>
          .
          <fpage>60</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>I. V.</given-names>
            <surname>Sergienko</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V. S.</given-names>
            <surname>Deineka</surname>
          </string-name>
          ,
          <article-title>System Analysis of Multicomponent Distributed Systems</article-title>
          [in Russian],
          <string-name>
            <surname>Naukova</surname>
            <given-names>dumka</given-names>
          </string-name>
          , Kyiv,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>M. R.</given-names>
            <surname>Petryk</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Fraissard</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. M.</given-names>
            <surname>Mykhalyk</surname>
          </string-name>
          ,
          <article-title>Modeling and analysis of concentration fields of nonlinear competitive two-component diffusion in medium of nanoporous particles</article-title>
          ,
          <source>Journal of Automation and Information Sciences</source>
          ,
          <volume>41</volume>
          (
          <year>2009</year>
          )
          <fpage>13</fpage>
          -
          <lpage>23</lpage>
          . doi:
          <volume>10</volume>
          .1615/JAutomatInfScien.v41.
          <year>i8</year>
          .
          <fpage>20</fpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>