R调用网状python函数的并行处理

R调用网状python函数的并行处理,python,r,parallel-processing,reticulate,Python,R,Parallel Processing,Reticulate,我在RMarkdown中使用了networkite,并试图运行一个本地定义的Python函数,并进行并行处理。我环顾四周,发现这是最接近解决问题的方法,除了我正在使用的函数没有在单独的Python脚本中定义,而是在Rmarkdown中定义。下面是一个使用llply的简化示例,它给出了未序列化(socklist[[n]])中的错误错误:从连接读取错误 我还尝试了foreach(),它即使使用networkite::py$函数也无法识别py$对象 我还尝试了mclappy和pbmcapply,它们似

我在RMarkdown中使用了
networkite
,并试图运行一个本地定义的Python函数,并进行并行处理。我环顾四周,发现这是最接近解决问题的方法,除了我正在使用的函数没有在单独的Python脚本中定义,而是在Rmarkdown中定义。下面是一个使用
llply
的简化示例,它给出了未序列化(socklist[[n]])中的错误
错误:从连接读取错误

我还尝试了
foreach()
,它即使使用
networkite::py$函数
也无法识别
py$
对象

我还尝试了
mclappy
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)
```
`{r}
图书馆(网状)
图书馆(双平行)
图书馆(foreach)
图书馆(plyr)
```
```{python}
def myFn1(x):
返回(sqrt(x))
```
```{r}
cl我很确定这不能并行运行,至少当在一个R进程中设置它,然后在另一个进程中尝试重用它时是不能并行运行的(就像您在这里所做的那样)。原因是网格创建了无法导出到其他进程的对象。我在中的“包装:网状”一节中有一个例子


一种可能的解决方法是为每个并行工作程序设置一个单独的网状实例。

网状导入似乎正在与
未来的
包和
计划(多核)
一起工作。我尝试了
plan(multisession)
,但失败了。

很有趣,这很有意义。您能否就您建议的可能解决方案的设置提供指导?你知道我能举什么例子吗?谢谢你的帮助,你明白了吗@vzste