1
我正在使用R包並行的函數parSapply。 我對這個函數的調用是一樣的東西:R包並行:如何打印來自一個節點的輸出?
cl <- makeCluster(3, type="PSOCK",outfile="output.txt")
m<-10
parSapply(cl,as.list(1:m), FUN=function(mtmp){
comp<-0
for (ii in 1:10){
print(ii)
comp<-comp+rnorm(1)
}
return(comp)
})
並行化功能打印一條消息遵循的過程。這對估計函數所需的時間非常有用。使用此代碼,每個節點的打印消息都存儲在一個txt文件(output.txt)中,但由於所有節點都在同一時間生成消息,因此會融化。因此,爲了讓打印的消息在我的txt文件中可讀,我希望僅遵循一個節點的過程。我在考慮對於{1,4,7,10}中的mtmp,迭代是在同一個節點上執行的。所以,我想加上一條:
if(mtmp%%3==1){print(ii)}
但是,這些消息再次熔化,這表明在{1,4,7,10}同一節點上不執行MTMP電話。
因此,我的問題是:如何在我的txt文件中保存一個節點的所有打印消息,並且只保存這一個?另外,我想這個節點是處理大量調用我的並行函數的節點。
非常感謝您的幫助,
文森特
非常好,謝謝! –