[R-sig-hpc] request help with replication and snowFT

Hana Sevcikova hanas at uw.edu
Tue Jul 26 18:19:25 CEST 2011


Note that for this sequential run you need to use the performParallel 
wrapper (not the clusterApplyFT function).

Hana

On 7/26/11 9:09 AM, Hana Sevcikova wrote:
> Paul,
>> And then explain how a user can grab any one arbitrary stream and
>> re-run it for interactive investigation of its properties.  When we
>> run this thing 1000 times and 2 are really off the usual result, we
>> want to dig in and try to see what happened.
> I know this is not exactly what you have in mind but one way to 
> explore the individual streams is to set the number of nodes to 0 (in 
> your example cnt=0) in which case the process runs sequentially using 
> the same random numbers as in parallel case. Thus, you can use any R 
> debugger to see what's going on with your streams.
>
> Hana
>
>
>> Here's my test case:
>>
>> ### r: number of streams. Should be set as BIGGEST number of 
>> runs=streams
>> ### you could ever want to replicate.  It sets a framework of streams
>> ### that is the same on all nodes.  Here I have 33 streams, only 10 
>> nodes.
>> ### snowFT handles the problem of creating 33 separate streams, so there
>> ### is one ready for each possible run, no matter which node is doing
>> ### the work.
>> r<- 33
>> ### cnt: number of nodes
>> cnt<- 10
>>
>> cl<- makeClusterFT(cnt, type="MPI")
>>
>> ### From snowFT methods:
>> printClusterInfo(cl)
>>
>> ### Can use SNOW methods as well.
>> ### Testing with SNOW methods: sends function to each system
>> clusterCall( cl, function() Sys.info()[c("nodename","machine")])
>>
>> ### Some user-written functions involved in a simulation
>> myA<- function( x ){
>>    2 *x
>> }
>>
>> myB<- function( x ){
>>    3 * x
>> }
>>
>>
>> myC<- function( x, y){
>>    x + y
>> }
>>
>> ## The main function of interest
>> myNorm<- function (x){
>>    whew<-  myA(x)
>>    whewyou<- myB(whew)
>>    whewwho<- myC(whew, whewyou)
>>    y<- rnorm(whewwho)
>>    list(x, whew, whewyou, whewwho, y, sum(y))
>> }
>>
>>
>> mySeeds<- c(1231, 2323, 43435, 12123, 22442, 634654)
>> ##create "x" vector.
>> myx<- sample(1:8, r, replace=T)
>>
>> ## Send functions to systems with SNOW functions
>> clusterExport(cl, "myA")
>> clusterExport(cl, "myB")
>> clusterExport(cl, "myC")
>>
>> clusterSetupRNG.FT(cl, type = "RNGstream", streamper="replicate", n=r,
>> seed=mySeeds)
>> res1<- clusterApplyFT(cl, x=myx, fun=myNorm, seed=mySeeds)
>>
>> print(res1[[1]])
>>
>>
>>
>>
>
> _______________________________________________
> R-sig-hpc mailing list
> R-sig-hpc at r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-sig-hpc



More information about the R-sig-hpc mailing list