<!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>High-performance DTW-based signals comparison for the brain electroencephalograms analysis</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>A.I. Makarova</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>V.V. Sulimova</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Tula State University</institution>
          ,
          <addr-line>Lenin Ave., 92, 300012, Tula</addr-line>
          ,
          <country country="RU">Russia</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2017</year>
      </pub-date>
      <fpage>18</fpage>
      <lpage>24</lpage>
      <abstract>
        <p>Automatic analysis of electroencephalograms (EEGs) is one of the promising areas of research, which results can be used, in particular, to build systems of mental control of objects. The Dynamic Time Warping procedure (DTW) is used in this work for comparing signals representing EEG. An important feature of the problem we are considering is the need for multiple comparison of signals at the stage of machine learning, which requires enormous computational costs. We propose a parallel algorithm that was implemented in C++ using the MPI technology and tested using the resources of the supercomputer complex of Moscow State University “Lomonosov”. The results of its testing on real data showed that the proposed method allows achieving an almost linear speedup and reducing the total calculation time from 29 days to 3.5 hours using 128 processes, which opens the possibility of improving the quality of automatic analysis of electroencephalograms.</p>
      </abstract>
      <kwd-group>
        <kwd>high performance computing</kwd>
        <kwd>comparing fragments of electroencephalograms</kwd>
        <kwd>Dynamic Time Warping</kwd>
        <kwd>the MPI technology</kwd>
        <kwd>the supercomputer complex of MSU “Lomonosov”</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>a) b) c)
Fig. 1. a) The process of registering electroencephalograms, b) an example of a target object (mammograms with pathology), c) an example of an un-target
object (mammograms without pathologies).</p>
      <p>Figure 2 shows examples of signals recorded from two of the 66 electrodes during viewing target (solid lines) and non-target
(dashed lines) objects. The signals are subjected to preprocessing (filtration, scaling and smoothing by a sliding window), used
by us to improve the quality of target objects recognition.</p>
      <p>High-Performance Computing / A.I. Makarova , V.V. Sulimova</p>
      <p>From a mathematical point of view, the electroencephalograms, which need to be analyzed for each of the 66 electrodes,
fixed in different parts of the head are single-component discrete signals.</p>
      <p>
        Obviously, the analysis of electroencephalograms must inevitably be based on comparing the signals representing them.
Since the form of the response to the stimulus and the time of its onset can vary, in this work, for the comparison of signals an
adapted version of Dynamic Time Warping (DTW) procedure is used. This algorithm based on the search for optimal pairwise
alignment of compared signals by local compression and stretching of their axes. Initially, the DTW method was proposed to
compare speech signals [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], but was later adapted for many other areas [
        <xref ref-type="bibr" rid="ref7 ref8">7,8</xref>
        ].
      </p>
      <p>
        The task of analyzing electroencephalograms within the framework of this work is formulated in the form of a two-class
