Re: [R] Parallel computing on Windows (foreach)

From: Cedrick W. Johnson <cedrick_at_cedrickjohnson.com>
Date: Wed, 16 Jun 2010 08:55:51 -0400

Here's what I do to get processors on my Windows machine (it should work for dual cores as well) fully engaged in a calculation (wow I like that)

require(snow)
require(doSNOW)
require(foreach)

#change the 8 to however many cores/phys processors you have on your machine cl.tmp = makeCluster(rep("localhost",8), type="SOCK") registerDoSNOW(cl.tmp)

foreach(dat=x) %dopar% someFunction(dat)

HTH -c

On 6/16/2010 8:51 AM, Mario Valle wrote:
>
>
> On 15-Jun-10 17:07, Sergey Goriatchev wrote:
>> Hello,
>>
>> I am reading "Using The foreach Package" document and I have tried the
>> following:
>>
>> ---------------------------------------------------------------------
>>
>>> sessionInfo()
>> R version 2.10.1 (2009-12-14)
>> i386-pc-mingw32
>>
>> locale:
>> [1] LC_COLLATE=German_Switzerland.1252
>> LC_CTYPE=German_Switzerland.1252
>> LC_MONETARY=German_Switzerland.1252 LC_NUMERIC=C
>> LC_TIME=German_Switzerland.1252
>>
>> attached base packages:
>> [1] stats graphics grDevices utils datasets methods base
>>
>> other attached packages:
>> [1] foreach_1.3.0 codetools_0.2-2 iterators_1.0.3
>>
>>
>>> x<- numeric(10000)
>>> system.time(for(i in 1:10000) x[i]<- sqrt(i))
>> user system elapsed
>> 0.03 0.00 0.03
>>>
>>> system.time(system.time(x<- foreach(i=1:10000, .combine="c") %do%
>>> sqrt(i)))
>> user system elapsed
>> 7.14 0.00 7.14
>>>
>>> system.time(system.time(x<- foreach(i=1:10000, .combine="c") %dopar%
>>> sqrt(i)))
>> user system elapsed
>> 7.19 0.00 7.19
>> Warning message:
>> executing %dopar% sequentially: no parallel backend registered
>>
>> ------------------------------------------------------------------------
>>
>> Not only is the sequential foreach much slower than the simple
>> for-loop (as least in this particular instance), but I am not quite
>> sure how to make foreach run parallel. Where would I get this parallel
>> backend?
>
> Use doMPI and run R through mpirun (for example run on 8 cores):
>
> mpirun -np 8 R --slave -f your-script.r
>
> Hope it helps
> mario
>
>
>
> I looked at doMC and doRedis, but these do not run on
>> Windows, as far as I understand. And doSNOW is something to use when
>> you have a cluster, while I have a simple dual-core PC.
>>
>> It is not really clear for how to make parallel computing work.
>> Please, help.
>>
>> Regards,
>> Sergey
>>
>> ______________________________________________
>> R-help_at_r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide
>> http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>



R-help_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code. Received on Wed 16 Jun 2010 - 12:58:09 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Wed 16 Jun 2010 - 13:20:33 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive