<!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>Learning Parallel Computations with ParaLab</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Evgeny Kozinov</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Anton Shtanyuk</string-name>
          <email>ashtanyukg@gmail.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Lobachevsky State University of Nizhni Novgorod Nizhni Novgorod</institution>
          ,
          <country country="RU">Russia</country>
        </aff>
      </contrib-group>
      <fpage>11</fpage>
      <lpage>20</lpage>
      <abstract>
        <p>In this paper, we present the ParaLab teachware system, which can be used for learning the parallel computation methods. ParaLab provides the tools for simulating the multiprocessor computational systems with various network topologies, for carrying out the computational experiments in the simulation mode, and for evaluating the efciency of the parallel computation methods. The visual presentation of the parallel computations taking place in the computational experiments is the key feature of the system. ParaLab can be used for the laboratory training within various teaching courses in the eld of parallel, distributed, and supercomputer computations.</p>
      </abstract>
      <kwd-group>
        <kwd>parallel computations</kwd>
        <kwd>education</kwd>
        <kwd>curriculum experiments</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>The world of computations is becoming more and more parallel and distributed.
The modern supercomputers demonstrate high computational performance of
thousands tera ops ( 1015 operations per second). The total number of the
computational cores can reach several millions. The e cient usage of such highly
developed computational facilities requires a new generation of the high-quali ed
professional experts.</p>
      <p>The importance of the problem of education in the eld of the parallel,
distributed, and supercomputing computations (PDSC) is widely recognized by the
international educational community.</p>
      <p>One can recognize several large-scale projects, which contain the
recommendations on the curricula as well as the examples of the educational courses.
Among them:</p>
      <p>
        Some important results in this direction have been achieved also within the
