<!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>Parallelization Techniques for Semantic Web Reasoning Applications</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Alexey Cheptsov</string-name>
          <email>cheptsov@hlrs.de</email>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Matthias Assel</string-name>
          <email>assel@hlrs.de</email>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>HLRS - High Performance Computing Center Stuttgart, University of Stuttgart</institution>
          ,
          <addr-line>Nobelstrasse 19, 70569 Stuttgart</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Performance is the most critical aspect towards achieving high scalability of Semantic Web reasoning applications, and considerably limits the application areas of them. There is still a deep mismatch between the requirements for reasoning on a Web scale and performance of the existing reasoning engines. The performance limitation can be considerably reduced by utilizing such large-scale e-Infrastructures as LarKC - the Large Knowledge Collider - an experimental platform for massive distributed incomplete reasoning, which offers several innovative approaches removing the scalability barriers, in particularly, by enabling transparent access to HPC systems. Efficient utilization of such resources is facilitated by means of parallelization being the major element for accomplishing performance and scalability of semantic applications. Here we discuss application of some emerging parallelization strategies and show the benefits obtained by using such systems as LarKC.</p>
      </abstract>
      <kwd-group>
        <kwd>Semantic Web Reasoning</kwd>
        <kwd>LarKC</kwd>
        <kwd>parallelization</kwd>
        <kwd>multi-threading</kwd>
        <kwd>message-passing</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1 Introduction</title>
      <sec id="sec-1-1">
        <title>Current Semantic Web reasoning systems do not scale to the requirements of the rapidly increasing amount of data, such as those coming from millions of sensors and mobile devices or the terabytes of scientific data produced by automated experimentation.</title>
      </sec>
      <sec id="sec-1-2">
        <title>The latest attempts to overcome the above-mentioned limitations resulted in</title>
        <p>infrastructures for large-scale semantic reasoning, such as one set up by LarKC (the</p>
      </sec>
      <sec id="sec-1-3">
        <title>Large Knowledge Collider [1]) which focuses on reasoning over billions of structured</title>
        <p>data in heterogeneous data sets. Along with a number of original solutions for
obtaining Web scale by semantic applications, LarKC offers services for transparently
accessing diverse computing architectures, including multi-core (many-core)
multiprocessor, and cluster-based computer architectures as well as dedicated
highperformance computers.</p>
      </sec>
      <sec id="sec-1-4">
        <title>Parallelization enables simultaneous execution of independent computational</title>
        <p>operations and thus resolves the conflicts occurring between the concurrent operations
while performing computation. Given the large problem sizes that are addressed by
LarKC, and considering the benefits of parallelization, it seems natural to explore use
of the main parallelization strategies for semantic applications, too. Here we discuss
some major parallelization techniques for providing parallelism on task-, instruction-,
and data-level, applied for LarKC’s pilot applications. However, the investigated
approaches and techniques are quite generic and can be potentially applied for any
other Semantic Web engine.</p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>2 Parallelization Patterns</title>
      <sec id="sec-2-1">
        <title>There are several parallelization techniques, which have proven their usability for a</title>
        <p>wide range of optimization tasks and might be beneficial for semantic applications.
They can be roughly classified according to the level at which the parallelism takes
place (Fig. 1):
1) between loosely-coupled components (workflow level) – implementation of
parallelism by running multiple instances of the same plug-in simultaneously
o task-level parallelism</p>
        <p>• workflow branching
2) within a separate component (“plug-in” level) – implementation of parallelism in
the concurrent regions of the component’s algorithms
o instruction-level parallelism
• shared-memory systems: multi-threading
• distributed-memory systems: message-passing
o data and instruction-level parallelism
• MapReduce data processing</p>
        <p>Query
Transformer</p>
        <p>Identifier</p>
        <sec id="sec-2-1-1">
          <title>Workflow branching</title>
          <p>Decider
Selecter 1
Selecter 2</p>
        </sec>
        <sec id="sec-2-1-2">
          <title>Plug-in parallelization</title>
          <p>multi-threading
MPI
MapReduce</p>
          <p>Reasoner
cssoe1
r
P
csseo2
r
P
ssc3eo
r
P
cssoe4
r
P</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Main Instruction-Level Parallelization Techniques</title>
      <sec id="sec-3-1">
        <title>The techniques presented in Section 2 differ by complexity of their implementation</title>
        <p>and obtained performance impact. In this section we discuss only the approaches,
which allow obtaining considerable performance impact with a minimum of
implementation efforts for sequential code. In particular, we consider multi-threading
and message-passing. The achieved performance impact is discussed as well.
3.1 Multi-threading</p>
      </sec>
      <sec id="sec-3-2">
        <title>Most of today’s CPUs are equipped with multiple cores. Unfortunately, many</title>
        <p>applications are still using only one of them for their processing (i.e., applications are
still sequentially programmed) instead of distributing particular tasks to different
processor cores concurrently. In order to make use of the capabilities provided by
modern CPU architectures, applications must align their tasks according to the
number of available cores.</p>
      </sec>
      <sec id="sec-3-3">
        <title>Implementation of multi-threading for a sequential code is to large extent trivial</title>
        <p>and does not require much development efforts. For evaluation purposes, we
