複数の形状ファイルを R セッションにロードする必要があります。現在、各形状ファイルを個別にロードしています。これは機能しますが、時間がかかり、使用可能な CPU の 15% しか使用しません。最近、ForEach と DoParallel を使用してシェープ ファイルを読み込んでみました。
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 つの論理) があり、16 GB の RAM があります。