Rセッションに複数のシェイプファイルをロードする必要があります。現在、各形状ファイルを個別に読み込んでいます。これは動作しますが、時間がかかり、使用可能なCPUの15%しか使用しません。最近、私はのForEachとDoParallelを使用してシェイプファイルをロードしようとした:ForEachとDoParallelはすべてのRAMを使い果たしますか?
require(foreach)
require(doParallel)
require(rgdal)
files <- c(
"AHVENANMAA/AHVENANMAA",
"ETELA-KARJALA/ETELA-KARJALA",
"ETELA-POHJANMAA/ETELA-POHJANMAA_1",
"ETELA-POHJANMAA/ETELA-POHJANMAA_2",
"ETELA-SAVO/ETELA-SAVO_1"
)
registerDoParallel(cores = 8)
listOfCurrentProvinces <- (
foreach(
x = files,
.packages = "rgdal",
.inorder = FALSE
) %dopar%
readOGR(x, layer = "DR_LINKKI")
)
このメソッドは動作し、(それは私のCPUの100%を使用しています)非常に高速です。しかし、それはあまりにも多くのメモリを使い果たします。私はForEachとDoParallelを使用して、このような大きなメモリヒットを起こさない方法はありますか?私のマシンは8つのプロセッサー(4つの物理メモリーと4つの論理メモリー)を持ち、16GBのRAMを備えています。
[THIS]を読む(http://stackoverflow.com/questions/37750937/doparallel-package-foreach-does-not-work-for-big-iterations-in-r) – 989