O. *_*ngl 7 parallel-processing r shared-memory data.table
在关于data.table和并行计算的帖子之后,我试图找到一种方法来实现平行操作data.table.
我有一个data.table包含4百万行14个观察值并希望在公共内存中共享它,以便可以通过使用"并行"包来并行化它上的操作,parLapply 而无需为集群中的每个节点复制表(什么parLapply).目前,移动data.table周围的成本大于并行计算的好处.
我发现"bigmemory"-package是共享内存的答案,但它没有维护数据的"data.table"结构.所以有人知道一种方法:
1)放入data.table共享内存
2)通过这样做来维护数据的"data.table"结构
3)对此使用并行处理data.table?
提前致谢!
老问题,但这是一个答案,因为没有其他人回答过,它可能会有所帮助。我认为您遇到的问题是因为您在 Windows 上并且必须使用PSOCK集群类型。不幸的是,对于 Windows,这意味着您必须将数据复制到每个节点。不过,有一个解决方法。掌握docker并在 docker 虚拟机上启动Rservestevenpollack/docker-rserve实例(例如)。由于这将是基于 Linux 的,因此您可以FORK在 docker 虚拟机上创建一个集群。然后,使用本机 R 实例,您只需将一次数据副本发送到 Rserve 实例(检查库RSclient),在虚拟机上执行并行化作业,并将结果收集回本机 R 中。