implemented multi-threading support for the Urban Computing application of LarKC
[2]. Realization of multi-threading for the most time consuming component of the
investigated workflow allowed us to obtain a considerable performance speed-up
(Table 1).</p>
        <p>The Message-Passing Interface (MPI) is the most widely used parallel
programming paradigm for highly-scalable parallel applications. MPI enables sharing
the application workload over various nodes of a parallel system (both shared and
distributed memory architectures are supported). The synchronization between the
nodes is achieved by means of the messages passed among the involved processes
through the network interconnect. Implementations of MPI in Java (such as MPIJava
or MPJ-Express) have enabled use of MPI also for Java applications. MPI is highly
beneficial for computing-intensive applications, whereby scalability within a
sharedmemory space is not sufficient for obtaining the necessary performance.</p>
      </sec>
      <sec id="sec-3-4">
        <title>For evaluation purposes, we implemented message-passing for the “Airhead”</title>
        <p>library from the S-Space package1. The parallelization technique was evaluated for
the Linked Life Data subset used by University of Sheffield within the LarKC project.</p>
      </sec>
      <sec id="sec-3-5">
        <title>The obtained performance characteristics, collected in Table 2, prove great benefit of distributed-memory parallelisation not only for the investigated application, but also for similar ones coming from other areas of the Semantic Web.</title>
        <p>Number of
computing
nodes
1
2
4
8</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4 Conclusions</title>
      <sec id="sec-4-1">
        <title>Intel @ 1.8 GHz, 2 cores</title>
      </sec>
      <sec id="sec-4-2">
        <title>Time, s. Speed-up (to</title>
      </sec>
      <sec id="sec-4-3">
        <title>1 CPU case)</title>
        <p>750 1
-
-
-</p>
      </sec>
      <sec id="sec-4-4">
        <title>Xeon @ 2.8 GHz, 8 cores</title>
      </sec>
      <sec id="sec-4-5">
        <title>Time, s. Speed-up (to 1</title>
      </sec>
      <sec id="sec-4-6">
        <title>CPU case)</title>
        <p>57 1
20 2.85
10 5.7
5 11.4</p>
      </sec>
      <sec id="sec-4-7">
        <title>In our tests we investigated the impact of the main instruction-level parallelization</title>
        <p>strategies, namely multi-threading and message-passing, on performance of two
typical Semantic Web use cases. The first application was taken from the urban
computing use case, where parallelization facilitates meeting real-time requirements.</p>
      </sec>
      <sec id="sec-4-8">
        <title>Whereas message-passing was not very useful for this application due to real-time</title>
        <p>performance requirements, applying multi-threading allowed the application to
greatly benefit from the multi-core CPU architecture. The second application
random indexing - was much more complex as the first one, and made great benefit of
message-passing that leveraged a cluster of shared-memory nodes for the application.</p>
      </sec>
      <sec id="sec-4-9">
        <title>Our future investigations will concentrate on further approaches presented here (such as MapReduce [3]) as well as hybrid algorithms combining them (e.g. multi-threading inside a shared-memory node combined with message-passing among nodes).</title>
      </sec>
      <sec id="sec-4-10">
        <title>1 http://code.google.com/p/airhead-research/</title>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <string-name>
            <surname>Towards LarKC: A Platform for Web-Scale</surname>
            <given-names>Reasoning</given-names>
          </string-name>
          ,
          <source>In: Proceedings of the 2008 IEEE international Conference on Semantic Computing ICSC</source>
          , pp.
          <fpage>524</fpage>
          --
          <lpage>529</lpage>
          , IEEE Computer Society (
          <year>2008</year>
          )
          <string-name>
            <given-names>Della</given-names>
            <surname>Valle</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            ,
            <surname>Celino</surname>
          </string-name>
          ,
          <string-name>
            <given-names>I.</given-names>
            ,
            <surname>Dell'Aglio</surname>
          </string-name>
          ,
          <string-name>
            <surname>D.</surname>
          </string-name>
          <article-title>The Experience of Realizing a Semantic Web Urban Computing Application</article-title>
          ,
          <source>Transactions in GIS 14</source>
          ,
          <issue>2</issue>
          (
          <issue>2010</issue>
          )
          <article-title>Urbani</article-title>
          ,
          <string-name>
            <given-names>J.</given-names>
            ,
            <surname>Kotoulas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            ,
            <surname>Oren</surname>
          </string-name>
          , E.,
          <string-name>
            <surname>van Harmelen</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          <article-title>Scalable Distributed Reasoning Using MapReduce</article-title>
          . In: Bernstein,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Karger</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.R.</given-names>
            ,
            <surname>Heath</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            ,
            <surname>Feigenbaum</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            ,
            <surname>Maynard</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            ,
            <surname>Motta</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            ,
            <surname>Thirunarayan</surname>
          </string-name>
          ,
          <string-name>
            <surname>K</surname>
          </string-name>
          . (eds.)
          <source>The Semantic Web - ISWC</source>
          <year>2009</year>
          ,
          <article-title>LNCS</article-title>
          , vol.
          <volume>5823</volume>
          , pp.
          <fpage>634</fpage>
          --
          <lpage>649</lpage>
          , Springer (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>