有沒有辦法在雪包中初始化類似clusterEvalQ
和clusterExport
的doSMP集羣?例如:如何使用doSMP初始化工作人員?
x <- 1:10
y <- 10:1
z <- rnorm(10)
cl <- makeSOCKcluster(2)
clusterEvalQ(cl, library(quantmod))
clusterExport(cl, list("x","y","z"))
clusterEvalQ(cl, ls())
clusterEvalQ(cl, search())
有一個initEnvir
選項doSMP,但?doSMP
說
‘initEnvir’ is a function to be executed by each worker before any tasks are executed associated with a foreach. Its purpose is to initialize the execution environment, or the worker in general. It is only executed by a worker if that worker executes at least one task associated with the foreach.
每個工人需要幾個大型對象的副本才能運行我發送到表達式foreach
。此外,我需要撥打foreach
幾百次,並使用這些大對象的相同版本。每次調用foreach
時複製這些對象都是低效的。
即使沒有現成的方法來做到這一點,我會欣賞一個kludge。
我想有進入基礎環境,這將抵消需要複製。或者我錯過了什麼? – Iterator
只是好奇你爲什麼要用doSMP而不是雪來實現?我發現雪更加穩定和便攜。 – darckeen
@darckeen:我不是隻用doSMP來實施。我正在爲用戶創建選項,以便使用他們選擇的任何後端,包括doSMP。 –