<!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>A multilevel approach to algorithm and software design for exaflops supercomputers*</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>B. Glinskiy</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>I. Kulikov</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>A. Snytnikov</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>I. Chernykh</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>D. Weins</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Institute of Computational Mathematics and Mathematical Geophysics SB RAS</institution>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2015</year>
      </pub-date>
      <fpage>4</fpage>
      <lpage>16</lpage>
      <abstract>
        <p>A strategy is proposed for the development of algorithms and software for Exaflops supercomputers. The strategy contains three stages. The first stage is the co-design, which is defined as considering the architecture of the supercomputer at all stages of the development of the code. The second is the forward-looking development of algorithms and software for the most promising Exaflops supercomputers. The forward-looking development is based on the simulation of the algorithm behavior within the given supercomputer architecture. The third stage is the estimation of the energy efficiency of the algorithm with different implementation for one single architecture or with different supercomputer architectures. The strategy is shown by the example of two problems from astrophysics and plasma physics.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>The bottleneck in the use of the Exaflops supercomputers will be the incredible degree of
parallelism, hundreds of millions or even billions of simultaneously working computation cores. Software
development for supercomputers is closely connected with the evolution of their architectures. Thus
the study of scalability of the parallel algorithms with the future Exaflops supercomputers is an urgent
question. One must note that the computational algorithms evolve slowly compared to the evolution of
hardware. So, even for Exaflops supercomputers the present-day computational algorithms will be
applied since there is no special mathematics that takes the peculiarities of Exaflops machines into
account. Therefore it is important to study right now the perspective of the implementation of the
present-day algorithms on future supercomputers and to investigate their parallelism, scalability and
energy consumption.</p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] the co-design concept is introduced, which is the considering the architecture of the
supercomputer at all stages of the development of the code. In the present case co-design begins with the
physical analysis of the problem. The last stage of co-design is the improvement of the parallel
numerical algorithm taking the peculiarities of the architecture into account.
      </p>
      <p>
        The problem of simulation of the algorithms scalability is not something new; there is a lot of
