我想在羣集(大學服務器)上並行運行randomForest,我可以同時保留4個節點,每個節點還包含12個內核。我使用了foreach和doSNOW軟件包,正如在foreach軟件包描述中提到的一樣,但通過使用以下代碼,我可以看到所有負載僅在第一個節點上,而對於其他3個節點,則沒有內存消耗。有人可以指導我如何編輯此代碼,以便每個節點的每個核心都可以得到同樣的工作,然後將其合併到一個森林中。在羣集中的不同節點上並行運行RandomForest
> library("foreach")
> library("doSNOW")
> registerDoSNOW(makeCluster(48, type="SOCK"))
> x <- matrix(runif(500), 100)
> y <- gl(2, 50)
> rf <- foreach(ntree = rep(22, 48), .combine = combine, .packages = "randomForest") %dopar%
+ randomForest(x, y, ntree = ntree)
> rf
Call:
randomForest(x = x, y = y, ntree = ntree)
Type of random forest: classification
Number of trees: 1056
您是否使用批量排隊系統(如Torque,LSF或Slurm)來請求四個節點? –
以下是很好的答案,但我想補充一點,您應該與您的大學羣集管理員聯繫。他們將能夠以最佳方式爲您的特定羣集提供幫助。 – vincentmajor