You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@stanbol.apache.org by harish suvarna <hs...@gmail.com> on 2013/02/08 06:33:58 UTC

Graph chain

The graph chain documentation says the components can be executed in
parallel.


====

Engines are executed as soon as all engines they depend on have completed.
This also includes if optional engines were skipped (because they are not
active) or failed. This means that in most cases several EnhancementEngines
can be executed in parallel.

Given the above example, both the 'zemanta' and the 'metaxa' engine are
executed as soon as the enhancement process starts. When 'metaxa' is
finished, the 'langid' engine is called. After the 'langid' finishes its
work, the EnhancementJobManager calls the 'ner' engine. After that both the
'dbpedia-linking' and the 'geonames' engine are called. At this time three
engines might run simultaneously assuming that 'zemanta' has not finished
yet. Before the 'refactor' engine can be executed it need to wait for all
these engines to complete.

Note that for parallel execution to be activated both the used
EnhancementJobManager and the different engines must support asynchronous
enhancement.

=========


The three engines in the example zemanta, dbpedia-linking, and geonames are
executed in parallel. Are they executed on same core multiple threads or
different cores or can even be executed on remote machines? Lets assume
Zemanta is NOT an engine making restful calls to Zemanta server.
-- 
Thanks
Harish

Re: Graph chain

Posted by harish suvarna <hs...@gmail.com>.
Thanks Rupert.

-harish

On Thu, Feb 7, 2013 at 10:21 PM, Rupert Westenthaler <
rupert.westenthaler@gmail.com> wrote:

> Hi Harish
>
> For the EventJobManager (the default EnhancementJobManager
> implementation used by Apache Stanbol) parallel execution is done by
> multiple threads. If those threads are executed on different cores
> depends on the JVM and Operating System, but I would expect that this
> is the case. The EventJobManager uses the OSGI Event Admin service [1]
> for its implementation. Engines that can be executed are called
> asynchronously by using 'EventAdmin#postEvent(..)'
>
> Stanbol does not support to execute EnhancementJobs on multiple machines.
>
> best
> Rupert
>
> [1]
> http://www.osgi.org/javadoc/r4v42/org/osgi/service/event/package-summary.html
>
> On Fri, Feb 8, 2013 at 6:33 AM, harish suvarna <hs...@gmail.com> wrote:
> > The graph chain documentation says the components can be executed in
> > parallel.
> >
> >
> > ====
> >
> > Engines are executed as soon as all engines they depend on have
> completed.
> > This also includes if optional engines were skipped (because they are not
> > active) or failed. This means that in most cases several
> EnhancementEngines
> > can be executed in parallel.
> >
> > Given the above example, both the 'zemanta' and the 'metaxa' engine are
> > executed as soon as the enhancement process starts. When 'metaxa' is
> > finished, the 'langid' engine is called. After the 'langid' finishes its
> > work, the EnhancementJobManager calls the 'ner' engine. After that both
> the
> > 'dbpedia-linking' and the 'geonames' engine are called. At this time
> three
> > engines might run simultaneously assuming that 'zemanta' has not finished
> > yet. Before the 'refactor' engine can be executed it need to wait for all
> > these engines to complete.
> >
> > Note that for parallel execution to be activated both the used
> > EnhancementJobManager and the different engines must support asynchronous
> > enhancement.
> >
> > =========
> >
> >
> > The three engines in the example zemanta, dbpedia-linking, and geonames
> are
> > executed in parallel. Are they executed on same core multiple threads or
> > different cores or can even be executed on remote machines? Lets assume
> > Zemanta is NOT an engine making restful calls to Zemanta server.
> > --
> > Thanks
> > Harish
>
>
>
> --
> | Rupert Westenthaler             rupert.westenthaler@gmail.com
> | Bodenlehenstraße 11                             ++43-699-11108907
> | A-5500 Bischofshofen
>



-- 
Thanks
Harish

Re: Graph chain

Posted by Rupert Westenthaler <ru...@gmail.com>.
Hi Harish

For the EventJobManager (the default EnhancementJobManager
implementation used by Apache Stanbol) parallel execution is done by
multiple threads. If those threads are executed on different cores
depends on the JVM and Operating System, but I would expect that this
is the case. The EventJobManager uses the OSGI Event Admin service [1]
for its implementation. Engines that can be executed are called
asynchronously by using 'EventAdmin#postEvent(..)'

Stanbol does not support to execute EnhancementJobs on multiple machines.

best
Rupert

[1] http://www.osgi.org/javadoc/r4v42/org/osgi/service/event/package-summary.html

On Fri, Feb 8, 2013 at 6:33 AM, harish suvarna <hs...@gmail.com> wrote:
> The graph chain documentation says the components can be executed in
> parallel.
>
>
> ====
>
> Engines are executed as soon as all engines they depend on have completed.
> This also includes if optional engines were skipped (because they are not
> active) or failed. This means that in most cases several EnhancementEngines
> can be executed in parallel.
>
> Given the above example, both the 'zemanta' and the 'metaxa' engine are
> executed as soon as the enhancement process starts. When 'metaxa' is
> finished, the 'langid' engine is called. After the 'langid' finishes its
> work, the EnhancementJobManager calls the 'ner' engine. After that both the
> 'dbpedia-linking' and the 'geonames' engine are called. At this time three
> engines might run simultaneously assuming that 'zemanta' has not finished
> yet. Before the 'refactor' engine can be executed it need to wait for all
> these engines to complete.
>
> Note that for parallel execution to be activated both the used
> EnhancementJobManager and the different engines must support asynchronous
> enhancement.
>
> =========
>
>
> The three engines in the example zemanta, dbpedia-linking, and geonames are
> executed in parallel. Are they executed on same core multiple threads or
> different cores or can even be executed on remote machines? Lets assume
> Zemanta is NOT an engine making restful calls to Zemanta server.
> --
> Thanks
> Harish



--
| Rupert Westenthaler             rupert.westenthaler@gmail.com
| Bodenlehenstraße 11                             ++43-699-11108907
| A-5500 Bischofshofen