Tôi đang cố gắng chạy song song predict()
trên máy tính Windows của mình. Điều này làm việc trên tập dữ liệu nhỏ hơn, nhưng không quy mô tốt như cho mỗi quá trình sao chép mới của khung dữ liệu được tạo ra. Có cách nào để chạy song song mà không tạo bản sao tạm thời không?Dự đoán song song
My mã (chỉ có vài thay đổi của this mã gốc):
library(foreach)
library(doSNOW)
fit <- lm(Employed ~ ., data = longley)
scale <- 100
longley2 <- (longley[rep(seq(nrow(longley)), scale), ])
num_splits <-4
cl <- makeCluster(num_splits)
registerDoSNOW(cl)
split_testing<-sort(rank(1:nrow(longley))%%num_splits)
predictions<-foreach(i= unique(split_testing),
.combine = c, .packages=c("stats")) %dopar% {
predict(fit, newdata=longley2[split_testing == i, ])
}
stopCluster(cl)
Tôi đang sử dụng sao chép dữ liệu đơn giản để kiểm tra nó. Với scale
10 hoặc 1000 nó đang hoạt động, nhưng tôi muốn làm cho nó chạy với scale <- 1000000
- khung dữ liệu với 16M hàng (khung dữ liệu 1.86GB như được chỉ ra bởi object_size()
từ pryr
. Lưu ý rằng khi cần thiết tôi cũng có thể sử dụng máy Linux, nếu điều này là lựa chọn duy