[rules-users] Parallelization

Steve Ronderos steve.ronderos at ni.com
Tue May 11 09:46:32 EDT 2010


Hi Daniel,

I was reading the other day that a JVM implementation does not necessarily 
have to run Java threads in different Processes (taking advantage of 
multiple cores).  If you saw a significant speedup then I would assume 
your JVM does this.  It is worth investigating for your production 
deployment.  I would think that recent JVMs on modern operating systems 
would support this, but I also wouldn't leave it up to chance.

This post seems to imply that the only JVM/OS combinations that don't 
support native threads are Java 1.2 or Solaris: 
http://forums.sun.com/thread.jspa?threadID=5330507

About StatefulKnowledgeSessions: You should be able to run these in 
parallel no problem.

-Steve

rules-users-bounces at lists.jboss.org wrote on 05/11/2010 07:55:18 AM:

> From:
> 
> djb <dbrownell83 at hotmail.com>
> 
> To:
> 
> rules-users at lists.jboss.org
> 
> Date:
> 
> 05/11/2010 08:01 AM
> 
> Subject:
> 
> Re: [rules-users] Parallelization
> 
> Sent by:
> 
> rules-users-bounces at lists.jboss.org
> 
> 
> Hi Wolfgang,
> 
> Ok, well I implemented my "option #2", which has cut it down to 23ms, 
which
> is a good start.  My timing is done by taking the time before, and 
after,
> and dividing by the number of claims processed.  (and averaging over a 
few
> runs)
> 
> I use one thread per StatefulKnowledgeSession... My machine has 2 cores, 
but
> it will eventually be running on an 8 core beast, so i reckon this was a
> good improvement.  I was just worried that I wouldn't be able to
> simultaneously process multiple K-Sessions, but apparently, Drools 
doesn't
> mind.  I'm pretty sure any machine with multiple cores supports parallel
> java threads, no? 
> 
> 
> 
> -----
> Regarding my Utilities method, eg.  isWithinTimePeriod("20100308",
> "20090405", 1, "Y")
> 
> I can get about 5ms off by commenting out the eval, so it's not going to 
be
> a big jump even if I fix it, but, well, I am using yyyyMMdd Strings, 
which
> in the method, I sub-stringed, converted to ints, instantiated 
DateMidnight
> objects, and compared using Joda-time 
daysBetween/monthsBetween/yearsBetween
> methods. 
> 
> My thought was that pre-converting to ints would help, so that each
> ClaimLine has year/month/day int variables, and pass them in instead. 
(i.e.,
> Saves 3 String.substring()'s, and 3 Integer.parseInt()).  but that 
actually
> slowed it down a few milliseconds. (Maybe passing 6 params instead of 
2?!)
> 
> I'm comparing two dates by an arbitrary period, like "2 days" or "1 
month",
> and need the framework of the Gregorian Calendar.  So, I don't think I 
can
> do anything about this.  2 months is never guaranteed to be a set number 
of
> milliseconds.  It all depends on the claim date, which is fact data, and
> therefore variable.
> 
> Regards,
> Daniel
> 
> -- 
> View this message in context: http://drools-java-rules-engine.
> 46999.n3.nabble.com/Parallelization-tp809341p809753.html
> Sent from the Drools - User mailing list archive at Nabble.com.
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20100511/900072d6/attachment.html 


More information about the rules-users mailing list