<!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>An E ective Implementation Approach for Adapting of HPC Applications</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Pavel Drobintsev</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Vsevolod Kotlyarov</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Aleksei Levchenko</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Alexey Maslakov</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Peter the Great St. Petersburg Polytechnic University</institution>
          ,
          <addr-line>Saint Petersburg</addr-line>
          ,
          <country country="RU">Russia</country>
        </aff>
      </contrib-group>
      <fpage>50</fpage>
      <lpage>59</lpage>
      <abstract>
        <p>The work considers an approach to the adaptation of applications that use algorithms proven to be successful and developed with the help of computers that do not have a high degree of parallelism, though in a number of implementations they require a sharp reduction in the computing time. A natural way-out is to transfer the algorithm solution to a highly parallel heterogeneous processing environment, i.e. hybrid supercomputer. Unfortunately, the result does not always meet expectations. The challenge is the need to consider architectural features of the supercomputer and the corresponding translation of the generic algorithm, while maintaining its semantic features, i.e. the development of parallel software of the generic algorithm scalable to allocated supercomputer resources. Available approaches to the software parallelization deliver superb results when algorithms demonstrate obvious parallelism. Otherwise, their transformation to the parallel representation requires an analysis of dependencies in parallel threads on data and costs of the parallel supercomputer execution. In this paper, we present an algorithm analysis technique that allows to determine fragments for a signi cant reduction in the computing time during the parallel execution. The result is a algorithm speci cation work schedule that ensures the e ective solution, using the supercomputer. The schedule is used to create the dedicated control over the execution of an parallelized algorithm for its e ective solution with the help of hybrid supercomputer resources. The work shows results of the implementation of the developed technique in terms of the genetic research.</p>
      </abstract>
      <kwd-group>
        <kwd>computer architecture</kwd>
        <kwd>high performance computing</kwd>
        <kwd>Java large-scale systems</kwd>
        <kwd>NUMA</kwd>
        <kwd>performance</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>There are currently a variety of areas of concern, where processing and analysis
of large data arrays are actively used. For example, these include bioinformatics,
photograph-based modeling of the surface relief, analysis of data on industrial
plots for the optimization of manufacturing processes, etc. These areas have
applications with algorithms that have proven to be successful in data processing
of signi cantly smaller arrays, developed with the help of computers that do not
have a high degree of parallelism. As a rule, capacities of such algorithms do
not meet modern requirements for processing of huge data arrays and a sharp
reduction in the time of the computation result output.</p>
      <p>This work considers an adaption approach to applications that use
successfully tested algorithms for the highly-parallel processing environment, namely
the supercomputer. Unfortunately, the direct transfer result does not always
meet expectations. The challenge is the need to consider architectural features
of the supercomputer and the corresponding translation of the generic algorithm,
while maintaining its semantic features, i.e. the development of parallel software
of the source algorithm scalable to allocated supercomputer resources.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Related Work</title>
      <p>When analyzing available papers devoted to the software adaptation to hybrid