pattern recognition problem, which solution is carried out in two stages - training and recognition [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. At the training stage, a
decision rule is formed for assigning new signals to the target or non-target class on the basis of processing a certain finite set of
signals with a known class affiliation. At the recognition stage, the constructed decision rule is applied to new signals.
Recognition can be carried out very quickly, while the process of constructing a good decision rule, which allows to classify
new signals with high accuracy, is very laborious.
      </p>
      <p>
        Modern methods of machine learning in the construction of decision rules are based on measures of object comparison and
allow us to automatically choose the most suitable ones in the training process, improving the quality of the solution of the
problem [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. The great complexity of training is due to the necessity of multiple comparison of long signals in the calculation
of a whole series of matrices of their pairwise dissimilarity (for different electrodes, different types of preprocessing, different
values of the parameters of the comparison algorithm), choosing the most suitable of which is not possible a priori.
      </p>
      <p>In accordance with the above, an extremely topical task is to increase the productivity of the electroencephalogram
comparison.</p>
      <p>
        There are a number of ways to speed up the Dynamic Time Warping procedure, however, they either do not guarantee the
finding of the optimal solution [
        <xref ref-type="bibr" rid="ref11 ref12 ref13 ref14 ref6">6,11-14</xref>
        ], or the performance improvement is provided only in cases, when comparing close or
sparse signals [
        <xref ref-type="bibr" rid="ref15 ref16">15,16</xref>
        ]. But such situations are rare in the analysis of electroencephalograms. The use of modern parallel
computing technologies is a fundamentally different direction for increasing productivity of signals comparison. However, the
implementation of known parallel versions of DTW procedure (as well as similar tasks with cycles having diagonal
dependencies) do not give the desired effect due to the need for frequent synchronization of processes or threads, and in some
cases may even lead to an increase in the operating time compared to the serial version because of less efficient work with the
cache memory [
        <xref ref-type="bibr" rid="ref17 ref18 ref19 ref20 ref21">17-21</xref>
        ].
      </p>
      <p>In this paper, we propose a parallel algorithm that significantly improves the performance of calculating the matrix of pairwise
comparisons for any signals representing fragments of an electroencephalogram. Increase in productivity is performed without
loss of accuracy of calculations due to taking into account the features of the task, allowing to implement parallelization at a
higher level.</p>
      <p>
        The proposed algorithm is implemented in C ++ programming language using the MPI technology [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ] and tested using the
resources of the supercomputer complex of Moscow State University “Lomonosov” [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ]. The results of the research on real data
showed that the proposed method allows to achieve near-linear acceleration, and to reduce the total calculation time from 29
days to 3.5 hours using 128 processes, which opens the possibility of improving the quality of automatic analysis of
electroencephalograms.
      </p>
      <p>High-Performance Computing / A.I. Makarova , V.V. Sulimova</p>
    </sec>
    <sec id="sec-2">
      <title>2. Comparison of fragments of electroencephalograms based on DTW</title>
      <p>2.1. The mathematical formulation of the problem of comparing two signals</p>
      <p>Let x = (x1, x2 ,..., xNx ) and y = ( y1 , y2 , ..., yNy ) - are two single-component discrete signals, which length are Nx and N y ,
respectively, and which consists of xi , y j О R , i = 1,..., Nx , j = 1, ..., Ny elements.</p>
      <p>Specific pairwise warping
of two signals x and y uniquely determines the correspondence of signal's elements and has a length Nw , equal to the number
of such pairwise correspondences. At that first and last elements of signals are certainly corresponded to each other:
w1,1 = w1,2 = 1, wNw ,1 = Nx , w Nw ,2 = Ny .</p>
      <p>A warping of two signals is considered as optimal one if it ensures the minimum value of the following optimality criterion:
where
(1)
b і 0 - penalty for non-parallel references between elements of signals, corresponded to local warping axes.</p>
      <p>The optimal value of the criterion can be considered as a dissimilarity of the signals:
r( x, y) =</p>
      <p>J (x, y, wˆ ) .
2.2. A sequential algorithm for computing the dissimilarity of two signals</p>
      <p>
        The minimum of the optimality criterion (1) can be found by means of the dynamic programming procedure [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ]. It is
convenient to represent the algorithm of finding the optimal warping in terms of an oriented graph of pairwise correspondences
(Figure 3), in which the nodes correspond to the comparison of the signal's elements, the horizontal and vertical edges
correspond to the local warping of the axes (passing through them is penalized with the positive penalty b ), and the diagonal
edges - parallel references between signal's elements.
      </p>
      <p>The algorithm of finding the optimal pairwise warping consists in consecutive passing through all the vertices of the graph,
beginning with the upper left and ending with the bottom right vertex. An incomplete value of the optimality criterion   ̅ ,1 is
calculated at each vertex on the basis of the initial parts of the signals x1..i = (x1,..., xi ) , y1.. j = ( y1,..., y j ) :</p>
      <p>The sought value of the dissimilarity of two signals:  ( ,  ) = √ ̃    .</p>
      <p>High-Performance Computing / A.I. Makarova , V.V. Sulimova
2.3. Calculation of the matrix of values of dissimilarity of electroencephalograms</p>
      <p>As already mentioned above, at the stage of learning the computer algorithms for data analysis, it is necessary to calculate the
matrices of the values of dissimilarity for all pairs of signals representing fragments of electroencephalograms from a certain
training set X = {x1 , x2 , ..., xK } .</p>
      <p>The matrix of pairwise dissimilarities calculated in accordance with the algorithm given in Section 2.2 is symmetric and
contains zero values on the main diagonal, so it is sufficient to calculate only the values belonging to the upper (or lower)
triangle (Figure 4), the number of which can be determined according to the expression K (K - 1)/ 2 .</p>
      <p>Since the number of computations has a quadratic dependence on the number of signals compared, even for a small volume
of training set. In this work the training set consists of K = 755 fragments of electroencephalograms (for each electrode) and so
it is necessary to perform 284635 pairwise comparisons of signals to calculate one matrix. Thus, it is necessary to perform
56357730 pairwise comparisons of signals to calculate such matrices for all 66 electrodes and for three different values of the
penalty for warping signal's axes. Since the time of one pairwise comparison requires, on average, 0.045 seconds, the calculation
of all the matrices takes about 29 days, which makes it impossible to carry out experiments on real data and requires taking
special measures to improve computing performance.</p>
    </sec>
    <sec id="sec-3">
      <title>3. Parallel comparison of fragments of electroencephalograms</title>
      <p>The task of computing several matrices of pairwise dissimilarity of fragments of electroencephalograms has several levels of
data parallelism. Independently from each other can be calculated:
1) the incomplete values of the criterion, located on one minor diagonal of the graph of pairwise correspondences,
2) all elements belonging to the upper (or lower) triangle of the matrix of values of pairwise dissimilarity (Figure 4),
3) all matrices of pairwise dissimilarity.</p>
      <p>
        Parallelization at the first level requires frequent interaction of processes or threads and is associated with the costs of
