It's the "single ANT script" that has me thinking.

Generally, master/slave node allows one to run different versions of the code 
(source control branches) or different target platforms at the same time.  But 
Jenkins won't magically build one branch on one platform faster just because 
you have multiple slave nodes.  Basically, you are going to have to split your 
work up into multiple Jenkins jobs to use multiple slaves for the same build.  
And the number of cores you have may not be your limiting factor: you can often 
run more jobs than you have cores as some jobs are waiting for disk I/O.

The operation I am has a fairly quick build (the core code is in Java), but 
over 26 hours' worth of tests (credit card processors _hate_ finding bugs in 
production).  Here, we have one job (per branch) that just pulls the source 
code from source control, and then launches up to five sub-jobs, each 
responsible for  building the software itself and running a different subset of 
tests.

If you are worried about the time it takes to run tests, you can do what I do 
above.  If you are more concerned with how long it takes to actually build the 
software, see the discussion at 
http://stackoverflow.com/questions/3727493/using-multiple-cores-processors-when-compiling-java.
  It looks like there are ways to parallelize within ANT, completely orthogonal 
to how (or if) you use Jenkins.

--Rob

From: jenkinsci-users@googlegroups.com 
[mailto:jenkinsci-users@googlegroups.com] On Behalf Of JonathanRRogers
Sent: Thursday, May 02, 2013 3:55 PM
To: jenkinsci-users@googlegroups.com
Subject: Re: Parallel builds

On Thursday, May 2, 2013 5:02:58 AM UTC-4, Mohan Radhakrishnan wrote:
Hi,
     What is the recommended way to run parallel builds on multi-core systems ? 
Mine has 4 cores with capability of 2 hardware threads on each core. Is 
master/slave mode recommended ?

How does a single ANT script help in this case ?


 How you can parallelize depends entirely on how your build process works. 
Jenkins has built in support for multiple executors per host (either master or 
slave). If your build process can run in any path and doesn't generally depend 
on global system state, that's probably a good way to go. If your build process 
depends on specific directories and/or other global state, you probably have to 
use multiple slaves with one executor each.
--
You received this message because you are subscribed to the Google Groups 
"Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to 
jenkinsci-users+unsubscr...@googlegroups.com<mailto:jenkinsci-users+unsubscr...@googlegroups.com>.
For more options, visit https://groups.google.com/groups/opt_out.


The information in this message is for the intended recipient(s) only and may 
be the proprietary and/or confidential property of Litle & Co., LLC, and thus 
protected from disclosure. If you are not the intended recipient(s), or an 
employee or agent responsible for delivering this message to the intended 
recipient, you are hereby notified that any use, dissemination, distribution or 
copying of this communication is prohibited. If you have received this 
communication in error, please notify Litle & Co. immediately by replying to 
this message and then promptly deleting it and your reply permanently from your 
computer.

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to