2012-09-29 20 views
1

我試圖創建使用並行操作4 PNG創建多個PNG ..使用並行操作

下面是Kindof僞代碼....基本上我試圖減少處理時間,即,。順序它需要更多的時間來創建4 PNG與所有的繪圖..反正我想是這樣的,它不工作...

library(doSNOW) 
library(foreach) 
cl<- makeCluster(6, type = "SOCK") 
registerDoSNOW(cl) 

foreach(i=1:4) %dopar% 
{ 

Name <- Name <- paste(i, "dim.png", sep="_") 
CairoPNG(filename = Name, width = 900, height = 480, pointsize = 12, bg = "white") 

# The plotting code goes here 
dev.off() 
} 

我的問題是,是否有可能平行創建多個PNG?還是有更好的方法呢?

阿馬爾

回答

3

錯誤你:

Error in { : task 1 failed - "could not find function "CairoPNG"" 

警告說,您的節點(或從設備)需要Cairo包加載。你可以通過你的foreach調用之前運行

clusterEvalQ(cl, library(Cairo)) 

這樣做,或者你可以在foreach塊中添加require(Cairo)

對於相關的一切snow,我總是覺得這個頁面真的很有幫助:http://www.sfu.ca/~sblay/R/snow.html

+0

好點,但我使用的庫(開羅)已經,可能我錯過提的是..但我的問題是罐4或多個PNG平行創建?並確定會查看您提供給雪的鏈接。 – Amar

+1

在你的主腳本中'library(Cairo)'只會在主節點上加載包,而不是節點。你爲什麼不嘗試我所建議的?是的,它會並行創建多個PNG。 – flodel