【发布时间】:2012-05-11 16:20:51
【问题描述】:
当数据只包含在一个列表或矩阵中时,snow 包 parXapply() 函数的分布非常好,但在这种情况下,我需要在四种不同类型的矩阵上运行一个函数。
例如,这就是我现在拥有的:
res.list = parLapply(cl, mynames, myfun, listA, listB, listC, listD)
myfun = function(name, listA, listB, listC, listD) {
matrixA = listA[[name]]
matrixB = listB[[name]]
matrixC = listC[[name]]
matrixD = listD[[name]]
}
我遇到的问题是矩阵非常大,我怀疑在完整列表上调用 parLapply() 涉及将所有数据传输到每个集群节点。这可能非常耗时并且会降低集群性能。
如何在调用 myfun() 之前拆分列表,只将相关矩阵发送到每个节点进行处理?
【问题讨论】:
-
看起来 mapply() 是我需要的,但它在雪中不可用。
标签: r parallel-processing lapply