R доступ к параллельным работникам динамически - PullRequest
0 голосов
/ 06 ноября 2018

Я хочу создать несколько параллельных рабочих, которым не нужно ждать, пока другие рабочие закончат свою работу, прежде чем получить новые рабочие места.

require(snow)

# generate sockets
cl <- snow::makeSOCKcluster(3, type = "SOCK", outfile="")


# here is the function that will be run in parallel
myfunc <- function(x=2)
{
  print(x)
  Sys.sleep(time = x)
  output = sample(x = 1:150, size = 1)
  return(output)
}

# here are the arguments that needs to run in parallel
myfunc_argument <- c(5, 50, 150)

snow::clusterApply(cl = cl, fun = myfunc, x = myfunc_argument)
stopCluster(cl)

В этом примере 1-му работнику нужно подождать, пока третий сотрудник устроится на новую работу.

Следующий набор входов будет выходами (то есть случайными числами от 1 до 150 в этом примере) текущего цикла

...