Мне нужно запустить кусок кода, используя параллельную обработку, чтобы сократить время выполнения. Каждый шаг не зависит друг от друга. Я создал кластер,
cl = makeCluster(cores)
registerDoParallel(cl)
invisible(clusterEvalQ(cl, sapply(list.files("./Src/LibrariesAndFunctions/",
full.names = TRUE,
recursive = TRUE),
function(x) {
source(x, encoding = "UTF-8")
})))
Теперь мне нужно прочитать набор функций, доступных в том же каталоге. Проблема в том, что данные на японском языке, и я установил глобальную локаль за пределами кластера как
Sys.setlocale("LC_ALL","japanese_JAPAN")
. Это работает вне кластера, но не внутри кластера, и выдает ошибку, подобную этой,
2020/02/12 20:10:27.742 [INFO ] 2020/02/12 20:10:27.497 |main | [xxx] 結合 開始
Error in checkForRemoteErrors(lapply(cl, recvResult)) :
4 nodes produced errors;irst error: ./Src/LibrariesAndFunctions//01_Setup_Logging_Milestone/I103_Setup.R:15:0: unexpected end of input
13: ##
14: ##
^
Эта ошибка говорит о том, что в строке 14 произошел неожиданный конец ввода, но там есть японские комментарии. Это может быть решено, только если комментарии переведены на engli sh. Итак, мой вопрос здесь, как установить локаль в узле кластера?