- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Linux 上运行并且很容易使用 mclapply
。我在使用 parlapply
时遇到了一些错误,即使在使用 clusterEvalQ
之后也是如此。
在我进一步解决这个问题之前,有什么要点吗,即两者之间是否存在显着的速度差异,或者人们只是在 Windows 上使用 parLapply
?
我已经阅读了有关 parLapplyLB
的内容并且可以看到这种方法的用途,但是如果我严格查看 mclapply
和 parlapply
FORK 方法和 PSOCK 方法在速度上有很大差异吗?
我的职能性质可能会决定答案;它正在使用 stri_extract
。
最佳答案
一些快速基准测试表明 mclapply
可能会稍微快一些,但这可能取决于特定的系统和问题。工作越平衡,实际任务越慢,您使用哪个功能就越不重要。
library(parallel)
library(microbenchmark)
microbenchmark(
parLapply = {cl <- makeCluster(2)
parLapply(cl, rep(1:7, 3), function(x) {set.seed(1); rnorm(10^x)})
stopCluster(cl)},
mclapply = {mclapply(rep(1:7 , 3), function(x) {set.seed(1); rnorm(10^x)}, mc.cores = 2)},
times = 10
)
#Unit: seconds
# expr min lq mean median uq max neval
#parLapply 1.85548 2.04397 3.332970 3.071284 4.323514 6.294364 10
#mclapply 1.62610 1.65288 2.217407 1.849594 2.243418 5.435189 10
microbenchmark(
parLapply = {cl <- makeCluster(2)
parLapply(cl, rep(6, 20), function(x) {set.seed(1); rnorm(10^x)})
stopCluster(cl)},
mclapply = {mclapply(rep(6, 20), function(x) {set.seed(1); rnorm(10^x)}, mc.cores = 2)},
times = 10
)
#Unit: milliseconds
# expr min lq mean median uq max neval
#parLapply 1150.657 1188.9750 1705.1364 1242.739 2071.276 3785.516 10
# mclapply 820.692 932.2262 994.4404 1000.402 1079.930 1117.863 10
sessionInfo()
#R version 3.3.1 (2016-06-21)
#Platform: x86_64-pc-linux-gnu (64-bit)
#Running under: Ubuntu 14.04.5 LTS
#
#locale:
# [1] LC_CTYPE=de_DE.UTF-8 LC_NUMERIC=C LC_TIME=de_DE.UTF-8 LC_COLLATE=de_DE.UTF-8
# [5] LC_MONETARY=de_DE.UTF-8 LC_MESSAGES=de_DE.UTF-8 LC_PAPER=de_DE.UTF-8 LC_NAME=C
# [9] LC_ADDRESS=C LC_TELEPHONE=C LC_MEASUREMENT=de_DE.UTF-8 LC_IDENTIFICATION=C
#
#attached base packages:
#[1] parallel stats graphics grDevices utils datasets methods base
#
#other attached packages:
#[1] microbenchmark_1.4-2.1 doParallel_1.0.10 iterators_1.0.8 foreach_1.4.3
#
#loaded via a namespace (and not attached):
# [1] colorspace_1.2-6 scales_0.4.0 plyr_1.8.4 tools_3.3.1 gtable_0.2.0 Rcpp_0.12.4
# [7] ggplot2_2.1.0 codetools_0.2-14 grid_3.3.1 munsell_0.4.3
关于r - mclapply 与 parLapply 速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38957807/
我正在尝试使用 mclapply parallel的功能包裹在 R .该函数通过计算对数似然距离(CPU 密集型操作)将值分配给序列矩阵。 由此产生的 system.time值(value)观令人困惑
我正在尝试使用 mclapply() 并行处理一堆 csv 文件并返回 R 中的数据帧.我有一台 64 核机器,我似乎无法使用 mclapply() 获得目前使用的 1 个内核。 .其实运行lappl
我创建了一个函数 DevCstat()。 它接受参数:indat、mod、Covar、txtMat、PatCovar。 indat 是一个列表,我想将该函数应用于列表的每个元素。 mod、Covar、
我正在与 mclapply 一起工作来自 multicore包(在 Ubuntu 上),我正在编写一个函数,该函数要求 mclapply(x, f) 的结果按顺序返回(即 f(x[1]), f(x[2
我无法理解 mclapply 的行为(或者可能是其他东西)。 我做类似的事情: opt.Models = mclapply(1:100, mc.cores=20, function(i){ r
在一个函数中,我需要为列表中的每个项目运行 mclapply,它还应该使用一个半全局变量 var.1。我不想将 var.1 添加到每个列表项,因为它会占用太多内存。这是说明问题的代码: library
我一直在一台安装了 linux mint (debian) 的旧笔记本电脑上玩 rstudio 服务器。 我一直在 windows 上运行,所以我从来没有利用过 parallel 或 multicor
当mclapply(X, FUN) X 的某些值遇到错误,错误会传播到 X 的一些(但不是全部)其他值。 : require(parallel) test <- function(x) if(x ==
想象一下,我们正在执行许多过程,我想在程序开始时设置一个整体种子:例如 mylist <- list( as.list(rep(NA,3)), as.list(rep(NA,3)) ) foo <-
我正在使用 https://github.com/mplatzer/BTYDplus/blob/master/R/pareto-nbd-mcmc.r 中给出的 BTYD plus 代码.此代码使用 M
我正在尝试运行一些 R 代码,它由于内存而崩溃。我得到的错误是: Error in sendMaster(try(lapply(X = S, FUN = FUN, ...), silent = TRU
当我使用 mclapply 时,有时(非常随机)它会给出不正确的结果。该问题在 Internet 上的其他帖子中得到了非常详尽的描述,例如( http://r.789695.n4.nabble.com
我有一些数据涉及重复销售一堆具有唯一 ID 的汽车。一辆汽车可以卖出不止一次。 但是有些 ID 是错误的,所以我正在检查每个 ID 的尺寸是否在多次销售中记录为相同。如果不是,那么我知道 Id 是错误
我喜欢 plyr's llply 中的设置 .progress = 'text'。然而,这让我非常焦虑,不知道 mclapply (来自 multicore 包)有多远,因为列表项被发送到各个核心,然
如果在任何一个中遇到错误(例如 stop()),是否可以请求 parallel::mclapply() 尽快放弃所有进一步处理它的流程? 最佳答案 这是另一种方法:想法是在用#!! 指示的三个位置修改
我正在学习 R 中的并行计算,我在实验中发现了这种情况。 简而言之,在下面的示例中,为什么 t 中 'user' 的大多数值小于 mc_t 中的值?我的机器有 32GB 内存,2 个 CPU,4 核和
我正在使用 parallel 包中的 mclapply 来估计在高性能集群上使用 lme4 包的混合 glmer 模型。我遇到问题 described here 。我应用了添加 mc.presched
我在 Linux 上运行并且很容易使用 mclapply。我在使用 parlapply 时遇到了一些错误,即使在使用 clusterEvalQ 之后也是如此。 在我进一步解决这个问题之前,有什么要点吗
使用 Rscript 时,我间歇性地收到以下错误调用 mclapply从命令行: Error in sendMaster(try(lapply(X = S, FUN = FUN, ...), sile
无论线程和操作系统的数量如何,是否可以以可重现的方式使用 mclapply 运行一些基于排列的函数? 下面是一个玩具示例。对结果排列的向量列表进行散列只是为了方便比较结果。我尝试了不同的 RNGkin
我是一名优秀的程序员,十分优秀!