work throughout the world [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. A good example of earlier work in this field is the PARSIT package
[
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. This package is capable to simulate the behavior of a parallel program considering the
supercomputer architecture. In [
        <xref ref-type="bibr" rid="ref4 ref5">4, 5</xref>
        ] programs for algorithm simulation are also proposed. Unfortunately, they
are too simple and thus they are not fit for simulation of supercomputer algorithms. Finally, the
BIGSIM project must be mentioned [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. The project is devoted to the development of the simulation
workbench that enables to develop, test and tune software by means of simulation of the future
computers. This also enables the hardware engineers to improve their solutions with the applications being
tested.
      </p>
      <p>
        In the Institute for System Programming RAS a model of a parallel program was developed under
the supervision of Academician V.P.Ivannikov. The model can be efficiently interpreted by an
instrumental computer thus providing the precise prediction of the real execution of a parallel program
within the given computer. The model is developed for the parallel programs with explicit message
interchange using Java together with MPI. Therefore the model is included into ParJava [
        <xref ref-type="bibr" rid="ref7 ref8">7,8</xref>
        ]. The
prediction of execution time for certain spots of the parallel program is performed considering the MPI work
time. It means that the model time is corrected with the average time of the RTS (Run Time System)
* This work was partially supported by Russian Foundation for Basic Research (grants 15-31-20150,
15-0100508, 13-07-00589, 14-01-31199 and 14-01-00392) and by Grant of the President of Russian Federation for the
support of young scientists number MK – 6648.2015.9. This project was partially supported by the Russian
Ministry of Education and Science Grant 3.961.2014/K.
thread. In such a way the ParJava project enables to solve the wide range of the problems connected
with execution efficiency estimate with future supercomputers. Unfortunately, its capabilities are not
very high because it is attached to a certain programming language.
      </p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref8 ref9">8, 9</xref>
        ] an approach is being developed which is based on multi-agent simulation. This approach
suits for simulation of computations perfectly. The node of the supercomputer together with the code
being executed on this node is selected as the atomic, independent particle in the model of the
computations. Every functional agent simulates the behavior of the node of the supercomputer and the code
working on this node. The computations are represented as the set of primitive operations
(computations with the core, read/write to the memory, peer-to-peer data exchange, data synchronization
between the cores) and of temporal characteristics of each operation. Thus it is possible to estimate the
behavior of the algorithms and to develop the improved computational schemes right now by means of
the implementation of the algorithms within a simulation model. Here the model displays millions and
tens of millions of computational cores. The simulation model shows the bottlenecks of the algorithms
and gives the ideas how to modify and improve them and what parameters to change in order to
achieve good scalability.
      </p>
      <p>
        Since the architecture of the exaflops supercomputer is an open question, the energy efficiency of
the algorithms becomes a question of great importance. Energy efficiency may be dividing into 3 main
parts [
        <xref ref-type="bibr" rid="ref10 ref11 ref12 ref13 ref14">10-14</xref>
        ]: the efficiency of interaction with the CPU and the RAM, the efficiency of working with
network devices and also the efficiency of working with peripherals, for example, the input-output
system. In order to increase the energy efficiency while working with the CPU and the RAM it is
recommended to use the hardware capabilities at maximum extent. It is also recommended to simplify
the code, facilitating its optimization by the complier. The control of the memory use is necessary. The
compiler option «Reduce memory leaks» prevents using the swap file. The use of high performance
libraries ( e.g. Intel IPP, Intel MKL) enables to improve the program and the energy efficiency of the
program. During the development of the program it is recommended to reduce the amount of the data
transmitted between the processes and to minimize the number of data transfer operations. Processor
load balance can improve the energy efficiency in a great extent. When it is necessary to put a process
to the standstill, for example, to collect the data from all the nodes it is recommended to reduce the
frequency of the processors/cores that perform these operations. The energy consumption of various
peripherals may be equal or even greater than the energy consumption of processors or computation
accelerators. It is necessary to reduce addressing the file system, in particular if it is the network file
system. The final version of the code must not contain any debug information, all the input/output
must be maximally reduced. The use of the latest versions of the compilers with maximum
optimization level for the target platform also improves the energy efficiency of the algorithms. For example,
the latest Intel compilers enable to obtain recommendations on code optimization. This may result in
30% performance increase with latest Intel processors and accelerators.
      </p>
    </sec>
    <sec id="sec-2">
      <title>2. Co-design of methods for solving of complex computational problems</title>
      <p>Co-design of the parallel methods for the solution of large-scale problems is a process complex
enough and hard to formalize. This is because every problem has its own features. Even if two
problems are from the same area of science, they will still have some differences. The careful consideration
of these features and differences may alter not only the parallel computational method, but the
mathematical model itself and of course, the program implementation and its efficiency.</p>
      <p>It is impossible, of course, to make a «collection of recipes» for efficient solution of all the
largescale problems. However, some general approach is possible to be proposed. In any case, the concept
of co-design consists of the following:
1. The formulation of the physical statement of the problem.
2. The mathematical formulation of the physical problem.</p>
      <p>3. The development of the numerical method for the solution of the mathematical formulation of
the physical problem.</p>
      <p>
        4. The selection of data structures and of the parallel algorithm.
5. The consideration of supercomputer architecture.
6. The use of the development tools.
At the stage of the formulation of the physical statement of the problem it is possible to define the
main physical process. This will be the basis on the following stages. For example, the simulation of
gas flows may be reduced to the solution of hyperbolic equations (gas dynamics equations) in the case
of jet pipe simulation [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]. And in the case spacecraft flying in rarefied atmosphere the gas flow is
governed by the kinetic equations solved by either particle methods [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] or by Monte Carlo methods
[
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]. All these methods are of different nature and thus require different parallel implementation.
      </p>
      <p>
        Even at the stage of the formulation of the physical statement of the problem it is possible to
begin using some parallel formalism and to define the type of parallelism that will use in the solution
of the problem. To our opinion the most natural division of the types of parallelism is the following:
distributed problems and the problems with dependence parallelism. With no loss of generality all the
distributed problems are integration problems. It means that the problem is decomposed into the set of
independent subproblems, the results of which are accumulated in some shared object. In the case of
numerical integration or summation in quantum chemistry problems [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] and of Monte Carlo methods
[
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] the result is a number of some scalar characteristics. In the problems of spectral analysis the main
objective is to obtain the dynamic process matrix or the 2D plot of the matrix specter [
        <xref ref-type="bibr" rid="ref19 ref20">19,20</xref>
        ]. In both
cases the results are accumulated in some shared object. The same is true with image processing [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ].
One must note that the algorithm will require tuning for exaflops supercomputer even the in the case
of an integration problem [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
      </p>
      <p>
        The problems with dependence parallelism may be divided into three types: explicit operator
inversion problem; implicit operator inversion problems solved by grid method; implicit operator
inversion problems solved by grid-less methods. Operator inversion problems are primarily the solution of
either elliptic equations [
        <xref ref-type="bibr" rid="ref23 ref24">23, 24</xref>
        ] or parabolic equations reduced to elliptic equations and hyperbolic
[
        <xref ref-type="bibr" rid="ref25">25</xref>
        ] equations. In this case the main task is the inversion of a sparse matrix by iteration [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ] or direct
[
        <xref ref-type="bibr" rid="ref27">27</xref>
        ] methods. Also some other methods can be applied, namely the methods based on the
transformation of the matrix to a simpler form: either two-diagonal [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] or three-diagonal [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ] form. The same
is true about the ODE system solution methods [
        <xref ref-type="bibr" rid="ref29">29</xref>
        ].
      </p>
      <p>
        Implicit operator inversion by the grid methods is the solution of hyperbolic equations within a
compact stencil for most of the continuous medium models: gas dynamics equations [
        <xref ref-type="bibr" rid="ref30">30</xref>
        ], magnetic
gas dynamics equations [
        <xref ref-type="bibr" rid="ref31">31</xref>
        ], first moments of the Boltzmann equation for the description of the stellar
component of galaxies[
        <xref ref-type="bibr" rid="ref32 ref33">32,33</xref>
        ], the equations of relativistic gas dynamics[
        <xref ref-type="bibr" rid="ref34">34</xref>
        ], the equations of
relativistic gas dynamics with electric field [
        <xref ref-type="bibr" rid="ref35 ref36">35,36</xref>
        ], the equations of the theory of elasticity [
        <xref ref-type="bibr" rid="ref37">37</xref>
        ], the
equations of multi-phase hydrodynamics [
        <xref ref-type="bibr" rid="ref38">38</xref>
        ], of gravitational gas dynamics [
        <xref ref-type="bibr" rid="ref39 ref40 ref41">39 – 41</xref>
        ] etc. In this case the
main strategy of the efficient parallel implementation is the use of the local computational stencil [
        <xref ref-type="bibr" rid="ref42">42</xref>
        ].
Implicit operator inversion by grid-less methods is the solution of the equations (in particular,
hyperbolic) by representation of the continuous medium of gas [
        <xref ref-type="bibr" rid="ref43">43</xref>
        ] or solid body [
        <xref ref-type="bibr" rid="ref44">44</xref>
        ] as a group of
particles with limited interaction radius or as rarefied medium.
      </p>
      <sec id="sec-2-1">
        <title>2.1 Co-design of parallel numerical methods for astrophysical simulation</title>
        <p>The present authors develop the Lagrangian-Eulerian approach for solving astrophysical problems
on the basis of Fluids-In-Cells (FlIC) method and Godunov method for several years. Using of this
combination enables to eliminate the Galilean non-invariance and the use of Godunov method at the
Eulerian stage enables to simulate the discontinuities correctly.</p>
        <p>GPU architecture is a set of concurrently executing threads, combined in a multi-level 2d
topology. The maximum performance on this architecture can be obtained in the absence of synchronization
between threads. In this case the strategy to co-design a numerical method is to use the computational
mesh topology, which directly projected on the topology of GPU architecture (e.g. use of regular
mesh), and independent computation of the values at the next step in each cell of the computational
domain. The Riemann problem for Euler stage original method satisfies this property, but for the
Lagrangian stage needed a modification. This modification allows independently computing advective
transport for each cell of the computational domain.</p>
        <p>Are traditionally, collisionless component is described using N-body models. Nevertheless, this
model has disadvantages as a spurious generation of entropy, increased communication overhead and
poor load balancing. Therefore, in co-design algorithms to describe collisionless components in the
context of modeling the galaxies collision was selected «Collisionless Stellar Hydrodynamics»
approach. This approach is based on the equations for the first moments of the collisionless Boltzmann
equation. This approach is adequate for importance of a movement particles cluster and high kinetic
energy. In addition, for describing «Collisionless Stellar Hydrodynamics» models can be used an
unified numerical methods and parallel algorithms, that are used to solve the hydrodynamic equations.
Consequently, they can be efficiently implemented on GPU-based supercomputers.</p>
      </sec>
      <sec id="sec-2-2">
        <title>2.2 Co-design of parallel numerical methods for plasma physics</title>
        <p>In the present case co-design begins at the stage of the physical consideration of the problem. It is
known from experiment that the plasma density modulation cannot exceed 300 \%. It means that the
number of model particles cannot be increased without a limit. Thus there is no need for dynamic load
balancing, and the absence of dynamic balancing improves the reliability and efficiency of the parallel
implementation.</p>
        <p>At the stage of the numerical method design the field evaluation method was chosen that is built
on the basis of Faraday and Ampere laws. In such a way there is no need to solve Poisson equation.
Instead, the equations that represent the Faraday and Ampere laws in the numerical form are solved by
the Langdon-Lasinski scheme. This results in the field solver with virtually unlimited scalability.</p>
        <p>At the stage of supercomputer architecture selection the PIC method details are taken into
account. In order to evaluate the new values of position and impulse of a particle it is necessary to know
the values of electric and magnetic fields at the present position of the particle. Each of the three
components of both electric and magnetic field is stored in a separate 3D array. In such a way six 3D
arrays are accessed at each time step for each particle. Since the particles are situated randomly in the
domain, the access to the arrays is also unordered. It means that the use of the cache memory can not
reduce the computation time. If a part of the field array was fetched to the cache in the process of
computation of the particle movement, it would be impossible to use this part of the field array for the
computation with the next particle, because it is (most likely) situated in a completely different part of
the subdomain. Since the cache memory cannot store all the six arrays for fields, one has to access the
RAM (Random Access Memory) for computation of the particle movement. And since the
performance of the processor is usually limited by the memory bandwidth, it is the memory bandwidth that
determines the speed of the computation with particles and the performance of the program as a whole
(particles take from 60% to 90% of the total time).</p>
        <p>This fact determines the transition to the supercomputers equipped with GPUs because CUDA
has a lot of tools to accelerate memory use for the PIC method.</p>
        <p>At the stage selection of software design tools is the following. For the PIC method with a very
big number of independently processed elements (the model particles) the use of CUDA technology is
very efficient. Other parallel technologies for hybrid supercomputers such as OpenCL, OpenMP,
OpenACC could be also used but it is CUDA that gives the possibility to use the highest number of
parallel processes and to get the highest performance.</p>
        <p>The last stage of co-design is the adaptation of the algorithm to the GPU architecture. The
traditional PIC method implementation — all the particles stored in one very big array is unacceptable for
GPUs because it prevents the use of the advantages of GPU memory. Thus the particles are distributed
between the cells and the computation is conducted as follows: one block of threads for one cell.</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>3. Scalability simulation of algorithms</title>
      <p>
        The multi-agent simulation system AGNES [
        <xref ref-type="bibr" rid="ref45">45</xref>
        ] is used for studying the behavior of the
algorithms. There are simulations agents (AstroGrid and PlasmaGrid) were created for scalability
simulation the astrophysics and plasma physics problems. All of these agents are simulating computations for
each of the problems and sending data between neighbors that simulating computational nodes.
      </p>
      <p>AstroGrid Agent sending messages to two neighbors and expects to receive the messages from
both neighbors as implemented in software. A calculation continues only after this cycle.</p>
      <p>PlasmaGrid agents are summarizing data for all agents before the next iteration of the loop.</p>
      <p>All data sending delays are collected and analyzed according to real run tests of astrophysics and
plasma physics codes.</p>
      <sec id="sec-3-1">
        <title>3.1 Astrophysics problem</title>
        <p>The model of interacting processes is defined here as the set of threads (not Operating System
threads), being concurrently executed on a single computational node. These threads interact with each
other by means of information interchange, for example, with MPI. The main parameter of the thread
is the execution time and also the time spent on passing the data to another thread. Considered this, let
us give the scheme of interactions between threads for the problems of astrophysics and plasma
physics.</p>
        <p>The peculiarity of parallel grid methods is the possibility for geometrical decomposition of
computational domain and further exchange by the boundary values by the adjacent computational nodes
only. These methods are the main tool for the solution of hyperbolic equations, not only in
astrophysics. Here, if the computational domain contains N 3 cells, then the number of element transmitted to
the adjacent computational node is N 2 elements. The interaction scheme may be shown by the
following figure:</p>
        <sec id="sec-3-1-1">
          <title>Initial state</title>
        </sec>
        <sec id="sec-3-1-2">
          <title>The Eulerian</title>
          <p>stage for N3 cells</p>
        </sec>
        <sec id="sec-3-1-3">
          <title>The transfer for</title>
          <p>N2 cells</p>
        </sec>
        <sec id="sec-3-1-4">
          <title>The Lagrangian</title>
          <p>stage for N3 cells</p>
        </sec>
        <sec id="sec-3-1-5">
          <title>The transfer for</title>
          <p>N2 cells</p>
        </sec>
        <sec id="sec-3-1-6">
          <title>Begin of cycle by time</title>
        </sec>
        <sec id="sec-3-1-7">
          <title>The Eulerian</title>
          <p>stage for N3 cells</p>
        </sec>
        <sec id="sec-3-1-8">
          <title>The transfer for</title>
          <p>N2 cells</p>
        </sec>
        <sec id="sec-3-1-9">
          <title>The Lagrangian</title>
          <p>stage for N3 cells</p>
        </sec>
        <sec id="sec-3-1-10">
          <title>The transfer for</title>
          <p>N2 cells</p>
        </sec>
        <sec id="sec-3-1-11">
          <title>The Eulerian</title>
          <p>stage for N3 cells</p>
        </sec>
        <sec id="sec-3-1-12">
          <title>The transfer for</title>
          <p>N2 cells</p>
        </sec>
        <sec id="sec-3-1-13">
          <title>The Lagrangian</title>
          <p>stage for N3 cells</p>
        </sec>
        <sec id="sec-3-1-14">
          <title>The transfer for</title>
          <p>N2 cells</p>
        </sec>
        <sec id="sec-3-1-15">
          <title>End of cycle by time</title>
        </sec>
        <sec id="sec-3-1-16">
          <title>Save</title>
          <p>In order to investigate the scalability of grid methods with CPUs, GPUs and Intel Xeon Phi
accelerators let us consider the following:</p>
          <p>1. Execution time for Eulerian and Lagrangian stage of the Fluids-In-Cells method are given by
the formulas:</p>
          <p>T Euler    N 3</p>
          <p>E</p>
          <p>T Lagrange    N 3</p>
          <p>L</p>
          <p>It means that for each type of the computational device the optimal computation time is known for
each stage. The total computation time is proportional to the number of cells.</p>
          <p>2. The scalability and speedup within a single CPU or accelerator will not be simulated. The
reason is that the number of cores of CPUs and accelerators is fixed and also, this number is much less
than the prospective number of computational nodes in peta- or exaflops supercomputers. Therefore
the execution time for the stages E,L is optimal for:
• 12 cores of Intel Xeon E5-2697 processor
• 1024 cores of the Nvidia Kepler GPU
• 60 cores of the Intel Xeon Phi 7110 accelerator in the offload mode
• 240 cores of the Intel Xeon Phi 7120 in the native mode</p>
          <p>In the case of the CPU the speedup value was 12 within one Intel Xeon (12 cores compared to 1
core), for the GPU the speedup was 55 (1024 cores of Kepler compared to 1 core) and for the Intel
Xeon Phi accelerator the speedup was 27 in offload mode (60 cores compared to 1 core) and 54 in
native mode (240 core compared to 1 core). This speedup is because of the architecture of the task
manager of the computational device. The speedup data was obtained by the computational experiments
with GPUPEGAS and AstroPhi codes.</p>
          <p>3. The communication time is considered to be a linear function of the number of the transmitted
element with the latency taken into account:</p>
          <p>T Comm    C  N 2
where  is the latency and C is the average time for transmitting of one data element.
4. The feature of the numerical method is that the number of the elements being transmitted is
the same for both Eulerian and Lagrangian stages. Consequently, the communication time is also
equal.</p>
          <p>5. The evaluation and comparison of the communication times is impossible since the
computational experiments were conducted with different hardware and different architectures, and in some
cases it was just one node of or even one single GPU. Thus it will be presumed that the network of the
Siberian Supercomputer Center (SSCC) is being used.</p>
          <p>6. In the general case for the solution of the 3D problems with the large number of computational
nodes the most efficient geometrical decomposition is the multi-dimensional (among others 3D)
decomposition. Most likely, the multidimensional Cartesian topology will be used in Exaflops
supercomputers. In figure 1 the linear topology is shown that corresponds the real SSCC architecture. The
use of such topology for the interaction between the nodes simplifies the simulation of the execution
of threads At the same time it does not limit the use of multidimensional topologies. This is because
the data exchange between threads will grow proportionally to the number of dimensions. The
communication time for the K-dimensional decomposition will be connected to the communication time
along one dimension according to the formula TCDomm   T1CDomm   T Comm which does not break
the generality of the model presented by figure 1.</p>
          <p>7. It must be noticed that in the present model only the extensivity of the computer system is
being considered. It is quite natural that both computation performance and data exchange speed will
grow with Petaflops computing becoming more common and while moving towards Exaflops. But
along with this the computational complexity will also be growing, since the physical model of the
astrophysical processes will become more complex, resulting in the increasing number of operations
per one cell. Due to this reason we investigate the scalability of concurrently executed processes
considering the current hardware parameters and consequently, current level of complexity of the
computational models. At present, the characteristic number of cell per one accelerator is
N  2563  16106 .</p>
          <p>In order to describe the model of interacting processes let us write the table of the computation
and communication times per one element (one cell).</p>
        </sec>
      </sec>
      <sec id="sec-3-2">
        <title>3.2 Physics of plasma problem</title>
        <p>The goal of this section is to show the parallelization strategy that must be supported by the PIC
implementation template since it is quite clear that the plasma physics problems of interest will never
fit into a single CPU of GPU memory.</p>
        <p>The program was parallelized by the domain decomposition method. The computational
domain is divided into parts along the direction orthogonal to the direction of the beam (along the Y axis,
the beam moving along the X axis). The computational grid in the whole domain is divided into equal
parts (sub-domains) along the Y axis. Each sub-domain is assigned to a group of processors (in the
case of a multi-core system a single core would be called a processor, since no hybrid parallelization
like MPI+OpenMP is employed, just mere MPI).</p>
        <p>Furthermore, the particles of each sub-domain are distributed uniformly between processors of
the group with no regard to their position, as it is shown in Figure 2.</p>
        <p>The computational domain is divided into 4 subdomains. The particles of each subdomain are
distributed between four processors uniformly with no regard to their position. Different symbols (circle,
square, diamond, star) denote particles belonging to different processors in the same sub-domain.</p>
        <p>Every processor in the group solves the Maxwell equations in the whole sub-domain, and
exchanges boundary values of the fields with processors assigned to adjacent sub-domains. Then the
movement equations for the particles are solved, and the 3D matrix of the current density and the
charge density are evaluated by each processor. But since the processor has only a part of the particles
located inside the sub-domain, it is necessary to sum the matrices through all the processors of the
group to obtain the whole current density matrix in the sub-domain.</p>
        <p>Interprocessor data exchange is performed by the MPI subroutines. The overall communication
scheme generally corresponds the scheme given in figure 1 for the astrophysical code. There is only
one important difference. The plasma physics code at present has no peer-to-peer communications,
just the summation along the whole domain performed by MPI_Allreduce.</p>
      </sec>
      <sec id="sec-3-3">
        <title>3.3 The simulation results</title>
        <p>The AGNES simulations of astrophysics code was done for computational nodes with Intel Xeon
E5-2697 (5632 nodes with 67584 cores), Nvidia Kepler K40 GPUs (1024 nodes with 1048576 cores)
and with Intel Xeon Phi 7110 (4096 nodes with 983040 cores). The AGNES simulations of plasma
physics code was done for computational nodes with Intel Xeon E5-2697 (3072 nodes with 36864
cores), Nvidia Tesla2090M GPUs (1536 nodes with 786432 cores) and with Nvidia Kepler K40 GPUs
(1536 nodes with 4.4 million cores).</p>
        <p>The results for astrophysical code simulation are the following:
1) Running time increases insignificantly (about 20%) up to the 5120 computing nodes;
2) The best scalability was demonstrated for nodes with Nvidia Kepler K40 and Intel Xeon Phi
(native mode) accelerators.</p>
        <p>The results for plasma physics code simulation are the following:
1) The substantial increase of communication messages gives the 58% growth of code execution
time for 3072 nodes with Intel Xeon CPUs;</p>
        <p>2) The plasma physics code has the best scalability on Nvidia Kepler K40 GPUs nodes;</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. Energy efficiency of the algorithms</title>
      <p>In order to improve the energy efficiency of the algorithms for the problems of astrophysics and
