【问题标题】:multicore and data.table in RR中的多核和data.table
【发布时间】:2013-01-19 19:08:45
【问题描述】:

我正在尝试将multicore 函数paralleldata.table 一起使用,但我无法想出正确的方法来做到这一点。代码:

require(multicore)
require(data.table)
dtb = data.table(a=1:10, b=1:2)
x = dtb[,parallel(a+1),by=b]

> x
   b   pid fd
1: 1 12243  3
2: 1 12243  6
3: 2 12247  4
4: 2 12247  8

我想就此致电collect(),但这些不再是parallel 对象。应该怎么做呢?

【问题讨论】:

  • x = dtb[, collect(parallel(a+1)),by=b] 有什么问题?
  • 收集等待并行完成
  • @alex 很难理解为什么 collect() 等待 parallel() 是一个问题。也很难将您的示例推断为实际问题,因此很难从中知道您真正想要什么。你能帮助我们理解吗?

标签: r fork multicore data.table


【解决方案1】:

我认为这符合您的要求:

collect(dtb[, list(jobs = list(parallel(a+1))), by = b][, jobs])

您不再拥有parallel 对象并且无法运行collect 的原因是因为您将它们转换为 list,而不是存储它们一个列表中,这就是我在上面所做的。

【讨论】:

    猜你喜欢
    • 2012-03-06
    • 1970-01-01
    • 2016-08-26
    • 2015-07-28
    • 2018-07-12
    • 2016-04-20
    • 2020-09-12
    • 2016-08-01
    • 1970-01-01
    相关资源
    最近更新 更多