Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!news.glorb.com!news-out.readnews.com!transit3.readnews.com!news-out.news.tds.net!newsreading01.news.tds.net!53ab2750!not-for-mail From: "Lew" Subject: Re: Tools/frameworks for Java multi-core programming? Message-ID: <502BE720.56845.calajapr@time.synchro.net> X-Comment-To: Robert Klemme Newsgroups: comp.lang.java.programmer In-Reply-To: <502BE71F.56838.calajapr@time.synchro.net> References: <502BE71F.56838.calajapr@time.synchro.net> X-FTN-AREA: COMP.LANG.JAVA.PROGRAMMER X-FTN-MSGID: 1:261/38 0a5af733 X-FTN-REPLY: 1:261/38 8f5a640a Content-Type: text/plain; charset=IBM437 Content-Transfer-Encoding: 8bit X-Gateway: time.synchro.net [Synchronet 3.16a-Win32 NewsLink 1.98] Lines: 66 Date: Wed, 15 Aug 2012 18:36:33 GMT NNTP-Posting-Host: 69.21.70.65 X-Complaints-To: news@tds.net X-Trace: newsreading01.news.tds.net 1345055793 69.21.70.65 (Wed, 15 Aug 2012 13:36:33 CDT) NNTP-Posting-Date: Wed, 15 Aug 2012 13:36:33 CDT Organization: tds.net Xref: csiph.com comp.lang.java.programmer:17898 To: Robert Klemme From: Lew Robert Klemme wrote: > anthonycwmak wrote: >> I am trying to find tools/frameworks that help with writing Java >> program that can utilize multi-core CPU. So far I only found Java programs can "utilize" multi-core CPUs out of the box. You need do nothing special. >> jconcurr, JOMP, JAMP, Ateji, but they all either requires special >> shell command to compile and run the programs, or, in Ateji's case >> use a special file extension which is converted to java file. This >> doesn't seem to be ideal if I require to build multi-core programs >> that can be built on Maven or similar, > Why is that an issue? Typically you can include custom build procedures > in a build tool / framework. >> and requires them to run on an >> enterprise environment or application server. > If you are on an JEE application server that will usually take care of > the concurrency. You typically need to use those APIs the JEE spec or > AS at hand provides to not interfere with the framework in bad ways > (e.g. by breaking transactions). That does not seem like a bad option > although AS come with their own learning curve. >> Besides writing concurrent programs, by using Java Concurrency API >> directly, to utilize the multi-core, are there other easier/simpler >> way to create Java enterprise applications that utlize multi-core >> CPUs? Preferably, just annotate my POJOs to make them multi-core >> capable? > "Making a POJO multi-core capable" is meaningless. Using concurrency is > more like an architectural property of your application (even though you > need to take care to use POJOs properly - but it's not enough to make > POJOs thread safe). At this point I am suspecting that someone told you > modern Java programs must use multiple cores and you want to get it done > easily. Unfortunately that won't work: you need to understand the > particular issues associated with concurrency to properly craft such > applications - even if you use a framework that takes away a large part > of the work from you. As Robert said, if you're writing enterprise apps using Java EE, then the threading is already done. You should pretty much never explicitly code a Java EE component to spawn a thread. Java SE is another matter. You do have to use thread calls to spawn threads. Once you have at least two threads in a program (and all Java programs do), then you are multi-core capable. Java programs that use threads are already multi-core capable. Boom, done. What are you really after? -- Lew --- BBBS/Li6 v4.10 Dada-1 * Origin: Prism bbs (1:261/38) --- Synchronet 3.16a-Win32 NewsLink 1.98 Time Warp of the Future BBS - telnet://time.synchro.net:24