synchronization, what can also lead to inefficient use of the cache [
        <xref ref-type="bibr" rid="ref17 ref18 ref19 ref20 ref21">17-21</xref>
        ] and, accordingly, does not provide the desired
acceleration of computations.
      </p>
      <p>
        Parallelization at the third level obviously makes sense only if the number of matrices that need to be calculated is greater
than the number of available calculators. It also seems inappropriate, since in this study we focus on the computational
capabilities provided by the supercomputer complex “Lomonosov” of Moscow State University [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ], consisting of more than
5000 nodes and more than 12000 processor cores.
      </p>
      <p>High-Performance Computing / A.I. Makarova , V.V. Sulimova</p>
      <p>So, in the framework of this paper, parallelization is performed at the second level, i.e. the tasks of calculating the elements
of a single matrix of pair-wise dissimilarity for a set of signals are identified as parallel tasks. In this case, if it is necessary to
calculate several matrices, then they are computed sequentially.</p>
      <p>
        MPI technology [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ] has been chosen as a technology for organizing parallel computing, which allows to organize the
interaction of processes running on different computing nodes.
      </p>
      <p>In this case, since even for the Lomonosov supercomputer, the number of elements of each calculated matrix turns out to be
much larger than the number of processors, then the parallel tasks are aggregated by means of a one -time distribution of the
matrix elements between the processes.</p>
      <p>In this paper the following scheme is used to distribute M = K (K - 1) / 2 elements between the P processes: the first
M mod P processes receive the (M - M mod P) / P + 1 elements, and the remaining M - M mod P processes receive the
(M - M mod P) / P elements, where mod is the modulo operation which gives the remainder after division of one integer by
another.</p>
      <p>This scheme allows us to distribute the work between processes as evenly as possible. The one-time even distribution of
