내 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 %를 사용한다). 그러나 너무 많은 메모리를 사용합니다. 특히 프로세스를 여러 번 반복 할 때 특히 그렇습니다. ForeEach와 DoParallel을 사용할 수있는 방법이 있습니까? 내 컴퓨터에는 8 개의 프로세서 (4 개의 물리 및 4 개의 논리)가 있으며 16GB의 RAM이 있습니다.
[이 기사 (http://stackoverflow.com/questions/37750937/doparallel-package-foreach-does-not-work-for-big-iterations-in-r)를 읽으십시오. – 989