R动态访问并行工作者

时间:2018-11-06 20:35:55

标签: r parallel-processing snow

我想生成多个并行的r工人,而这些工人不需要等待其他工人完成工作再获得新工作。

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到150之间的随机数)

0 个答案:

没有答案