elements between the processes proves to be the most effective in this situation, since all compared signals have the same length
and, accordingly, the comparison of any pairs of signals takes approximately the same time. As a result,this scheme allows to
ensure the most efficient use of the resources of the computer system.</p>
      <p>Graphical representation of the scheme of data distribution by processes is shown in Fig. 5.</p>
      <p>According to the proposed scheme of parallel computing, each process independently of the others:
1) reads the original signals representing fragments of electroencephalograms from the input file,
2) determines the number of matrix's elements that it must process and the linear index of the initial element belonging to its
range, according to the above-mentioned principle of uniform distribution of elements between processes,
3) calculates the row and column number determining the position of the given element in the matrix from the found linear
index,</p>
      <p>4) performs a sequential search of the consecutive elements of the matrix belonging to the upper triangle starting from the
element defined in clause 2, at that performs for each element of its range a comparison of the corresponded signals (according
to the sequential algorithm described in Section 2.2) and stores the calculated values in their copy of the dissimilarity matrix.
Calculations continue until the number of elements obtained in step 2 is processed.</p>
      <p>All results are merged on the process with the number 0 using the function MPI_Reduce, after each process computes its
elements of the dissimilarity matrix.</p>
    </sec>
    <sec id="sec-4">
      <title>4. Experimental study</title>
      <p>
        Brain electroencephalograms obtained in the course of the study described in [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] have been used to investigate the proposed
algorithm.
      </p>
      <p>In total, it is required to calculate three matrices (for different values of the penalty) of a pairwise dissimilarity of 755 signals
for each of the 66 electrodes. I.e. it is required to calculate 198 matrices. However, the calculation of all matrices of dissimilarity
takes approximately the same time and in this connection, it is enough to perform testing for one of the matrices.</p>
      <p>
        The performance study was implemented using the resources of the MSU supercomputer complex “Lomonosov” [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ].
Testing was conducted for different matrix sizes and different number of processes to identify possible behavioral features of the
proposed algorithm. The results of time measurements in the calculation of one matrix of pair-wise dissimilarity of signals are
given in Table 1.
      </p>
      <p>The acceleration, which was obtained for each case, was calculated as the ratio of the sequential computation time to the
calculation time on P processes. The results are shown in Table 2.
1,12535
4,61894
18,7533
117,278
472,307
1083,46
3010,1
6864,46
2
1,909788
1,958477
1,98204
1,981105
1,997965
1,960663
1,964194
1,992247
4
0,701826
2,38828
9,42092
58,3369
238,218
541,713
1498,6
3418,42
4
3,062269
3,787701
3,945453
3,982728
3,9613
3,921449
3,945296
4,000591
8
0,48118
1,15214
4,82778
29,1305
117,96
268,855
736,2
1700,52
8
4,466478
7,851554
7,69915
7,975833
7,999771
7,901285
8,030997
8,042069
Running time of the algorithm (sec)</p>
      <p>Number of processes
Acceleration of the algorithm</p>
      <p>Number of processes
16
0,21083
0,619012
2,34974
14,696
59,0047
133,068
371,859
847,277
16
10,1939
14,61376
15,81869
15,80974
15,99284
15,96402
15,89963
16,14077
32</p>
      <p>As expected, the acceleration achieved by using the proposed parallel algorithm increases with the size of the calculated
matrix of signal dissimilarity. And the acceleration is almost linear in the calculation of the total matrix.</p>
      <p>Thus, the proposed approach launched on 128 processes of “Lomonosov” supercomputer complex allowed us to reduce the
time of calculating one complete matrix of dissimilarity of fragments of electroencephalograms by 127.89 times. The calculation
time for one matrix was reduced from 3.8 hours to 1.78 minutes, and the total calculation time of all 198 matrices was reduced
from 29 days to 3.5 hours.</p>
    </sec>
    <sec id="sec-5">
      <title>5. Conclusion</title>
      <p>In this paper, a high-performance algorithm is proposed which calculates the matrix of the dissimilarity of signals
