スノーパッケージのparXapply()関数は、データが1つのリストまたは行列にのみ含まれている場合に非常にうまく機能しますが、この場合、4つの異なるタイプの行列で関数を実行する必要があります。
たとえば、これは私が今持っているものです:
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()を呼び出す前にリストを分割し、処理のために関連する行列のみを各ノードに送信するにはどうすればよいですか?