Я пытаюсь использовать parApply для анализа матрицы данных размером 41x1000 по строкам. Ниже перечислены функции, которые я использую:
library(signal)
custom_filtfilt <- function(trial, a, b){
y = filter(b, a, c(trial, numeric(2 * max(length(a), length(b)))))
y = rev(filter(b, a, rev(y)))[seq_along(trial)]
return(y)
}
filtered_data <- parApply(cl, trial_surr_ds, 1, custom_filtfilt, bf_filters[[f]]$a, bf_filters[[f]]$b)
Я тестировал это на локальном компьютере, и он работал нормально, но мне нужно переместить его в вычислительный кластер с 80 процессорами для ускорения обработка. Теперь я получаю следующее сообщение об ошибке:
41 nodes produced errors; first error: 'arg' must be NULL or a character vector
Когда я меняю границу параллельного вызова, я получаю следующее:
filtered_data <- parApply(cl, trial_surr_ds, 2, custom_filtfilt, bf_filters[[f]]$a, bf_filters[[f]]$b)
Error in checkForRemoteErrors(val) :
80 nodes produced errors; first error: 'arg' must be NULL or a character vector
Кажется, что данные читаются правильно в первом вызове, поскольку только 41 узел обрабатывает данные для этого вызова, но по какой-то причине кажется, что он не распознает ввод из матрицы, предоставленной для parApply. Есть идеи, что может происходить?