Hello! Thank you for your advices. I've found that one of my tasks (Tokenizer, the first one from the flow) was responsible for the strange behavior ( one very busy thread when the other were free). By the way, how I can upgrade to the version 2.4.0 mentioned https://issues.apache.org/jira/browse/UIMA-2354? Do you have release package or maven repository version?
Thank you. Regards, Florin On Wed, Feb 22, 2012 at 8:24 PM, Jaroslaw Cwiklik <[email protected]> wrote: > I am not certain, but perhaps you are running into a similar bug reported > and fixed recently under > > https://issues.apache.org/jira/browse/UIMA-2354 > > Maybe the UIMA AS primitive service suffers from a similar problem than the > UIMA AS aggregate as described in the JIRA. I will verify this soon. > > Another possibility is that the producer (UIMA AS Aggregate) is just > sending enough work to keep a single thread busy in the remote. Do you have > a CM and large enough cas pool to keep the service busy? You can use > jConsole to check the service queue. Look at queue depth and dequeue counts > while the service is processing. When you colocate the consumer with the > rest of the pipeline perhaps the other components contribute to the higher > CPU utilization. > > Jerry C > > On Wed, Feb 22, 2012 at 10:54 AM, Spico Florin <[email protected] > >wrote: > > > 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> > > >
