Google виртуальная машина не масштабируется с параллельной обработкой

голоса
0

У меня есть виртуальная машина на облачную платформу Google с Rstudio сервера установлен и R версии 3.5.1. Тип машины n1-highmem-64, а это означает , что он имеет 64 ядер.

Я заметил, что чем больше ядер я использую медленнее, каждое ядро ​​получает. Например, подгонка модели линейной регрессии с большим размером выборки в среднем занимает примерно вдвое длиннее на ядро ​​при использовании всех ядер по сравнению с только половиной ядер. Как это возможно? На моем локальном компьютере с 8 ядрами не имеют те же проблемы. Среднее время на ядро ​​одно и то же, независимо от того, сколько ядер я использую.

Вот небольшой пример:

library(parallel)
cl <- makeCluster(64)
cores_used <- 2^(0:6)
average_time_per_core <- sapply(cores_used, function(ncore) {
  mean(parSapply(cl, 1:ncore, function(i) {
    system.time({
      set.seed(1)
      n = 10^7
      y = rnorm(n)
      x = y + rnorm(n)
      lm(y ~ x)
    })[[elapsed]]
  }))
})
plot(cores_used, average_time_per_core)

введите

Задан 04/09/2018 в 15:10
источник пользователем
На других языках...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more