framework of SIAM-EESI project on the development of education in the eld
of computational science and engineering [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. Some other results are presented
in [
        <xref ref-type="bibr" rid="ref5 ref6 ref7 ref8">5-8</xref>
        ].
      </p>
      <p>In the paper, we are going to focus on the issues of providing a necessary
laboratory training along with the wide spectrum of the problems, arising in the
education in the PDSC eld. Thus, in order to conduct the laboratory training,
it is necessary to provide access to a real supercomputer system (preferably,
even to several various supercomputers with di erent hardware and
architectures). Computational experiments may take quite a long time and, therefore,
may require large computational resources (including the nancial ones). Finally,
the conducted parallel computations are not observable visually: the developers
of the parallel algorithms and programs cannot see, which processors execute
distributed computations, what data are transferred, and which processors are
involved in such transfer, etc.</p>
      <p>All the issues listed above essentially complicate learning in the PDSC eld.
These di culties can be reduced by means of development and wide use of the
educational software systems. Such systems can visualize the key aspects of the
parallel, distributed, and supercomputer computations - the most di cult ones
to understand.</p>
      <p>
        In this paper, we present the Parallel Laboratory (ParaLab) teachware system
[
        <xref ref-type="bibr" rid="ref16">16</xref>
        ], which provides the capabilities to carry out the computational experiments
for the purpose of learning and investigation of the parallel algorithms for solving
complex computational problems. The system can be applied in the laboratory
training within various educational courses in the PDSC eld, giving the learners
an opportunity:
{ to simulate the multiprocessor computational systems with various processor
number and network topologies,
{ to visualize the computation processes and the data transfer operations
taking place in the parallel solving of various computational problems,
{ to evaluate the e ciency of the studied parallel computation methods.
      </p>
      <p>The paper goes as follows: Section 2 contains a general description of the
system. Section 3 describes the parallel computational methods that can be
studied with ParaLab. In section 4, a set of laboratory works based on ParaLab
is given. Section 5 concludes the paper.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Related Work</title>
      <p>
        Many researchers and teachers pay a considerable attention to the development
of the tools for visualization of the algorithms and programs and to wide use of
them in education. One of the rst reviews of the methods for visualizing the
parallel programs was presented in [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. The estimate of the e ciency of animation
and visualization tools was considered in [
        <xref ref-type="bibr" rid="ref10 ref11 ref12">10-12</xref>
        ]. Some existing visualization
tools were considered in [
        <xref ref-type="bibr" rid="ref13 ref14">13-14</xref>
        ]. The capabilities of the Matlab system are used
widely for the visualization of the algorithms and programs [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ].
      </p>
    </sec>
    <sec id="sec-3">
      <title>ParaLab Overview</title>
      <p>In general, ParaLab is an integrated software environment for learning and
research of the parallel algorithms for solving complex computational problems.</p>
      <p>A wide range of the tools for visualizing the parallel computations and for
analyzing the experimental results allows studying the e ciency of various
algorithms for di erent computational systems, making the conclusions on the
scalability of the parallel algorithms, and evaluating the possible speedup of the
parallel computations.</p>
      <p>
        The main feature of the system is that the parallel computations are
performed in the simulation mode, and therefore, studying the parallel methods
can be performed on any ordinary computer. To evaluate the required
characteristics of parallel computations (execution time, speedup, e ciency, etc.) the
appropriate theoretical models are used [
        <xref ref-type="bibr" rid="ref17 ref18 ref19">17-19</xref>
        ].
      </p>
      <p>ParaLab provides the following capabilities for studying parallel
computations.
1. Simulating the computational system. To simulate a computational
system, one can de ne the topology of a parallel computational system for
carrying out the computational experiments, select the number of processors
in this topology, set the performance of the processors, select the
communication network parameters and the communication method (see Figure 1).
Within the framework of the system, the support of several standard
topologies is provided, including the line (farm), the ring, the star, the mesh, the
hypercube, and the complete graph (clique) ones.
ParaLab allows to simulate high-performance computational systems that
can consist of a set of computational nodes. Each computational node can
contain one or several processors, and each processors can have one or several
cores.
2. Selecting the problem statement and the method for its solving.</p>
      <p>Within the framework of the ParaLab system, the student can perform the
computational experiments for the following set of problems: matrix-vector
multiplication, matrix multiplication, solving the systems of linear
equations, sorting, graph processing, solving the di erential equations in partial
derivatives, and multidimensional global optimization.
3. Performing a computational experiment. Prior to execution of a
computational experiment, one can set up the necessary visualization
parameters, select the desired demonstration rate, the visualization mode of the
data transfer between the processors, and the granularity degree of the
visualization of the parallel computations performed. ParaLab provides a wide
choice of tools for carrying out the computational experiments.</p>
      <p>The experiments can be performed either in the automatic mode or in the
step-by-step mode, when calculations are suspended after each iteration of
the algorithm is completed. It should be noted that several di erent
experiments with various types of the multiprocessor systems, problems, or parallel
methods can be run simultaneously in time-sharing mode.
4. Analyzing the results of the computational experiments. The
ParaLab system accumulates the results of the computational experiments
automatically. The system provides the tools for plotting the dependencies
featuring the parallel computations (execution time, speedup, e ciency) vs
the parameters of the problem or the computational system. The
dependencies are plotted according to the theoretical models for the computational
complexity of the parallel algorithms (Figure 2).</p>
      <p>An example of the visual presentation of the parallel computations in solving
the problem of the matrix multiplication by the parallel algorithm with the
block-striped matrix decomposition is presented in Figure 3. Two windows
for performing the computational experiments were open in the workspace
of the ParaLab system. The computational systems consisting of 9 nodes
were used for both computational experiments where each node contains 2
two-core processors. The mesh topology was used in the system shown in
the left window and the complete graph (clique) one in the system shown
in the right window.
The parameters of the problems being solved, such as the problem name, the
selected parallel method, and the initial data volume are shown in the
\Experiment" list at the lower right side of the window. In the \Topology" list,
the attributes of the selected computational system, namely the topology,
the number and performance of the processors, and the network parameters
are listed.</p>
      <p>Below the \Experiment" eld, the bar indicator shows the progress of the
algorithm execution. The \Total time" and \Communication time" boxes
show the execution time of the parallel algorithm.
4</p>
    </sec>
    <sec id="sec-4">
      <title>Parallel Methods for Studying with ParaLab</title>
      <p>
        A wide choice of the parallel methods for solving a number of the problems of
computational mathematics can be studied with ParaLab [
        <xref ref-type="bibr" rid="ref16 ref17 ref18 ref19">16-19</xref>
        ].
1. Matrix computations. The matrix computations are used for solving
numerous scienti c and technological problems. Incurring rather high
computational costs, the matrix computation methods are a good example for
learning various methods of parallel computations.
      </p>
      <p>
        The following algorithms are provided by ParaLab:
{ parallel algorithms of the matrix-vector multiplication with the
blockstriped and checkerboard block matrix decomposition,
{ a parallel algorithm of the matrix multiplication for the block-striped
data decomposition scheme and two parallel methods (the Fox and
Cannon algorithms) for the checkerboard block matrix decomposition,
{ the parallel Gauss method for solving the systems of linear equations.
2. Data sorting. Sorting is one of classical data processing problems. It is
a problem of arrangement of the elements of a non-ordered dataset in the
monotonous ascending or descending order. A parallel variant of the
bubble sorting method and the parallel Shell and quick sorting algorithms are
implemented in ParaLab.
3. Graph processing. Data representation in the form of graphs is used widely
in modeling of various phenomena, processes, and systems. Therefore, the
graph processing is applied in the practical applications widely. For the graph
processing problems, ParaLab uses the Prims parallel method for nding the
minimum spanning tree and the Dijkstra's and Floyds algorithms for nding
the shortest paths.
4. Solving the di erential equations in partial derivatives. The di
erential equations in partial derivatives are a widely used approach applied
for mathematical modeling in various elds of science and technology. The
amount of computations required for the numerical solving of the di erential
equations is usually large, and utilizing the high performance computational
systems is traditional for this eld of computational mathematics. In the
ParaLab system, the parallel Gauss-Seidel method is implemented for this
class of problems.
5. Multiextremal optimization. The optimization problems describe how
to select the best variants, while developing novel devices, objects, and
systems and, therefore, have found an ultimately wide application in various
elds of the human activities. The multiextremal (global) optimization
problems, which assume several local optima in the search domain, belong to the
most complex optimization ones. The parallel index method [
        <xref ref-type="bibr" rid="ref20 ref21">20-21</xref>
        ] is
implemented for solving the multiextremal optimization problems in ParaLab.
5
      </p>
    </sec>
    <sec id="sec-5">
      <title>Laboratory Training with ParaLab for Learning</title>
    </sec>
    <sec id="sec-6">
      <title>Parallel Methods</title>
      <p>ParaLab is designed for research and studying the parallel algorithms for solving
complex computational problems. ParaLab can be used by the university
students and teachers within the framework of the laboratory training in various
educational courses in the PDSC eld. ParaLab system can be applied also in
research for evaluating the e ciency of the parallel computations as well.</p>
      <p>The laboratory training with ParaLab system can be implemented in
accordance with the following successive scheme:
{ Simulating the multiprocessor computational systems (the topology
selection, setting the number and performance of processors, selection of the data
transfer method, and setting up the communication network parameters);
{ Choosing the class of the problems to be solved and setting the problem
parameters;
{ Selecting the parallel method for solving the problem and setting the values
of its parameters;
{ Setting up the graphical indicators for visualizing the parallel computation
process (the status of data on the system processors, the data transfer via
the network, the current computational results);
{ The execution of the experiment in the computations simulation mode;
choosing the experiment mode: automatic or step-by-step, single or a
series of executions, single or multiple experiments in the time-sharing mode
for di erent variants of the computational system topologies, number of
processors, the problem parameters, etc.;
{ Analyzing the experimental results accumulating in the experiment log le;
evaluating the execution time subject against the complexity of the problem
and the number of processors; plotting the dependencies of the speedup and
the e ciency of the parallel computations;
{ Implementing the experiments with the real parallel computations;
execution of the parallel programs on a single processor and on a multiprocessor
computational system using the remote access; comparing the theoretical
estimates with the results of real computational experiments. The
laboratory training with ParaLab can be conducted, for example, according to the
following set of assignments:
{ A student solves a complex computational problem using several parallel
methods and a computational system, compares the results to each other,
and interprets them within the theory of the parallel algorithms;
{ A student constructs several computational systems in such a way that allows
to demonstrate the basic theoretical concepts of parallel computations;
{ A student constructs one or several computational systems and solves the
problems with various values of the computational system parameters, thus
studying the e ect of the parameters on the time of the algorithm execution;
{ A student performs real computation experiments using a cluster in the
remote access mode and compares the results of real and simulated
experiments.</p>
      <p>In practical application of the ParaLab system for teaching parallel
computations, the following scheme of the laboratory training could be recommended.</p>
      <p>Lab 1. Simulating a computational system. This lab is aimed at studying
the architecture of the multiprocessor systems. Using ParaLab, standard
topologies of the computational systems can be considered with the possibility of the
visualization of them at various number of the computational nodes, processors,
and cores. Within the framework of the lab, the communication network
performance (latency and bandwidth) as well as the basic methods of data transfer
(message and packet modes) can also be studied.</p>
      <p>This lab could be recommended within the framework of the laboratory
training for studying the \Architecture" section of the recommended curriculum
developed within NSF/IEEE-TCPP the \Curriculum Initiative on Parallel and
Distributed Computing" project (the \Architecture of Computational Systems"
training course).</p>
      <p>Lab 2. Studying the parallel methods of the matrix computations. Within
the framework of this lab, the basic methods of matrix distribution between the
processors (the horizontal and vertical block-striped schemes, the checkerboard
block decomposition of the matrices) can be considered.</p>
      <p>Also, the problem of numerical solving the systems of linear equations can
be considered as an additional topic for this lab.</p>
      <p>This lab can be recommended within the framework of the laboratory
training for studying the \Algorithms" section of the recommended curriculum,
developed in the framework of the NSF/IEEE-TCPP \Curriculum Initiative on
Parallel and Distributed Computing" project (the \Parallel Programming" and
\Numerical Methods of Parallel Computations" training courses).</p>
      <p>Lab 3. Studying the parallel data sorting methods. This lab continues the
topic of studying the parallel methods for solving the complex computational
problems. Within the framework of this lab, the parallel bubble sorting
algorithm, the Shell sorting method, and the quick sorting algorithm can be
considered.</p>
      <p>Extended utilizing of the tools available in ParaLab for visual presentation
of the parallel computation process is assumed within the lab. Prior to
executing the computational experiments, the demonstration rate and the modes of
demonstration of the data transfer operations can be changed. Also, the
step-bystep mode of execution of the algorithm iterations can be activated. It is useful
to visualize the calculations performed by one of the processors in a separate
window as well.</p>
      <p>This lab can be recommended within the framework of the laboratory
training for studying the \Algorithms" section of the recommended curriculum
developed within the framework of the NSF/IEEE-TCPP \Curriculum Initiative
on Parallel and Distributed Computing" project (the \Parallel Programming"
and \Numerical Methods of Parallel Computations" training courses).</p>
      <p>Lab 4. Studying the parallel methods of graph processing. Within the
framework of this lab, the Prims parallel algorithm for nding the minimum spanning
tree and the Dijkstra's parallel method for nding the shortest paths are studied.
The graphs for performing the experiments are generated by a random graph
generator or can be set by a graphic editor by uploading from a le.</p>
      <p>Conducting the lab can be performed in the manner similar to the labs 3 and
4.</p>
      <p>The labs for studying the parallel methods can be extended by the topics
considering the parallel numerical methods for solving the di erential equations
in partial derivatives and the global optimization problems.</p>
      <p>Lab 5. Studying the methods for analyzing the experimental results. The lab
is assigned for studying the basic principles of carrying out the computational
experiments and the methods of accumulation and analysis of the obtained
experimental data. For studying this topic, ParaLab accumulates the results of the
performed computations in the experimental data log le. Within the framework
of this lab, the computational experiments are performed, the numerical results
stored in the experimental log le should be analyzed, and the dependencies of
the execution time (or speedup) on the problem (the amount of the initial data)
and of the computational system parameters (the number of processors, nodes,
cores) can be plotted.</p>
      <p>This lab can be recommended within the framework of the laboratory
training for the \Computational Experiments and Methods of Experimental Data
Analyzing" training course.
6</p>
    </sec>
    <sec id="sec-7">
      <title>Conclusions</title>
      <p>In this paper, we present the ParaLab teachware system, which can be applied
for studying the methods of parallel computations. ParaLab provides the tools
for modeling the multiprocessor computational systems with various topologies
of the data transfer network, for performing the computational experiments in
the simulation mode, and for evaluating the e ciency of the parallel computation
methods being studied. The visual demonstration of the parallel computation
processes executed during the performed computational experiments is the key
feature of ParaLab system.</p>
      <p>The system can be applied for the laboratory training within various
educational courses in the PDPS eld. ParaLab is applied intensively in the
educational activities at University of Nizhny Novgorod as well as in other Russian
universities.</p>
      <p>ParaLab is presented on the website of the Supercomputing Technologies
Center, Lobachevsky State University of Nizhni Novgorod (see http://www.
hpcc.unn.ru/?doc=107) as a part of the set of educational resources.
7</p>
    </sec>
    <sec id="sec-8">
      <title>Acknowledgments</title>
      <p>This research was supported by the Russian Science Foundation, project
15-1130022 \Global optimization, supercomputing computations, and applications".</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1. NSF/IEEE-TCPP
          <source>Curriculum Initiative on Parallel and Distributed Computing</source>
          at http://www.cs.gsu.edu/~tcpp/curriculum/
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>2. Computing Curricula Computer Science 2013 at http://ai.stanford.edu/ users/sahami/CS2013/</mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Voevodin</surname>
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gergel</surname>
            <given-names>V.</given-names>
          </string-name>
          <string-name>
            <surname>Supercomputing</surname>
          </string-name>
          <article-title>Education: The Third Pillar of</article-title>
          HPC at http://www.exascale.org/mediawiki/images/3/3c/ECSS_
          <year>2010</year>
          .pdf
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4. Future Directions in
          <source>CSE Education and Research Report from a Workshop Sponsored by the Society for Industrial and Applied Mathematics (SIAM) and the European Exascale Software Initiative (EESI-2)</source>
          at http://wiki.siam.org/siag-cse/ images/siag-cse/f/ff
          <source>/CSE-report-draft-Mar2015</source>
          .pdf
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>5. Computer science in Parallel (CSinParallel) - http://serc.carleton.edu/ csinparallel/index.html</mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>A</given-names>
            <surname>Survey</surname>
          </string-name>
          <article-title>on Training and Education Needs for Petascale Computing - www. prace-ri</article-title>
          .eu/IMG/pdf/D3-3-1_document_final.pdf
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Rague</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          <article-title>Teaching parallel thinking to the next generation of programmers //</article-title>
          <source>Journal of Education, Informatics and Cybernetics</source>
          , vol.
          <volume>1</volume>
          , no.
          <issue>1</issue>
          , pp.
          <fpage>4348</fpage>
          ,
          <year>2009</year>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Gergel</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Liniov</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Meyerov</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sysoyev</surname>
            ,
            <given-names>A. NSF</given-names>
          </string-name>
          /IEEE-TCPP Curriculum Implementation at the State University of Nizhni Novgorod // IPDPSW '14
          <source>Proceedings of the 2014 IEEE International Parallel &amp; Distributed Processing Symposium</source>
          Workshops. IEEE Computer Society Washington, DC, USA,
          <year>2014</year>
          , pp.
          <fpage>1079</fpage>
          -
          <lpage>1084</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Kraemer</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stasko</surname>
            ,
            <given-names>J.T.</given-names>
          </string-name>
          <article-title>The visualization of parallel systems: an overview //</article-title>
          <source>Journal of Parallel and Distributed Computing</source>
          ,
          <volume>18</volume>
          ,
          <year>1993</year>
          ,
          <volume>105117</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Hundhausen</surname>
            ,
            <given-names>C.D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dougla</surname>
            ,
            <given-names>S.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stasko</surname>
            <given-names>J.T. A</given-names>
          </string-name>
          <string-name>
            <surname>Meta-Study of Algorithm</surname>
          </string-name>
          Visualization E ectiveness //
          <source>Journal of Visual Languages &amp; Computing</source>
          ,
          <volume>13</volume>
          (
          <issue>3</issue>
          ),
          <year>2002</year>
          ,
          <volume>259290</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Urquiza-Fuentes</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Velzquez-Iturbide</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <article-title>Towards the e ective use of educational program animations: the roles of students engagement and topic complexity</article-title>
          .
          <source>Computers &amp; Education</source>
          ,
          <volume>67</volume>
          ,
          <year>2013</year>
          ,
          <volume>178192</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Lazaridis</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Samaras</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sifaleras</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <article-title>An empirical study on factors in uencing the e ectiveness of algorithm visualization // Comput</article-title>
          . Appl. Eng. Educ.
          <volume>21</volume>
          ,
          <year>2013</year>
          ,
          <volume>410420</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Ben-Ari</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bednarik</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ben-Bassat</surname>
            ,
            <given-names>L.R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ebel</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Moreno</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Myller</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          , &amp;
          <string-name>
            <surname>Sutinen</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          <article-title>A decade of research and development on program animation: the Jeliot experience //</article-title>
          <source>Journal of Visual Languages &amp; Computing</source>
          ,
          <volume>22</volume>
          (
          <issue>5</issue>
          ),
          <year>2011</year>
          ,
          <volume>375384</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Sorva</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Karavirta</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          , &amp;
          <string-name>
            <surname>Malmi</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          <article-title>A review of generic program visualization systems for introductory programming education // ACM Transactions on Computing Education (TOCE</article-title>
          ),
          <volume>13</volume>
          (
          <issue>4</issue>
          ),
          <year>2013</year>
          ,
          <volume>15</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <article-title>Teaching with Data, Simulations and Models</article-title>
          . Topical Resources at http://serc. carleton.edu/NAGTWorkshops/data_models/toolsheets/MATLAB.html
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Gergel</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Labutina</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <article-title>The ParaLab system for investigating the parallel algorithms</article-title>
          // Lecture Notes in Computer Science,
          <year>2010</year>
          ,
          <volume>6083</volume>
          LNCS, pp.
          <fpage>95</fpage>
          -
          <lpage>104</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Kumar</surname>
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Grama</surname>
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gupta</surname>
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Karypis</surname>
            <given-names>G</given-names>
          </string-name>
          . Introduction to Parallel Computing. - The Benjamin/Cummings Publishing Company, Inc.,
          <year>1994</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Quinn</surname>
            ,
            <given-names>M.J.</given-names>
          </string-name>
          <article-title>Parallel Programming C with MPI</article-title>
          and
          <string-name>
            <surname>OpenMP. -</surname>
          </string-name>
          Mccraw
          <string-name>
            <surname>-Hill</surname>
          </string-name>
          , New York,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Gergel</surname>
            ,
            <given-names>V.P.</given-names>
          </string-name>
          <string-name>
            <surname>Theory</surname>
          </string-name>
          and
          <article-title>Practice of Parallel Computations</article-title>
          . BINOM, Moscow,
          <year>2007</year>
          . (In Russian)
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Strongin</surname>
            ,
            <given-names>R.G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sergeyev</surname>
          </string-name>
          , Ya.D.
          <article-title>Global Optimization with Non-convex Constraints: Sequential and Parallel Algorithms</article-title>
          . Dordrecht : Kluwer Academic Publishers,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Gergel</surname>
            ,
            <given-names>V.P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Strongin</surname>
            ,
            <given-names>R.G.</given-names>
          </string-name>
          <article-title>Parallel computing for globally optimal decision making</article-title>
          <source>// Lecture Notes in Computer Science</source>
          ,
          <volume>2763</volume>
          ,
          <year>2003</year>
          , pp.
          <fpage>76</fpage>
          -
          <lpage>88</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>