[R] parSapply can't find function
David Winsemius
dwinsemius at comcast.net
Mon Apr 29 20:22:34 CEST 2013
On Apr 29, 2013, at 11:16 AM, Kaiyin Zhong (Victor Chung) wrote:
> Hi, Uwe.
>
> I still don't get how this can be done correctly. Here is what I tried.
>
> In the file funcs.R, define these functions:
>
> library('modeest')
> x = vector(length=500)
> x = sapply(x, function(i) i=sample(c(1,0), 1))
> pastK = function(n, x, k) {
> if (n>k) { return(x[(n-k):(n-1)]) }
> else {return(NA)}
> }
> predR = function(x, k) {
> pastList = lapply(1:length(x), function(n) pastK(n, x, k))
> pred = sapply(pastList, function(v) mfv(v)[1])
> ratio = sum(pred==x, na.rm=T)/(length(pred) - sum(is.na(pred)))
> }
>
>
>
> Then do the following:
>
> library('snow')
> cl = makeCluster(rep('localhost', 12), 'SOCK')
> clusterSetupRNG(cl)
> clusterEvalQ(cl, 'source("funcs.R")')
Are you sure those outer single quote marks are not the problem?
--
David.
> testK = function() {
> k = seq(3, 25, 2)
> r = parSapply(cl, k, function(i) predR(x, i))
> print(r)
> }
> testK()
> stopCluster(cl)
>
>
> The error still pops up:
>
> Error in checkForRemoteErrors(val) :
> 12 nodes produced errors; first error: could not find function "predR"
>
>
>
>
>
> Best regards,
>
> Kaiyin ZHONG
> ------------------------------
> FMB, Erasmus MC
> k.zhong at erasmusmc.nl
> kindlychung at gmail.com
>
>
> On Tue, Apr 23, 2013 at 3:44 PM, Uwe Ligges <ligges at statistik.tu-dortmund.de
>> wrote:
>
>>
>>
>> On 23.04.2013 15:00, Kaiyin Zhong (Victor Chung) wrote:
>>
>>> Thanks for the reply.
>>>
>>> How can i make the functions known to all nodes?
>>>
>>
>> See ?clusterEvalQ
>>
>> you may also want to try the parallel packages.
>>
>> Best,
>> Uwe Ligges
>>
>>
>>
>>
>>> Best regards,
>>>
>>> Kaiyin ZHONG
>>> ------------------------------**------------------------------**
>>> ------------
>>> FMB, Erasmus MC
>>> k.zhong at erasmusmc.nl <mailto:k.zhong at erasmusmc.nl>
>>> kindlychung at gmail.com <mailto:kindlychung at gmail.com>
>>>
>>>
>>>
>>> On Tue, Apr 23, 2013 at 2:43 PM, Uwe Ligges
>>> <ligges at statistik.tu-dortmund.**de <ligges at statistik.tu-dortmund.de>
>>> <mailto:ligges at statistik.tu-**dortmund.de<ligges at statistik.tu-dortmund.de>>>
>>> wrote:
>>>
>>>
>>>
>>> On 18.04.2013 11:11, Kaiyin Zhong (Victor Chung) wrote:
>>>
>>> Here is the code, assuming 8 cores in the cpu.
>>>
>>> library('modeest')
>>> library('snow')
>>>
>>> cl = makeCluster(rep('localhost', 8), 'SOCK')
>>> x = vector(length=50)
>>> x = sapply(x, function(i) i=sample(c(1,0), 1))
>>>
>>> pastK = function(n, x, k) {
>>> if (n>k) { return(x[(n-k):(n-1)]) }
>>> else {return(NA)}
>>> }
>>>
>>> predR = function(x, k) {
>>> pastList = lapply(1:length(x), function(n) pastK(n, x, k))
>>> pred = sapply(pastList, function(v) mfv(v)[1])
>>> ratio = sum(pred==x, na.rm=T)/(length(pred) - sum(is.na
>>> <http://is.na>(pred)))
>>>
>>> }
>>>
>>> testK = function() {
>>> k = seq(3, 25, 2)
>>> r = parSapply(cl, k, function(i) predR(x, i))
>>> # r = sapply(k, function(i) predR(x, i))
>>> }
>>>
>>> r = testK()
>>> stopCluster(cl)
>>>
>>> Here is the error:
>>> Error in checkForRemoteErrors(val) :
>>> 8 nodes produced errors; first error: could not find
>>> function "predR"
>>>
>>>
>>>
>>> predR is not yet known on all nodes, just on the master. You have to
>>> tell the nodes about the definition first.
>>>
>>> Best,
>>> Uwe Ligges
>>>
>>>
>>>
>>>
>>>
>>>
>>> Best regards,
>>>
>>> Kaiyin ZHONG
>>> ------------------------------
>>>
>>> FMB, Erasmus MC
>>> k.zhong at erasmusmc.nl <mailto:k.zhong at erasmusmc.nl>
>>> kindlychung at gmail.com <mailto:kindlychung at gmail.com>
>>>
>>> [[alternative HTML version deleted]]
>>>
>>> ______________________________**__________________
>>> R-help at r-project.org <mailto:R-help at r-project.org> mailing list
>>> https://stat.ethz.ch/mailman/_**_listinfo/r-help<https://stat.ethz.ch/mailman/__listinfo/r-help>
>>>
>>> <https://stat.ethz.ch/mailman/**listinfo/r-help<https://stat.ethz.ch/mailman/listinfo/r-help>
>>>>
>>> PLEASE do read the posting guide
>>> http://www.R-project.org/__**posting-guide.html<http://www.R-project.org/__posting-guide.html>
>>>
>>> <http://www.R-project.org/**posting-guide.html<http://www.R-project.org/posting-guide.html>
>>>>
>>> and provide commented, minimal, self-contained, reproducible code.
>>>
>>>
>>>
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> 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.
David Winsemius
Alameda, CA, USA
More information about the R-help
mailing list