1

複数の形状ファイルを 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 があります。

4

1 に答える 1