plasma physics each code was being optimized along the following three directions: the efficiency of
interaction with the CPU and the RAM, the efficiency of working with network devices and also the
efficiency of working with peripherals, for example, the input-output system. The interaction with the
CPU and RAM was facilitated with Intel Parallel Studio XE 2016 Beta package, including Intel
Vectorization Advisor. The latter analyzes the code and gives offers for code optimization for
maximally efficient use of vector instructions. The use of this package gave the 30% performance gain for
the astrophysical code for Intel Sandy Bridge CPU. For both astrophysics and plasma physics
problems presented here the most efficient methods were selected. Efficiency here means the minimal
number of network data exchanges.</p>
      <p>The optimization of the numerical method of the astrophysical code and the use of the last version
of the Intel Parallel Studio XE 2016 Beta package resulted in the excellent result for the load
balancing for the processor cores. The time for the MPI operations does not exceed 2-3% of the total
execution time. Figures 5-7 present the profiles of the codes.</p>
      <p>The figures 7-9 show the profile for plasma physics code. The co-design of the numerical
algorithm and the use of latest CUDA 7.0 optimization techniques together with Intel Parallel Studio
resulted in good load balancing with MPI operation time not exceeding 10%.</p>
    </sec>
    <sec id="sec-5">
      <title>5. The conclusion</title>
      <p>In this paper, we proposed a methodology for the development of algorithms and software for
