2012-06-20 66 views
3

我需要在Intel i7(8核)上執行並行處理,並使用R2.15.0(來自RStudio)的Ubuntu 12.04(64bit)。我已經成功完成了幾個星期,但從昨天開始,任何並行R處理的嘗試都會減慢處理速度,因此它幾乎死亡。電腦本身就像以前一樣快速(網頁瀏覽等),但R只是等待和等待。我通常每天更新Ubuntu(更新管理器),但不確定這是否與此相關。mclapply但不是停止R

此代碼阻止我的R工作。請不要運行它,除非你確定與崩潰R和知道如何使用「KILL -9」 ......

library(parallel) 
library(gsubfn) 

doSomething <- function(xx) { 
    test <- 16 
    return(test) 
} 

in.list <- list(1, 2, 3) 

out.list.1 <- lapply(in.list, doSomething)    # Works well (< 1s) 
out.list.2 <- mclapply(in.list, doSomething)    # Takes tens of minutes 
out.list.3 <- mclapply(in.list, doSomething, mc.cores=1) # Works well (< 1s) 
out.list.4 <- mclapply(in.list, doSomething, mc.cores=2) # Takes tens of minutes 

大量的測試後,並「殺-9」,我想我已經分離問題到「庫(gsubfn)」。它會自動加載「加載所需的程序包:原 加載所需的命名空間:tcltk 加載的Tcl/Tk接口......做」

我需要gsubfn包,所以它是不排除的選項。可以做任何事情來避免這個問題?

感謝大家對R-tag的貢獻!

/克里斯

+1

'mclapply'起源於'multicore'包。在過去(至少),'Rstudio'不支持'multicore' [見這裏](http://support.rstudio.org/help/discussions/questions/82-multicore-package-calls-within-rstudio) 。如果在Rstudio之外運行此腳本,會發生什麼? – mnel

+0

RStudio之外也會出現此問題。 –

回答

1

此代碼的所有作品完美瞬間我。我在Fedora 20下運行R 3.0.2,使用的機器比您的機器舊。也許你應該更新你的R安裝並重試。

正如前面的評論建議,總是從終端R運行並行代碼。我做了很多mclapply工作,它很少或從未在RStudio中工作。