3

Intel i7 (8 コア) で並列処理を行い、R2.15.0 (RStudio から) で Ubuntu 12.04 (64 ビット) を使用する必要があります。私はこれを数週間成功させましたが、昨日から並列 R 処理を試みると処理が遅くなるため、ほとんど機能しなくなります。コンピューター自体は相変わらず高速ですが (Web ブラウジングなど)、R は待つだけです。私は通常、Ubuntu (Update Manager) を毎日更新していますが、それがここに関連しているかどうかはわかりません。

このコードにより、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

多くのテストと「kill -9」の後、問題を「library(gsubfn)」に切り分けたと思います。「Loading required package: proto Loading required namespace: tcltk Loading Tcl/Tk interface ... done」を自動的に読み込みます

gsubfn-package が必要なので、除外するオプションはありません。この問題を回避するために何かできることはありますか?

R-tagに貢献してくださった皆様、ありがとうございます!

/クリス

4

2 に答える 2

4

使用してみてください:

options(gsubfn.engine = "R")

これにより、gsubfn が tcl をロードするのを防ぎます。これにより、mclapply 関数で問題が発生する可能性があります。参照: R がパッケージをロードしないようにするにはどうすればよいですか?

そして: https://stat.ethz.ch/pipermail/r-sig-hpc/2009-August/000324.html

于 2012-06-23T02:03:42.567 に答える
1

このコードはすべて、私にとって完璧かつ即座に機能します。あなたのマシンよりも古いマシンを使用して、Fedora 20 で R 3.0.2 を実行しています。おそらく、R のインストールを更新して、再試行する必要があります。

前のコメントが示唆したように、常にターミナル R から並列コードを実行します。私は多くの mclapply 作業を行っていますが、RStudio 内ではほとんど、またはまったく機能しません。

于 2014-02-06T20:22:50.813 に答える