Я использую reticulate
в RMarkdown и пытаюсь запустить локально определенную функцию Python с параллельной обработкой. Я огляделся по сторонам, и этот ответ наиболее близок к решению моей проблемы, за исключением того, что функция, которую я использую, не определена в отдельном скрипте Python, а скорее в Rmarkdown. Ниже приведен упрощенный пример использования llply
, который дает мне ошибку Error in unserialize(socklist[[n]]) : error reading from connection
.
Я также пробовал foreach()
, который не распознает объект py$
даже с reticulate::py$function
.
Я также пробовал mclapply
и pbmcapply
, которые появляютсязапускать и задействовать все ядра, но они продолжают зависать и не заканчивают работу.
```{r}
library(reticulate)
library(doParallel)
library(foreach)
library(plyr)
```
```{python}
def myFn1(x):
return(sqrt(x))
```
```{r}
cl <- makeCluster(detectCores())
registerDoParallel(cl)
llply(list(2, 3, 4), .fun=reticulate::py$myFn1, .parallel=TRUE)
stopCluster(cl)
```
Я не очень хорошо разбираюсь в сетчатой или параллельной обработке и буду очень благодарен за любую помощь.