uima-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Adam Lally" <ala...@alum.rpi.edu>
Subject Re: Multi-threading with a CAS Multiplier.
Date Wed, 18 Jul 2007 14:00:12 GMT
On 7/18/07, Benjamin Sznajder <benjams@il.ibm.com> wrote:
> Hi Eddie,
> Thank you for your so rapid answer.
> Indeed, my CASMultiplier is hidden in an Aggregated Engine  named AE1.
> This AE1 contains
>       - a CASMultiplier
>       - a second AggregateEngine2 controlled by a FlowController composed
> of different pipelines.
>       - a CAS Merger
>       - a CAS Consumer
> The whole CPM is composed by a CollectionReader, and the AE1
> If I define the AggregateEngine2 (i.e the AE that does not contain the
> CASMultiplier) with multipleDeploymentAllowed=true, with each Analysis
> Engine in it, defined also with multipleDeploymentAllowed=true (including
> the FlowController)
> And if, in addition, I set <casProcessors casPoolSize="5"
> processingUnitThreadCount="3">
> In such configuration, do I run in parallel on the pipelines contained in
> AggregateEngine2?

What happens when you set the processingUnitThreadcount to 3 is that
you will get three instances of AE1 (and everything inside it).  Then
all three instances of AE1 will be run in parallel on different CASes.

So that means that the CASes coming out of a particular instance of
the CasMultiplier will not be processed in parallel with each other,
but there will be parallelization _across_ CAS Multipliers.

Hopefully that was clear... the key idea is that the CPM is unaware of
CAS Multipliers and will treat AE1 like a black-box 1-CAS-in,
1-CAS-out AE.  So it cannot parallelize _inside_ AE1, but it can
certainly replicate AE1 and run each instance on a separate thread.


View raw message