Steve,
 
Thank you very much for such a quick response.
 
Your advice and the codes will assist me a lot.
 
Once again thank you very much for the time you have given.
 
Regards,
 
Deb

>>> Stephen Weston <stephen.b.weston@gmail.com> 11/12/2009 1:02 pm >>>
On Thu, Dec 10, 2009 at 6:53 PM, Debabrata Midya
<Debabrata.Midya@services.nsw.gov.au> wrote:

> # Create an iterator that will return "numWorkers" values that sum to
> itermax
>     it <- idiv(itermax, chunks=getDoParWorkers())
> I think itermax is divided into "numWorkers" and a chunk of iterations will
> be allocated to each worker. Am I correct?

I think so.  To put it formally:

    itermax <- 50
    numWorkers <- 4
    it <- idiv(itermax, chunks=numWorkers)
    x <- as.list(it)
    stopifnot(itermax == sum(unlist(x)))
    stopifnot(numWorkers == length(x))

> # Pick a starting solution based on randomness
>       cursol <- pickRandomSolution()
> Does each worker receive random solution [that means initial random
> solutions are different from one worker to another]? Am I correct?

I think you're correct.  The important point is for each worker to start
searching in a different place than all of the other workers.  And if
you're doing that with a random number generator, it's important to
use clusterSetupRNG.

> # Pick the best solution that the cluster workers find
>     bestsol <- foreach(i=it, .combine='bestSolution') %dopar% {
>       lookForBestSolution(i)
>     }
> At the end, .combine='bestSolution' provides best solution as per the
> defined function bestSolution. That means this is a solution combined from
> different workers? Am I correct?

That sounds right, also.  I was using bestSolution within the
iteration loop to test for a better solution, but it's also needed to pick
which worker found the best result.

If I were you, I would play around with foreach in an interactive
session, without doing any parallel computing, to get a feel for
how everything works.  You can either use %do% instead of %dopar%,
or just don't register a parallel backend.  Running little interactive
experiments is really important to understanding anything in R, at least
for me.

Good luck,

- Steve

	[[alternative HTML version deleted]]

