當數據只包含在一個列表或矩陣中時,雪包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()是我需要的,但它不是在雪中可用。 –