<!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>RESEARCH OF IMPROVING THE PERFORMANCE OF EXPLICIT NUMERICAL METHODS ON THE X86 AND ARM CPU</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>V. Furgailo</string-name>
          <email>furgailo@phystech.edu</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>E. Elchinov</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>N. Khohlov</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Russia, Moscow Institute of Physics and Technology</institution>
          ,
          <addr-line>MIPT</addr-line>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2021</year>
      </pub-date>
      <fpage>5</fpage>
      <lpage>9</lpage>
      <abstract>
        <p>This paper is a continuation of the research of improving the computing performance of explicit numerical methods on the CPU. We considered the computing possibility of such common computing architectures as x86 and arm, for using optimizations on the data layer as vectorization and tiling. Other aspects of high-performance optimizations of explicit numerical methods have also been explored - metaprogramming, code generation, and OpenMP technology. However, the novelty of this research is the optimization of the arm architecture for the task of computing by the FDTD method and the assessment of the effectiveness of using the arm architecture for solving such a range of scientific problems. This paper considers a number of optimization algorithms, provides a description of the algorithms, test calculations for various architectures.The results of the re search and further directions of work on this topic are also presented.</p>
      </abstract>
      <kwd-group>
        <kwd>expicit numerical methods</kwd>
        <kwd>FDTD</kwd>
        <kwd>tiling</kwd>
        <kwd>x86</kwd>
        <kwd>arm</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>Explicit numerical methods are used to solve and simulate a wide range of mathematical
problems whose origins can be mathematical models of physical conditions. However, simulations
with large model spaces can require a tremendous amount of floating point calculations and run times
of several months or more are possible even on large HPC systems.</p>
      <p>
        The vast majority of HPC systems in the field today are powered by x86 and ARM CPUs [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
Our aim is to investigate methods of increasing computational speed for simulation on CPUs and also
to compare the performance and energy efficiency on x86 and ARM CPUs. High-order finite
difference time domain (FDTD) method to solve the 3D acoustic equation was used in our work.
      </p>
      <p>For HPC, in conjunction with parallel computing, we used CPU capabilities like
SIMDcomputing (AVX on x86 and NEON on ARM) [2] and hierarchical structure of the memory of the
CPU caches to optimize data locality. For data locality was used the method of changing order of
traversal on the iteration space – loop tiling [3]. Our work considers a number of optimization tiling
algorithms and test calculations for x86 and ARM architectures. In particular, we considered recursive
and non-recursive cube-tiling [4] and ZCube data locality optimization.</p>
    </sec>
    <sec id="sec-2">
      <title>2. Mathematical Problem</title>
      <p>In this paper, an explicit numerical method is the solution of the acoustic equation in three
dimensional space with free-boundary condition by the central finite difference time domain
(FDTD) method with a fourth-order accuracy. Thus, the stencils can be represented in Fig.1</p>
    </sec>
    <sec id="sec-3">
      <title>3. Optimization algorithms</title>
      <sec id="sec-3-1">
        <title>3.1 Tiling</title>
        <p>To increase the performance of the computation, the method of partitioning the iteration space
into cube-tiles was used with vectorization. The algorithm shows the highest performance on tiles that
are the same size as the first level (L1) of the CPU cache, as shown in fig.2. and fig 3.</p>
      </sec>
      <sec id="sec-3-2">
        <title>3.2 ZCube</title>
        <p>To increase the spatial locality a new data storage principle was used, such that the grid cells
are grouped into small cubes forming a new type of cell, each storing original cells in Z-order, as
represented on fig 4.</p>
        <p>Combine ZCube with recursive tiling or nested tiles, we got the following results - as shown
on fig.5 the problem of low performance of Neon-computing occurs due to an overflow of
CortexA53 data cache[5]. Consequently, ZCube tiling improve the performance of utilizing Neon
dataregisters and instructions. Also on x86, as shown on fig.6, combination AVX-vector and ZCube
recursive tiling provides up to 2-times speedup compared to the naive implementation.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. Conclusion</title>
      <p>In this paper, we implemented a new data locality algorithm that increases the performance of
multi-threaded explicit stencil computation. Vectorization over the outer space of iterations and
ZCube recursive tiling were applied to achieve data locality and to speed up multithreaded computing.
However, non-recursive tiling remains a more effective data localization algorithm to FDTD problem.</p>
      <p>Also, as shown in Fig. 7, the computation of explicit numerical equations on the ARM
architecture by non-recursive tiling is 12 times more energy efficient in peak power consumption. In
this respect, extending our experiments on ARM-cluster computing with increasing performance of
non-recursive and recursive tiling would be of interest.</p>
    </sec>
    <sec id="sec-5">
      <title>5. Acknowledgement</title>
      <p>This work was performed with the financial support of the Russian Science Foundation
(project No. 21-11-00139).</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <source>[1] [2] [3] [4]</source>
          [5] http://www.top500.org/ S. M. et. al., “
          <article-title>Vector instructions to enable efficient synchronization and parallel reduction operations</article-title>
          ,” U.S. Patent WO2009120981A2, Oct.
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          <string-name>
            <given-names>J.</given-names>
            <surname>Xue</surname>
          </string-name>
          , “
          <article-title>On tiling as a loop transformation,”</article-title>
          <source>Parallel Processing Letters</source>
          , vol.
          <volume>07</volume>
          ,no.
          <issue>04</issue>
          , pp.
          <fpage>409</fpage>
          -
          <lpage>424</lpage>
          ,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          <string-name>
            <given-names>V.</given-names>
            <surname>Furgailo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Ivanov</surname>
          </string-name>
          , and
          <string-name>
            <given-names>N.</given-names>
            <surname>Khokhlov</surname>
          </string-name>
          , “
          <article-title>Research of techniques to improve the performance of explicit numerical methods on the cpu</article-title>
          ,” pp.
          <fpage>79</fpage>
          -
          <lpage>85</lpage>
          ,
          <year>09 2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          <string-name>
            <given-names>J.</given-names>
            <surname>Bakos</surname>
          </string-name>
          ,
          <source>Embedded Systems: ARM Programming and Optimization. Elsevier Sci-ence</source>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>