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-boun...@lists.jboss.org wrote on 05/11/2010 07:55:18 AM: > From: > > djb <dbrownel...@hotmail.com> > > To: > > rules-users@lists.jboss.org > > Date: > > 05/11/2010 08:01 AM > > Subject: > > Re: [rules-users] Parallelization > > Sent by: > > rules-users-boun...@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@lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users
_______________________________________________ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users