exaflops supercomputers. Our approach has three related stages: co-design stage, scalability
simulation, energy efficiency improvements. The co-design technique is based on the idea that algorithm and
software design takes into account supercomputer's architecture. One of the most important stages in
our approach is the scalability simulation. We use AGNES software package to predict the scalability
of algorithms on possible exaflops supercomputer's architecture. Energy efficiency improvements
stage consists of different code optimizations such as amplification of CPU or GPU usage, load
balancing and MPI operations reduction. Our approach is illustrated by two examples: astrophysics and
plasma physics codes. As a result of our approach for software development we got highly parallelized
codes with suitable load balancing and MPI operations time.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>Boris</given-names>
            <surname>Glinskiy</surname>
          </string-name>
          , Igor Kulikov, Alexey Snytnikov, Alexey Romanenko, Igor Chernykh,
          <string-name>
            <surname>VitalyVshivkov.</surname>
          </string-name>
          <article-title>Co-design of Parallel Numerical Methods for Plasma Physics and Astrophysics Supercomputing frontiers and innovations</article-title>
          . Vol
          <volume>1</volume>
          , No 3, pp.
          <fpage>88</fpage>
          -
          <lpage>98</lpage>
          (
          <year>2014</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>Anand</given-names>
            <surname>Sivasubramaniam</surname>
          </string-name>
          , Aman Singla, Umakishore Ramachandran,
          <string-name>
            <surname>H.</surname>
          </string-name>
          <article-title>Venkateswaran: A Simulation-based Scalability Study of Parallel Systems</article-title>
          ,
          <source>Journal of Parallel and Distributed Computing</source>
          , Vol
          <volume>22</volume>
          (
          <issue>3</issue>
          ), pp.
          <fpage>411</fpage>
          -
          <lpage>426</lpage>
          (
          <year>1994</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>G.</given-names>
            <surname>Racherla</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Killian</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Fife</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Lehmann</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Parekh</surname>
          </string-name>
          .
          <article-title>Parsit: A parallel algorithm reconfiguration simulation tool</article-title>
          .
          <source>In: Proc. of International Conference on High Performance Computing</source>
          (
          <year>1995</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Roshan M. D'Souza</surname>
          </string-name>
          , Mikola Lysenko, Simeone Marino, and
          <article-title>Denise Kirschner: Data parallel algorithms for agent-based model simulation of tuberculosis on graphics processing units</article-title>
          .
          <source>In: Proceedings of the 2009 Spring Simulation Multiconference (SpringSim '09)</source>
          . Society for Computer Simulation International, San Diego, CA, USA (
          <year>2009</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Michael</surname>
            <given-names>T.</given-names>
          </string-name>
          <string-name>
            <surname>Goodrich</surname>
          </string-name>
          <article-title>: Simulating Parallel Algorithms in the MapReduce Framework with Applications to Parallel Computational Geometry CoRR</article-title>
          , http://dblp.unitrier.de/db/journals/corr/corr1004.html\#abs-1004-4708.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>Peter</given-names>
            <surname>Kogge</surname>
          </string-name>
          (Ed.): Peter Kogge(Ed.).
          <source>ExaScale Computing Study: Technology Challenges in Achieving Exascale Systems, DARPA report</source>
          . http://www.cse.nd.edu/Reports/2008/TR-2008- 13.pdf.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Ivannikov</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Avetisyan</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Padaryan</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          :
          <article-title>Evaluation of dynamic characteristics of a parallel program on a model</article-title>
          .
          <source>Programming</source>
          , vol.
          <volume>4</volume>
          , pp.
          <fpage>21</fpage>
          -
          <lpage>37</lpage>
          (in russian) (
          <year>2006</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Glinsky</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rodionov</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Marchenko</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Podkorytov</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Weins</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Scaling the Distributed Stochastic Simulation to Exaflop Supercomputers. High Performance Computing</article-title>
          and Communication \&amp;
          <source>2012 IEEE 9th International Conference on Embedded Software and Systems (HPCCICESS)</source>
          ,
          <source>2012 IEEE 14th International Conference on, Proceedings</source>
          , pp.
          <fpage>1131</fpage>
          --
          <lpage>1136</lpage>
          , IEEE (
          <year>2012</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>B.M.</given-names>
            <surname>Glinskiy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.S.</given-names>
            <surname>Rodionov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.A.</given-names>
            <surname>Marchenko</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.I.</given-names>
            <surname>Podkorytov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.V.</given-names>
            <surname>Vins</surname>
          </string-name>
          .
          <article-title>Agent oriented approach to imitation of distributed statistical modeling in application of exaflops supercomputer // Vestnik YURGU</article-title>
          , No.
          <volume>18</volume>
          (
          <issue>277</issue>
          ), Vol.
          <volume>12</volume>
          ., pp.
          <fpage>94</fpage>
          -
          <lpage>99</lpage>
          (
          <year>2012</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>Petter</given-names>
            <surname>Larsson</surname>
          </string-name>
          .
          <article-title>Energy-Efficient Software Guidelines</article-title>
          .
          <article-title>White Paper for the Intel Software Solutions Group (</article-title>
          <year>2008</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Susanne</surname>
            <given-names>Albers</given-names>
          </string-name>
          , Hiroshi Fujiwara,
          <article-title>Energy-efficient algorithms for flow time minimization</article-title>
          ,
          <source>ACM Transactions on Algorithms (TALG)</source>
          ,
          <source>v.3 n.4</source>
          , p.
          <fpage>49</fpage>
          -
          <lpage>es</lpage>
          (
          <year>2007</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Ricardo</surname>
            <given-names>Bianchini</given-names>
          </string-name>
          , Ram Rajamony,
          <article-title>Power and Energy Management for Server Systems</article-title>
          , Computer, v.
          <volume>37</volume>
          n.11, p.
          <fpage>68</fpage>
          -
          <lpage>74</lpage>
          (
          <year>2004</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Elaine J. Weyuker</surname>
            ,
            <given-names>Filippos I. Vokolos</given-names>
          </string-name>
          ,
          <source>Experience with Performance Testing of Software Systems: Issues, an Approach, and Case Study, IEEE Transactions on Software Engineering</source>
          , v.
          <volume>26</volume>
          n.12, p.
          <fpage>1147</fpage>
          -
          <lpage>1156</lpage>
          , (
          <year>2000</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Eugenio</surname>
            <given-names>Capra</given-names>
          </string-name>
          , Chiara Francalanci,
          <article-title>Sandra A. Slaughter, Is software “green”? Application development environments and energy efficiency in open source applications</article-title>
          ,
          <source>Information and Software Technology</source>
          , Volume
          <volume>54</volume>
          ,
          <string-name>
            <surname>Issue</surname>
            <given-names>1</given-names>
          </string-name>
          , p.
          <fpage>60</fpage>
          -
          <lpage>71</lpage>
          (
          <year>2012</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <given-names>V. P.</given-names>
            <surname>Stulov</surname>
          </string-name>
          .
          <source>The lecture about gas dynamics</source>
          . Moscow: PHYSMATHLIT. (
          <year>1997</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Ye</surname>
            . Bondar,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Shevyrin</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          <string-name>
            <surname>Chen</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Shumakova</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Kashkovsky</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Ivanov</surname>
          </string-name>
          .
          <article-title>Direct Monte Carlo simulation of high-temperature chemical reactions in air // Thermophysics and Aeromechanics</article-title>
          . v. 20,
          <string-name>
            <surname>I.</surname>
          </string-name>
          <year>5</year>
          . p.
          <fpage>553</fpage>
          -
          <lpage>564</lpage>
          (
          <year>2013</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>M. A Marchenko</surname>
          </string-name>
          .
          <article-title>Study of a parallel statistical modelling algorithm for solution of the nonlinear coagulation equation //</article-title>
          <source>Russian Journal of Numerical Analysis and Mathematical Modelling</source>
          . v. 23,
          <string-name>
            <surname>I.</surname>
          </string-name>
          <year>6</year>
          . p.
          <fpage>597</fpage>
          -
          <lpage>613</lpage>
          (
          <year>2008</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <given-names>S.</given-names>
            <surname>Ono</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Noguchi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Sahara</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Kawazoe</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Ohno</surname>
          </string-name>
          . TOMBO:
          <article-title>All-electron mixed-basis approach to condensed</article-title>
          matter physics // Computer physics communications. v.
          <volume>189</volume>
          . p.
          <fpage>20</fpage>
          -
          <lpage>30</lpage>
          (
          <year>2015</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <given-names>S.</given-names>
            <surname>Godunov</surname>
          </string-name>
          .
          <article-title>The lecture about modern aspects of linear algebra</article-title>
          .
          <source>Novosibirsk: Scientific Book</source>
          (
          <year>2002</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <given-names>N.</given-names>
            <surname>Trefethen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Embree</surname>
          </string-name>
          .
          <article-title>Spectra and Pseudospectra: The Behavior of Nonnormal Matrices and Operators</article-title>
          .
          <source>Book in Mathematics and Statistics</source>
          (
          <year>2005</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <given-names>R.</given-names>
            <surname>Gonzales</surname>
          </string-name>
          .
          <source>Digital Image Processing. Prentice Hall</source>
          (
          <year>2007</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <given-names>J.</given-names>
            <surname>Parker</surname>
          </string-name>
          .
          <article-title>Algorithms for Image Processing</article-title>
          and
          <source>Computer Vision</source>
          . Wiley (
          <year>2010</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <given-names>S.</given-names>
            <surname>Goreinov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>I.</given-names>
            <surname>Oseledets</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Savostyanov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Tyrtyshnikov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Zamarashkin</surname>
          </string-name>
          .
          <article-title>How to find a good submatrix // Matrix methods: theory, algorithms and applications</article-title>
          . p.
          <fpage>247</fpage>
          -
          <lpage>256</lpage>
          (
          <year>2010</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <given-names>V.</given-names>
            <surname>Ilin</surname>
          </string-name>
          .
          <article-title>The parallel processes on exaflops modeling stages // Numerical Methods and Programming</article-title>
          .
          <source>v. 12, i. 1</source>
          .p.
          <fpage>103</fpage>
          -
          <lpage>109</lpage>
          (
          <year>2011</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <surname>J. Guryeva</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          <string-name>
            <surname>Ilin</surname>
          </string-name>
          .
          <article-title>A some parallel methods and technologies of domain decomposition // Scientific Seminar Letters</article-title>
          . v.
          <volume>428</volume>
          . p.
          <fpage>89</fpage>
          -
          <lpage>106</lpage>
          (
          <year>2014</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26.
          <string-name>
            <given-names>V.</given-names>
            <surname>Ilin</surname>
          </string-name>
          .
          <source>The biconjugate methods in Krylov subspace // Journal of Applied and Industrial Mathematics. v. 4, i. 1</source>
          . p.
          <fpage>65</fpage>
          -
          <lpage>78</lpage>
          (
          <year>2010</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          27.
          <string-name>
            <surname>Kalinkin</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          <string-name>
            <surname>Laevsky</surname>
            ,
            <given-names>S. Gololobov.</given-names>
          </string-name>
          <article-title>2D Fast Poisson Solver for High-</article-title>
          Performance Computing // Lecture Notes in Computer Science. v.
          <volume>5698</volume>
          . p.
          <fpage>112</fpage>
          -
          <lpage>120</lpage>
          (
          <year>2009</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          28.
          <string-name>
            <surname>Terekhov</surname>
          </string-name>
          .
          <article-title>Parallel Dichotomy Algorithm for solving tridiagonal system of linear equations with multiple right-hand sides // Parallel Computing</article-title>
          . v.
          <volume>36</volume>
          ,
          <issue>i</issue>
          . 8. p.
          <fpage>423</fpage>
          -
          <lpage>438</lpage>
          (
          <year>2010</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          29.
          <string-name>
            <given-names>N.</given-names>
            <surname>Guglielmi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Hairer</surname>
          </string-name>
          .
          <article-title>Implementing Radau IIA methods for stiff delay differential equations // Computing</article-title>
          . v.
          <volume>67</volume>
          . p.
          <fpage>1</fpage>
          -
          <lpage>12</lpage>
          (
          <year>2001</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          30.
          <string-name>
            <given-names>S.</given-names>
            <surname>Godunov</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Kulikov.</surname>
          </string-name>
          <article-title>Computation of Discontinuous Solutions of Fluid Dynamics Equations with Entropy Nondecrease Guarantee //</article-title>
          <source>Computational Mathematics and Mathematical Physics. v. 54, i. 6</source>
          . p.
          <fpage>1012</fpage>
          -
          <lpage>1024</lpage>
          (
          <year>2014</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          31.
          <string-name>
            <surname>Roe</surname>
            <given-names>P.</given-names>
          </string-name>
          ,
          <source>Balsara D. Notes on the Eigensystem of Magnetohydrodynamics // SIAM Journal of Applied Mathematics. - 1996</source>
          . - V. 56,
          <string-name>
            <surname>I.</surname>
          </string-name>
          <year>1</year>
          . - P 57-67.
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          32. Mitchell N.,
          <string-name>
            <surname>Vorobyov</surname>
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hensler</surname>
            <given-names>G</given-names>
          </string-name>
          .
          <article-title>Collisionless Stellar Hydrodynamics as an Efficient Alternative to N-body Methods // Monthly Notices of the Royal Astronomical Society</article-title>
          .
          <article-title>-</article-title>
          <year>2013</year>
          . - V.
          <year>428</year>
          . - P.
          <fpage>2674</fpage>
          -
          <lpage>2687</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          33.
          <string-name>
            <surname>Kulikov</surname>
            <given-names>I. GPUPEGAS</given-names>
          </string-name>
          :
          <article-title>A New GPU-accelerated Hydrodynamic Code for Numerical Simulations of Interacting Galaxies //</article-title>
          <source>The Astrophysical Journal Supplements Series</source>
          . -
          <year>2014</year>
          . - V. 214,
          <string-name>
            <surname>I.</surname>
          </string-name>
          <year>12</year>
          . - P.
          <fpage>1</fpage>
          -
          <lpage>12</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          34.
          <string-name>
            <surname>J. Ibanez</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          <string-name>
            <surname>Cordero-Carrion</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Miralles</surname>
          </string-name>
          .
          <article-title>On numerical relativistic hydrodynamics and barotropic equations of state // Classical and Quantum Gravity</article-title>
          .
          <source>v. 29, i. 15. ID 157001</source>
          (
          <year>2012</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref35">
        <mixed-citation>
          35.
          <string-name>
            <given-names>S.</given-names>
            <surname>Godunov</surname>
          </string-name>
          .
          <article-title>About inclusion of Maxwell's equations in systems relativistic of the invariant equations //</article-title>
          <source>Journal of Computational Mathematics and Computational Physics. v. 53, i. 8</source>
          . p.
          <fpage>1356</fpage>
          -
          <lpage>1359</lpage>
          (
          <year>2013</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref36">
        <mixed-citation>
          36.
          <string-name>
            <given-names>S.</given-names>
            <surname>Godunov</surname>
          </string-name>
          .
          <article-title>Thermodynamic formalization of the fluid dynamics equations for a charged dielectric in an electromagnetic field //</article-title>
          <source>Journal of Computational Mathematics and Computational Physics. v. 52, i. 5</source>
          . p.
          <fpage>916</fpage>
          -
          <lpage>929</lpage>
          (
          <year>2012</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref37">
        <mixed-citation>
          37.
          <string-name>
            <surname>Godunov</surname>
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Romensky</surname>
            <given-names>E.</given-names>
          </string-name>
          <article-title>The elements of continuum mechanics and conservation laws</article-title>
          .
          <source>Novosibirsk: Scientific Book</source>
          (
          <year>1998</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref38">
        <mixed-citation>
          38.
          <string-name>
            <surname>Romankov</surname>
            ,
            <given-names>E. Romensky.</given-names>
          </string-name>
          <article-title>The Runge-Kutta/WENO method for solving equations for smallamplitude wave propagation in a saturated porous medium //</article-title>
          <source>Siberian Journal of Computational Mathematics. v. 17, i. 3</source>
          . p.
          <fpage>259</fpage>
          -
          <lpage>271</lpage>
          (
          <year>2014</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref39">
        <mixed-citation>
          39.
          <string-name>
            <given-names>V.</given-names>
            <surname>Springel</surname>
          </string-name>
          .
          <article-title>E pur si muove: Galilean-invariant cosmological hydrodynamical simulations on a moving mesh // Monthly Notices of the Royal Astronomical Society</article-title>
          . v.
          <volume>401</volume>
          . p.
          <fpage>791</fpage>
          -
          <lpage>851</lpage>
          (
          <year>2010</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref40">
        <mixed-citation>
          40.
          <string-name>
            <surname>J. Murphy</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Burrows.</surname>
          </string-name>
          BETHE-Hydro:
          <article-title>An Arbitrary Lagrangian-Eulerian Multidimensional Hydrodynamics Code for Astrophysical Simulations // The Astrophysical Journal Supplement Series</article-title>
          . v.
          <volume>179</volume>
          . p.
          <fpage>209</fpage>
          -
          <lpage>241</lpage>
          (
          <year>2008</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref41">
        <mixed-citation>
          41.
          <string-name>
            <given-names>N.</given-names>
            <surname>Chuev</surname>
          </string-name>
          .
          <article-title>The construction of 3D evolutionary model of polytrophic self-gravitational gas dynamics // The Bulletin of URGUPS</article-title>
          . v.
          <volume>9</volume>
          ,
          <issue>i</issue>
          . 1. p.
          <fpage>14</fpage>
          -
          <lpage>21</lpage>
          (
          <year>2011</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref42">
        <mixed-citation>
          42.
          <string-name>
            <surname>M.A. Kraeva</surname>
            ,
            <given-names>V.E.</given-names>
          </string-name>
          <string-name>
            <surname>Malyshkin</surname>
          </string-name>
          .
          <article-title>Assembly technology for parallel realization of numerical models on MIMD-multicomputers // Future Generation of Computing System</article-title>
          . v.
          <volume>17</volume>
          ,
          <issue>i</issue>
          .6. p.
          <fpage>755</fpage>
          -
          <lpage>765</lpage>
          (
          <year>2001</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref43">
        <mixed-citation>
          43.
          <string-name>
            <given-names>R.</given-names>
            <surname>Gingold</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Monaghan</surname>
          </string-name>
          .
          <article-title>Smoothed particle hydrodynamics - Theory and application to nonspherical stars // Monthly Notices of the Royal Astronomical Society</article-title>
          . v.
          <volume>181</volume>
          . p.
          <fpage>375</fpage>
          -
          <lpage>389</lpage>
          (
          <year>1977</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref44">
        <mixed-citation>
          44.
          <string-name>
            <given-names>X.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Mo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Liu</surname>
          </string-name>
          .
          <article-title>Numerical study on mechanism of explosive welding // Science and Technology of Welding and Joining</article-title>
          . v.
          <volume>17</volume>
          ,
          <issue>i</issue>
          . 1. p.
          <fpage>36</fpage>
          -
          <lpage>41</lpage>
          (
          <year>2012</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref45">
        <mixed-citation>
          45.
          <string-name>
            <given-names>D.</given-names>
            <surname>Podkorytov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Rodionov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Sokolova</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Yurgenson</surname>
          </string-name>
          .
          <article-title>Using Agent-Oriented Simulation System AGNES for Evaluation of Sensor Networks</article-title>
          . LNCS, v.
          <volume>6235</volume>
          , p.
          <fpage>247</fpage>
          -
          <lpage>250</lpage>
          (
          <year>2010</year>
          ).
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>