Hello!
I have an UIMA pipeline that it is using the
ParallelFlowController(PFC). In ths flow I'm declaring some delegates AE
will run in parallel and serial one(consumer) that that will consume the
messages from the first one.
In the deployment descriptor the consumer is declared as a remote AE. I've
set CASPoolSize of the AAE to 10 and the scaleout parameter to 10.
Profiling the application threads,I've observed that from the 10 threads
just one of them is very busy doing the job(running mode) and the others
most of them time are in the wait mode. Therefore, the bunch of the threads
are unused most of the time. Thus the process time is increasing and the
hardware remains unused ( 5% from 2 quad core processors). If I set up the
consumer to be in the same JVM like the other annotators then I have the
desired behavior (my processors will be used at 70% and all of the threads
from the pool will process the message). Can you please advice how to
achieve the same behavior with the remote consumer as having the consumer
locally?
I look forward for your answers and suggestions.
Thank you.
Regards,
Florin
PFC descriptor descriptor:
<delegateAnalysisEngine key="OAnnotator">
<import location="ODesc.xml" />
</delegateAnalysisEngine>
<delegateAnalysisEngine key="GAnnotator">
<import location="GDesc.xml" />
</delegateAnalysisEngine>
<delegateAnalysisEngine key="RConsumer">
<import location="RConsumer.xml" />
</delegateAnalysisEngine>
<nameValuePair>
<name>Flow</name>
<value>
<array>
<string>Tokenizer</string>
<string>OAnnotator,GAnnotator
</string>
<string>RConsumer</string>
</array>
</value>
</nameValuePair>