在不同的会话中使用相同的对象

时间:2018-04-09 10:57:02

标签: r parallel-processing

有没有办法在R?

中的多个会话之间共享一个const对象

在我目前的情况下,我愿意运行PAM算法,因此需要一个相异矩阵。在讨论中创建矩阵的过程 - 我的项目---需要我所有的随机访问记忆。但是,生成后它只需要2Gb的Ram。我的电脑有原始 8Gb Ram。

由于高维度,算法很难达到收敛速度,因此,我希望并行运行多个函数。但是,我的计算机没有处理另一个矩阵生成,但是,由于该对象已经存在于另一个会话中,我想是否有办法使用它。

我希望很清楚。如果不是,请发表评论,我将修改我的文字。提前谢谢。

观察:

  • 我有Windows和Ubuntu操作系统
  • 我不确定会话是否是正确的词

1 个答案:

答案 0 :(得分:1)

在Ubuntu上你可以使用这样的东西:

# generate 500 objects, divided into 4 clusters.
x <- rbind(cbind(rnorm(100,0,0.5), rnorm(100,0,0.5)),
           cbind(rnorm(150,5,0.5), rnorm(150,5,0.5)),
           cbind(rnorm(100,0,0.5), rnorm(100,5,0.5)),
           cbind(rnorm(150,5,0.5), rnorm(150,0,0.5)))
# generate dstance matrix
y <- dist(x)
# run four clusterings in parallel using forked processes
parallel::mclapply(1:4, function(k) cluster::pam(y, k)$medoids)