supercomputer clusters, certain problems speci c to the hybrid cluster
application programming model shall be considered:
{ a problem of the resource allocation dynamic control,
{ a problem of the task execution control especially in heterogeneous clusters,
{ a problem of the software adaptation for the e ective execution in several
clusters based on the required load.</p>
      <p>
        There are well-known publications devoted to the solution of these tasks.
Work [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] is one of the earliest to o er a guided self-scheduling that allows to
ensure the workload balance. Work [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] o ers a export strategy of information
about used supercomputer resources for task-planning at workstations and
simultaneously in available cluster nodes. Scogland et. al [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] proposes methods
and systems that allow the software to get adapted to heterogeneous
computing systems directly at runtime. First and foremost, the adaptation includes the
load balancing and ensures the cache coherence. Recent work [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] describes an
approach to use a parallel scripting language to run scienti c supercomputer
applications across multiple computing resources, ranging from the academic
university cluster to TOP500 supercomputers. Another work [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] describes an
e cient resource manager on the basis of the application execution schedule in
the supercomputer, which has allowed a 40% reduction in the task execution
wait time if compared to classic solutions like Slurm [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]. These publications
and some other papers [
        <xref ref-type="bibr" rid="ref14 ref7 ref8">7, 14, 8</xref>
        ] consider the management of applications as that
of cluster resources and the distribution of these resources across computing
systems of di erent types.
      </p>
      <p>
        This work presents an approach to the application adaptation based on its
preliminary static analysis and the generation of an e ective execution schedule
in view of the architecture of the hybrid supercomputer and application
requirements for cluster resources.
The speci c contribution of this paper is an approach that allows to run Java
parallel applications across completely di erent HPC systems (hybrid
supercomputer). As such, we developed a parallel version of MarkDuplicates, a
bioinformatics tool from Picard toolkit [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] used in the genome analysis to mark PCR
duplication artifacts in RNA-Seq data that is stored in giant (multi terabyte)
BAM or SAM les. To ensure fast input/output, these les should be stored and
processed directly in-memory of one node. The developed parallel
MarkDuplicates is an example of irregular and unbalanced consumption of HPC resources
by the nature of its task: some modules perform computational tasks, while other
modules periodically require connection to the input les.
      </p>
      <p>With regard to the principal di erences between our HPC systems, that
caused the development of our approach, the computational part is performed on
a traditional Linux cluster, while big data processing occurs directly in the global
shared memory of the ccNUMA system. The division of tasks between systems is
caused by complexity in providing Java support for huge pages and logically
indivisible piece of RAM more than 2Tb. It is important to note that despite the
variety of parallel computing models used in HPC, such as the traditional MPI+X
paradigm or emerging parallel programming models like UPC/Charm++/X10,
etc., we are forced to use Java for big data processing in this case because of
existing Java codebase in bioinformatics. At the same time, we were not able
to store terabyte les in the memory of the standard cluster node, which is
equipped with only 60-256Gb RAM. We could use traditional not-in-memory
network storage, but the interconnect latency ruins the performance gain,
because the communication operations far outweigh the computational ones. The
results of applying the developed approach to our systems will also be mentioned
in Section 6. Thus we perform computational operations and processing of large
data in hybrid environment of di erent systems, depending on their suitability.
This approach has signi cant advantages since in-memory data processing is still
the fastest pathway.</p>
      <p>
        The above circumstances prompted us to develop the following procedure
to analyze the algorithm in order to search for program modules that will give
a signi cant reduction in the computing time for the parallel execution,
corresponding to the program correction that increases the degree of parallelism and
creates the execution schedule to ensure the e ective solution with the help of
the supercomputer. The procedure stipulates the following stages of analysis:
1. Call tree analysis of algorithm methods obtained as a result of pro ling
of an unadapted MarkDuplicates version to determine approaches, whose
call percentage is signi cant in the application. Figure 1 illustrates the
result of the tree analysis, which is the identi cation of a list of methods
with the highest frequency of calls. There are 4 methods in the
application under consideration: SAMFileWriterImpl.addAlignment (48.9%),
SamReader$AssertingIterator.next (33.8%), buildReadEnds (6.9%) and
getLibraryName (5.9%). The contribution of remaining used methods is
insignificant in terms of parallelization.
2. The algorithm correction through (initial or additional) parallelization of
commonly used methods. During parallelization, dependencies in terms of
data and control in parallel threads shall be considered with the provision of
the proper synchronization. There are well-known computerized approaches
to the search and analysis of dependencies [
        <xref ref-type="bibr" rid="ref5 ref6">6, 5</xref>
        ].
3. Analysis of parallel threads that implement the application. Indices of CPU
total usage and the number of active threads shown in the diagram in gure
2 are divided into ve areas, whose needs vary from 28 threads for area 1
to 7 threads for area 5, in view of 5 system service threads. Since a core is
allocated to each thread, unused cores remain idle in areas 1{5.
4. Evaluation of the thread-required memory space. An example of the
assessment of the thread-required memory space for the solution of parallel
algorithm fragments is shown in gure 3. The evaluation is obtained as a result of
pro ling of the application execution in the supercomputer. Finally, if
during the execution the thread-required memory space exceeds the allocated
resource, for heap or cache are generated requirements for the additional
algorithm fragmentation for the solution of each thread to t into allocated
resources.
5. Creation of an implementation application model for the supercomputer.
Figure 4 shows the model of application requirements for resources. Since the
model takes into account requirements for the e ective implementation of
a particular application, it shall be transformed into a schedule for its
implementation in the supercomputer. In this event, the application is
transformed into a task package, each of which carries information about required
resources.
      </p>
    </sec>
    <sec id="sec-3">
      <title>Running Application on Hybrid Supercomputer</title>
      <p>
        There are a lot of well-known papers devoted to the task thread management
in high performance computing (HPC) [
        <xref ref-type="bibr" rid="ref14 ref7 ref8">8, 14, 7</xref>
        ]. What is peculiar about them is
that they o er universal approaches for the successful solution of described
problem. The speci cs of the solution proposed in the work is to implement special
control adapted for a certain application. The similar approach is particularly
relevant for the hybrid supercomputer, whose clusters are ready to provide
resources both to applications with high demands for the speed-of-response and to
applications that require huge memory space, or a combination of such
requirements. Though available applications integrally possess similar features, their
subtasks are characterized by more detailed requirements for the runtime
environment, and they can combine the e ective execution in di erent clusters of the
hybrid supercomputer. An execution schedule is a must-have for such patterns.
      </p>
      <p>
        The schedule formalization can be carried out in a number of ways. The work
gives preference to the use of standardized control language UCM [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. The
language provides control scripts in the form of ow graphs loaded with information
about requirements for resources. Each node of the control graph is associated
with a speci c task determined through the analysis of the application solution
algorithm. Though UCM language is well-adapted for description successive
control scenarios, scenarios with alternatives and scenarios with iterations are used
so far for the control description. An example of the control scenario for the
usage example study is shown in gure 5 (only requirements for threads and the
memory are taken into account).
      </p>
      <p>Start</p>
      <p>Task 1</p>
      <p>Task 2</p>
      <p>Task 3</p>
      <p>Task 4</p>
      <p>Task 5</p>
      <p>End
The schedule allows the task scheduler to distribute tasks both across
resources of one cluster, and across resources of di erent clusters of the hybrid
supercomputer.
5</p>
    </sec>
    <sec id="sec-4">
      <title>Restrictions to be Considered</title>
    </sec>
    <sec id="sec-5">
      <title>Resources</title>
    </sec>
    <sec id="sec-6">
      <title>When Planning</title>
      <p>An important feature of the e cient solution of parallel applications under study
is the opportunity to use di erent node types of the hybrid supercomputer,
depending on the stage of data processing and varying costs associated with the
processing. Di erent operation stages of the same scienti c application include
(1) compute-bound tasks, whose arithmetic operations greatly exceed the volume
of communication operations, (2) bandwidth-bound tasks with predictable and
successive access to the memory, (3) latency-bound tasks. The last type of tasks
is characterized by high requirements for the size of the logically monolithic
space of the globally addressable memory, intensive irregular addresses to the
memory and poor spatial and temporal localization. The cost of the last task type
dictates the need for a substantial increase in the memory of a single computing
node if compared with pure computing tasks. This circumstance is stipulated by
the processing task of large indivisible data because the computing system shall
simultaneously meet requirements of parallel applications with high-computing
intensity and requirements of applications from the big-data domain with high
overhead costs of communications. To overcome restrictions of the memory space
of one node in the hybrid supercomputer, it is possible to use multicomputer
nodes with NUMA architecture (Non-Uniform Memory Access) equipped with
RAM up to logically indivisible 12Tb for storage and processing of data used by
MarkDuplicates application.</p>
      <p>The memory non-uniformity inevitable in this case creates complex
problems that shall be considered when adapting a parallel application to avoid
sharp performance degradation. The main problems include (1) a computing
node cache coherence problem, (2) a memory hot-spotting problem, (3) a false
sharing problem. Furthermore, in case of Java-application for large data
processing, di culties may arise in handling memory space exceeding 12Tb, as a result
of non-uniform remote access when working with large memory pages.</p>
      <p>
        The cache coherence problem [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] is aggravated when substantial enlargement
of hybrid supercomputer nodes is applied. The nodes are in charge of
processing and storage of large data arrays directly in RAM. The computing process
localization is determined by the algorithm feature to be divided into such
modules, when the computing process of each of them is solved within the limits of
its allocated resources: the number of cores, cache and memory module space.
The contention for information from another cores cache deteriorates the
localization, and the associated increase in the cache access time may disrupt
the coherence [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. This problem can be caused by (1) collective use of recorded
data, (2) thread migration, (3) input-output tasks [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], i. e. all tasks actively
used in applications. It is worth mentioning that non-localized false sharing of
the same cache blocks by processors results in a runtime increase up to 8{10
times. Memory levels (DRAM, cache) and processing units form a hierarchy of
locality groups (lgroups). Each group includes a set of processors and memory
modules that are close to each other. In the case of hybrid supercomputer, such
groups are multimachine nodes. The algorithm shall be designed so that on the
appropriate phase interaction of data was localized in the appropriate thread,
and exchange between threads happened at the time of their synchronization.
In addition, garbage collection algorithm must be designed with these features
for copying and compacting of active data objects when scaling across the
hybrid cluster. In addition, the article [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] presented an approach to reduce the
gap between memory latency and processor speed by improving data locality by
resorting data for processing threads.
      </p>
      <p>
        Hot-spot memory contention [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] is another complex problem. Large-scale
multicomputer nodes of the hybrid supercomputer tend to get united and
enlarged due to the generalization of RAM space, which provokes massive
competitive access of thousands of competing processing units to critical data structures
to the memory module, where the data are located. When developing a parallel
version of the application, NUMA e ects shall be considered, as well as the
competition e ect in access to the memory through a number of program mitigation
methods, namely through (1) data redistribution and (2) software combining
[
        <xref ref-type="bibr" rid="ref16 ref3">3, 16</xref>
        ]. Mitigation methods o er the decomposition of the algorithm and data
into modules localized within memory borders attached to the supercomputer
node. At the same time, algorithm modules are evenly distributed across di
erent memory modules, which, in some cases, helps reduce the number of delayed
memory addresses from 0.2 to 1.5, and the remote access delay to lowest possible
values.
      </p>
      <p>False sharing in a multi-threaded Java-application means that there is
addressing to di erent objects that share a common cache memory block. False
sharing e ects can be mitigated with the help of the distribution based on the
object creation time. However, when it comes to global shared memory nodes
whose number of cores exceeds 3000, it can not be guaranteed that this e ect
will be completely avoided.
6</p>
    </sec>
    <sec id="sec-7">
      <title>Results of Applying the Developed Approach</title>
      <p>Experimental results of the proposed technique are shown using MarkDuplicates
metric computation are given in the table 1 for the solution of serial (not
parallelized) and scalable algorithm versions in Java. JVM Java HotSpot 64-bit
Server VM in 25.102-b14 build for linux-amd64 have been used in the
computation. We ran our experiments across multicluster hybrid supercomputer, which
includes (1) global shared memory system (cc-NUMA architecture) and (2) RSC
Tornado cluster, installed at Supercomputer Center, SPbPU. We used
multimachine cc-NUMA macronodes with up to 12Tb of RAM for storing input les
directly to memory. The second system, Tornado cluster, is equipped with a
1336 CPUs (Intel Xeon E5-2697 v3) and is used primarily for high-performance
data processing. Computation time spans for the scalable version managed by
the schedule at the solution in 1 and 2 clusters, and the serial (not parallelized)
version were compared. Time spans were obtained during tests in the processing
of data, whose array exceeds 200Gb. The resulting one-order di erence
demonstrates advantages of the proposed approach.</p>
      <p>Similar results were obtained for a wide range of genetic algorithms. It should
be noted that the C++ implementation of genetic algorithms and the use of
OpenMP/MPI would lead to much better results, but biologists prefer Java, and
formal code transformation without regard to problem semantics is
unpromising. Finally, it should be noted that the acceleration of genetic research is an
important factor for the results application in the clinical practice.
7</p>
    </sec>
    <sec id="sec-8">
      <title>Conclusion</title>
      <p>The scope of the proposed technique application is, in the rst place, processing
algorithms for large data because the analysis of algorithms is usually costly and
cannot be fully computerized. Therefore, the application of the technique is
justi ed for repeatedly-used algorithms. For example, algorithms of genetic studies
that should be quickly carried out in the medical practice. The technique is still
studied, and its real application is so far limited to search and n-wise algorithms
in C++ and Java,for which there are su ciently powerful pro lers.
Nevertheless, it shows good results in the adaptation of algorithms created regardless of
solution speci cs in a highly parallel supercomputer environment.</p>
      <p>
        The main drawback of the technique is its labor-intensive implementation.
Therefore, it is planned in the future to computerize analysis tools for
application algorithms to facilitate their better parallelization, to computerize the
generation algorithm of schedules based on architectural features and resources
of the execution environment. Create a single in-process chain and appropriate
tools to computerize the adaptation of algorithms for the e cient execution in
the hybrid supercomputer [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ].
      </p>
      <p>Acknowledgments. This work was nancially supported by the Ministry of
Education and Science of the Russian Federation within the framework of the
state assignment № 29517.2017/64 (the project theme \Methods and
technologies for veri cation and development of software for modeling and calculations
using HPC platform with extramassive parallelism"). The results were obtained
using ccNUMA system and RSC Tornado cluster in Supercomputer Center of
Peter the Great St.Petersburg Polytechnic University.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1. Broad institute.
          <source>Picard Toolkit</source>
          (
          <year>2017</year>
          ), https://github.com/broadinstitute/picard
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Censier</surname>
            ,
            <given-names>L.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Feautrier</surname>
            ,
            <given-names>P.:</given-names>
          </string-name>
          <article-title>A new solution to coherence problems in multicache systems</article-title>
          . IEEE Transactions on Computers C-
          <volume>27</volume>
          (
          <issue>12</issue>
          ),
          <volume>1112</volume>
          {1118 (Dec
          <year>1978</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Dandamudi</surname>
            ,
            <given-names>S.P.</given-names>
          </string-name>
          :
          <article-title>Reducing hot-spot contention in shared-memory multiprocessor systems</article-title>
          .
          <source>IEEE Concurrency</source>
          <volume>7</volume>
          (
          <issue>1</issue>
          ),
          <volume>48</volume>
          {59 (Jan
          <year>1999</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Dubois</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Scheurich</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Briggs</surname>
            ,
            <given-names>F.A.</given-names>
          </string-name>
          :
          <article-title>Synchronization, coherence, and event ordering in multiprocessors</article-title>
          .
          <source>Computer</source>
          <volume>21</volume>
          (
          <issue>2</issue>
          ),
          <volume>9</volume>
          {
          <fpage>21</fpage>
          (Feb
          <year>1988</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Eimouri</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kent</surname>
            ,
            <given-names>K.B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Micic</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>E ects of false sharing and locality on object layout optimization for multi-threaded applications</article-title>
          .
          <source>In: 2016 IEEE Canadian Conference on Electrical and Computer Engineering (CCECE)</source>
          . pp.
          <volume>1</volume>
          {
          <issue>5</issue>
          (May
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Ganesan</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chen</surname>
            ,
            <given-names>Y.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pan</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          :
          <article-title>Scaling Java virtual machine on a many-core system</article-title>
          .
          <source>In: 2014 International Symposium on Integrated Circuits (ISIC)</source>
          . pp.
          <volume>336</volume>
          {
          <issue>339</issue>
          (Dec
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Iserte</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Prades</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Reano</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Silla</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>Increasing the performance of data centers by combining remote GPU virtualization with Slurm</article-title>
          .
          <source>In: 2016 16th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing (CCGrid)</source>
          . pp.
          <volume>98</volume>
          {
          <issue>101</issue>
          (May
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>McLay</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schulz</surname>
            ,
            <given-names>K.W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Barth</surname>
            ,
            <given-names>W.L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Minyard</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Best practices for the deployment and management of production HPC clusters</article-title>
          .
          <source>In: 2011 International Conference for High Performance Computing, Networking, Storage and Analysis (SC)</source>
          . pp.
          <volume>1</volume>
          {
          <issue>11</issue>
          (Nov
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Mussbacher</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Amyot</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Assessing the applicability of use case maps for business process and work ow description</article-title>
          . In: 2008
          <source>International MCETECH Conference on e-Technologies (mcetech</source>
          <year>2008</year>
          ). pp.
          <volume>219</volume>
          {
          <issue>222</issue>
          (Jan
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Ozik</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Collier</surname>
            ,
            <given-names>N.T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wozniak</surname>
            ,
            <given-names>J.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Spagnuolo</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>From desktop to large-scale model exploration with Swift/T</article-title>
          . In: 2016
          <source>Winter Simulation Conference (WSC)</source>
          . pp.
          <volume>206</volume>
          {
          <issue>220</issue>
          (Dec
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Polychronopoulos</surname>
            ,
            <given-names>C.D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kuck</surname>
            ,
            <given-names>D.J.:</given-names>
          </string-name>
          <article-title>Guided self-scheduling: A practical scheduling scheme for parallel supercomputers</article-title>
          . IEEE Transactions on Computers C-
          <volume>36</volume>
          (
          <issue>12</issue>
          ),
          <volume>1425</volume>
          {1439 (Dec
          <year>1987</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Scogland</surname>
            ,
            <given-names>T.R.W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Feng</surname>
            ,
            <given-names>W.C.</given-names>
          </string-name>
          :
          <article-title>Runtime adaptation for autonomic heterogeneous computing</article-title>
          .
          <source>In: 2014 14th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing</source>
          . pp.
          <volume>562</volume>
          {
          <issue>565</issue>
          (May
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Smallen</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Crine</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Frey</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Berman</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wolski</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Su</surname>
            ,
            <given-names>M.H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kesselman</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Young</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ellisman</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>Combining workstations and supercomputers to support grid applications: the parallel tomography experience</article-title>
          .
          <source>In: Proceedings 9th Heterogeneous Computing Workshop (HCW</source>
          <year>2000</year>
          )
          <article-title>(Cat</article-title>
          . No.
          <source>PR00556)</source>
          . pp.
          <volume>241</volume>
          {
          <issue>252</issue>
          (
          <year>2000</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Varrette</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bouvry</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cartiaux</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Georgatos</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>Management of an academic HPC cluster: The UL experience</article-title>
          .
          <source>In: 2014 International Conference on High Performance Computing Simulation (HPCS)</source>
          . pp.
          <volume>959</volume>
          {
          <issue>967</issue>
          (
          <year>July 2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Yoo</surname>
            ,
            <given-names>A.B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jette</surname>
            ,
            <given-names>M.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Grondona</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>SLURM: Simple Linux Utility for Resource Management</article-title>
          , pp.
          <volume>44</volume>
          {
          <fpage>60</fpage>
          . Springer Berlin Heidelberg, Berlin, Heidelberg (
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Zhang</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gu</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ren</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>Optimization of computation-intensive applications in cc-NUMA architecture</article-title>
          .
          <source>In: 2016 International Conference on Networking and Network Applications (NaNA)</source>
          . pp.
          <volume>244</volume>
          {
          <issue>249</issue>
          (
          <year>July 2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Zheng</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zhou</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yang</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lan</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wang</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          :
          <article-title>Exploring plan-based scheduling for large-scale computing systems</article-title>
          .
          <source>In: 2016 IEEE International Conference on Cluster Computing (CLUSTER)</source>
          . pp.
          <volume>259</volume>
          {
          <issue>268</issue>
          (Sept
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>