representing fragments of brain electroencephalograms. The proposed algorithm was implemented in C++ programming
language with using MPI parallel programming technology. It was tested using the resources of “Lomonosov” supercomputer
64
0,205418</p>
    </sec>
    <sec id="sec-6">
      <title>Acknowledgments References</title>
      <p>
        High-Performance Computing / A.I. Makarova , V.V. Sulimova
complex at Moscow State University [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ]. Experimental studies implemented on real data have shown that the proposed
algorithm allows to achieve an almost linear speedup and to reduce the total calculation time from 29 days to 3.5 hours by using
128 processes. And so, it opens the possibility of improving the quality of automatic analysis of electroencephalograms.
      </p>
      <p>This work is supported by the Russian Fund for Basic Research, grant 15-07-08967.</p>
      <p>The authors would like to thank rector of Lomonosov Moscow State University Viktor Sadovnichiy and Moscow State
University Supercomputing Center for providing “Lomonosov” supercomputer complex to perform experimental study.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>Zenkov</surname>
            <given-names>LR</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zenkov</surname>
            <given-names>KS.</given-names>
          </string-name>
          <article-title>Clinical electroencephalography (with elements of epileptology)</article-title>
          . 3rd ed. Moscow: Publishing house
          <string-name>
            <surname>MEDPRESSINFORM</surname>
          </string-name>
          ,
          <year>2004</year>
          ; 368 p.
          <article-title>(in Russian)</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <surname>Teplan</surname>
            <given-names>M. Fundamentalsof</given-names>
          </string-name>
          <article-title>EE Gmeasurement</article-title>
          .
          <source>Measurement Science Review</source>
          <year>2002</year>
          ;
          <volume>2</volume>
          (
          <issue>2</issue>
          ):
          <fpage>1</fpage>
          -
          <lpage>11</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>Wolpaw</surname>
            <given-names>J</given-names>
          </string-name>
          ,
          <string-name>
            <surname>McFarland</surname>
            <given-names>DJ</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Neat</surname>
            <given-names>GW</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Forneris</surname>
            <given-names>CA</given-names>
          </string-name>
          .
          <article-title>An R. EEG-based brain-computer interface for cursor control</article-title>
          .
          <source>Electroencephalography &amp; Clinical Neurophysiology</source>
          <year>1991</year>
          ;
          <volume>8</volume>
          (
          <issue>3</issue>
          ):
          <fpage>252</fpage>
          -
          <lpage>259</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <surname>Tran</surname>
            <given-names>L. EEG</given-names>
          </string-name>
          <article-title>Features for the Detection of Event-Related Potentials Evoked Using Rapid Serial Visual Presentation</article-title>
          .
          <source>PhD Thesis</source>
          <year>2014</year>
          ; 63 p.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <surname>Hope</surname>
            <given-names>C</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sterr</surname>
            <given-names>A</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Langovan</surname>
            <given-names>PE</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Geades</surname>
            <given-names>N</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Windridge</surname>
            <given-names>D</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Young</surname>
            <given-names>K</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wells K. High Throughput</surname>
          </string-name>
          <article-title>Screening for Mammography using a HumanComputer Interface with Rapid Serial Visual Presentation (RSVP)</article-title>
          .
          <source>Proc. SPIE 8673</source>
          ,
          <string-name>
            <surname>Medical</surname>
            <given-names>Imaging</given-names>
          </string-name>
          : Image Perception,
          <source>Observer Performance, and Technology Assessment</source>
          <year>2013</year>
          ;
          <fpage>867303</fpage>
          . DOI:
          <volume>10</volume>
          .1117/12.2007557
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <surname>Sakoe</surname>
            <given-names>H</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chiba S</surname>
          </string-name>
          .
          <article-title>Dynamic programming algorithm optimization for spoken word recognition</article-title>
          .
          <source>IEEE Transactions on Acoustics, Speech and Signal Processing</source>
          <year>1978</year>
          ;
          <volume>26</volume>
          (
          <issue>1</issue>
          ):
          <fpage>43</fpage>
          -
          <lpage>49</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <surname>Berndt</surname>
            <given-names>DJ</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Clifford</surname>
            <given-names>J</given-names>
          </string-name>
          .
          <article-title>Using dynamic time warping to find patterns in time series</article-title>
          .
          <source>Association for the Advancement of Artificial Intelligence, Workshop on Knowledge Discovery in Databases</source>
          <year>1994</year>
          :
          <fpage>229</fpage>
          -
          <lpage>248</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <surname>Keogh</surname>
            <given-names>E</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pazzani</surname>
            <given-names>M</given-names>
          </string-name>
          .
          <article-title>Scaling up dynamic time warping for datamining applications</article-title>
          .
          <article-title>Proceedings of the sixth ACM SIGKDD intern. conf. on Knowledge discovery and data mining</article-title>
          . ACM Press, New York, NY, USA
          <year>2000</year>
          :
          <fpage>285</fpage>
          -
          <lpage>289</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <surname>Vapnik</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          <article-title>Statistical Learning Theory</article-title>
          . John-Wiley &amp; Sons, Inc.,
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <surname>Tatarchuk</surname>
            <given-names>A</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sulimova</surname>
            <given-names>V</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mottl</surname>
            <given-names>V</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Windridge</surname>
            <given-names>D</given-names>
          </string-name>
          .
          <source>Supervised Selective Kernel Fusion for Membrane Protein Prediction. Lecture Notes in Computer Science</source>
          <year>2014</year>
          ;
          <volume>8626</volume>
          :
          <fpage>98</fpage>
          -
          <lpage>109</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <surname>Myers</surname>
            <given-names>C</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rabiner</surname>
            <given-names>LR</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rosenberg</surname>
            <given-names>AE</given-names>
          </string-name>
          .
          <article-title>Performance tradeoffs in dynamic time warping algorithms for isolated word recognition</article-title>
          .
          <source>IEEE Transactions on Acoustics, Speech and Signal Processing</source>
          <year>1980</year>
          ;
          <volume>28</volume>
          (
          <issue>6</issue>
          ):
          <fpage>623</fpage>
          -
          <lpage>635</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>Keogh</surname>
            <given-names>E</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ratanamahatana</surname>
            <given-names>C</given-names>
          </string-name>
          .
          <article-title>Exact indexing of dynamic time warping</article-title>
          .
          <source>Knowledge and Information Systems</source>
          <year>2004</year>
          ;
          <volume>7</volume>
          (
          <issue>3</issue>
          ):
          <fpage>358</fpage>
          -
          <lpage>386</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <surname>Lemire</surname>
            <given-names>D.</given-names>
          </string-name>
          <article-title>Faster retrieval with a two-pass dynamic-time-warping lower bound</article-title>
          .
          <source>Pattern Recogn</source>
          .
          <year>2009</year>
          ;
          <volume>42</volume>
          (
          <issue>9</issue>
          ):
          <fpage>2169</fpage>
          -
          <lpage>2180</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <surname>Salvador</surname>
            <given-names>S</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chan</surname>
            <given-names>P</given-names>
          </string-name>
          .
          <article-title>Toward accurate dynamic time wrapping in linear time and space</article-title>
          .
          <source>Intelligent Data Analysis</source>
          <year>2007</year>
          ;
          <volume>11</volume>
          (
          <issue>5</issue>
          ):
          <fpage>561</fpage>
          -
          <lpage>580</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <surname>Al-Nayma</surname>
            <given-names>G</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chawla</surname>
            <given-names>S</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Taheri</surname>
            <given-names>J.</given-names>
          </string-name>
          <article-title>SparseDTW: A Novel Approach to Speed up Dynamic Time Warping, 2012</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>Silva</given-names>
            <surname>DF</surname>
          </string-name>
          .
          <article-title>Speeding up all-pairwise dynamic time warping matrix calculation 2016</article-title>
          . URL: http://sites.labic.icmc.usp.br/prunedDTW
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <surname>Lamport</surname>
            <given-names>L.</given-names>
          </string-name>
          <article-title>The parallel execution of DO loops</article-title>
          .
          <source>Commun. ACM</source>
          <year>1974</year>
          ;
          <volume>17</volume>
          (
          <issue>2</issue>
          ):
          <fpage>83</fpage>
          -
          <lpage>93</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <surname>Babichev</surname>
            <given-names>AV</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lebedev</surname>
            <given-names>VG</given-names>
          </string-name>
          .
          <article-title>Parallelization of program cycles</article-title>
          .
          <source>Programming</source>
          <year>1983</year>
          ;
          <volume>5</volume>
          :
          <fpage>52</fpage>
          -
          <lpage>63</lpage>
          .(in Russian)
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <surname>Fernandez</surname>
            <given-names>A</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Llaberia</surname>
            <given-names>JM</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Valero-Garcia M. Loop</surname>
          </string-name>
          <article-title>Transformation Using Nonunimodal Matrices</article-title>
          .
          <source>IEEE Transactions on Parallel and Distributed Systems</source>
          <year>1995</year>
          ;
          <volume>6</volume>
          (
          <issue>8</issue>
          ):
          <fpage>832</fpage>
          -
          <lpage>840</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>Abu</given-names>
            <surname>Khalil</surname>
          </string-name>
          <string-name>
            <given-names>JM</given-names>
            ,
            <surname>Morylev</surname>
          </string-name>
          <string-name>
            <given-names>RI</given-names>
            ,
            <surname>Shteinberg</surname>
          </string-name>
          <string-name>
            <surname>BI</surname>
          </string-name>
          .
          <article-title>Parallel Algorithm of Global Alignment with Optimal Memory Usage. Modern problems of science and education 2013; 1</article-title>
          . URL: http://www.science-education.ru/107-
          <fpage>8139</fpage>
          . (in Russian)
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <surname>Steinberg</surname>
            <given-names>BI</given-names>
          </string-name>
          .
          <article-title>Optimizing the use of the memory cache in computational tasks and optimizing compilation</article-title>
          .
          <source>The All-Russian Scientific Conference on Informatics Problems SPISOK-2013</source>
          , mehmat of St. Petersburg University, St. Petersburg,
          <year>2013</year>
          . (in Russian)
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <surname>Antonov</surname>
            <given-names>AS</given-names>
          </string-name>
          ,
          <article-title>Tutorial A. Parallel Programming Using MPI Technology</article-title>
          . Moscow: MGU,
          <year>2004</year>
          ; 71 p.
          <article-title>(in Russian)</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <surname>Voevodin</surname>
            <given-names>VlV</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zhumatiy</surname>
            <given-names>SA</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sobolev</surname>
            <given-names>SI</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Antonov</surname>
            <given-names>AS</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bryzgalov</surname>
            <given-names>PA</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nikitenko</surname>
            <given-names>DA</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stefanov</surname>
            <given-names>KS</given-names>
          </string-name>
          ,
          <article-title>Voevodin VadV</article-title>
          .
          <source>Practice of 'Lomonosov' Supercomputer. Open Systems</source>
          . Moscow: “Open Systems” Publishing house
          <year>2012</year>
          ;
          <volume>7</volume>
          :
          <fpage>36</fpage>
          -
          <lpage>39</lpage>
          . (in Russian)
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <surname>Bellman</surname>
            <given-names>R</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kalaba</surname>
            <given-names>RM</given-names>
          </string-name>
          .
          <article-title>Dynamic Programming and Modern Control Theory</article-title>
          .
          <source>Science</source>
          <year>1969</year>
          ;
          <volume>118</volume>
          p.
          <article-title>(in Russian)</article-title>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>