【发布时间】:2018-03-02 19:07:40
【问题描述】:
我是 R 编程新手,我有如下代码,我知道 windows 不支持多核但我不知道如何更改这部分代码。 有人可以在不使用 mc.cores 功能的情况下向我推荐一个等效代码吗?
rpl <- unlist( lapply( waydf$geometry$coordinates , nrow ) ) # row per line
waydf <- waydf[ rpl > 1 , ]
ll <- parallel::mclapply( waydf$geometry$coordinates , st_linestring,
mc.cores =parallel::detectCores() - 1 )
outdf <- sf::st_sf(
line_geometry = sf::st_sfc( ll , crs = epsg ) ,
osm_id = waydf$id
)
【问题讨论】:
-
什么是
st_linestring?自定义函数? -
您知道 Windows 不支持多核吗? forking 没有被使用,因为它比 multicore 处理慢几个数量级。分叉启动一个单独的单线程进程。在同一数据上使用多个线程要快得多。试试使用 real 多核和 SIMD 处理的 Revolution R 发行版。你会发现在 i7 (quad) 上
svd会快 7 倍 -
你真的在问如何在 Windows 上进行并行处理吗?这就是下面的答案试图回答的问题。还是您只是想将此代码更改为不并行运行?
标签: r windows parallel-processing multicore