- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 R 中并行计算的新手,想使用并行包来加速我的计算(这比下面的示例更复杂)。但是,与通常的 lapply 函数相比,使用 mclapply 函数的计算时间更长。
我在我的笔记本电脑上安装了一个全新的 Ubuntu 18.04.2 LTS,它有 7.7 GB 内存和一个 Intel® Core™ i7-4500U CPU @ 1.80GHz × 4 处理器。我在 R studio 上运行 R。
require(parallel)
a <- seq(0, 1, length.out = 110) #data
b <- seq(0, 1, length.out = 110)
c <- replicate(1000, sample(1:100,size=10), simplify=FALSE)
function_A <- function(i, j, k) { # some random function to examplify the problem
i+ j * pmax(i-k,0)
}
#running it with mclapply
ptm_mc <- proc.time()
output <- mclapply(1:NROW(c), function(o){
mclapply(1:NROW(a),function(p) function_A(a[p], b, c[[o]]))})
time_mclapply <- proc.time() - ptm_mc
# running it with lapply
ptm_lapply <- proc.time()
output <- lapply(1:NROW(c), function(o){
lapply(1:NROW(a),function(p) function_A(a[p], b, c[[o]]))})
time_lapply <- proc.time() - ptm_lapply
> time_mclapply
user system elapsed
6.030 439.112 148.088
> time_lapply
user system elapsed
1.662 0.165 1.827
ptm_mc_OUT <- proc.time()
output <- mclapply(1:NROW(c), function(o){
lapply(1:NROW(a),function(p) function_A(a[p], b, c[[o]]))})
time_mclapply_OUT <- proc.time() - ptm_mc_OUT
ptm_mc_IN <- proc.time()
output <- lapply(1:NROW(c), function(o){
mclapply(1:NROW(a),function(p) function_A(a[p], b, c[[o]]))})
time_mclapply_IN <- proc.time() - ptm_mc_IN
require(dplyr)
times <- rbind(time_mclapply,
time_lapply,
time_mclapply_OUT,
time_mclapply_IN) %>% data.frame()
times
>times
user.self sys.self elapsed user.child sys.child
time_mclapply 0.075 0.081 22.621 1.933 34.266
time_lapply 1.070 0.049 1.118 0.000 0.000
time_mclapply_OUT 0.064 0.077 0.884 2.539 34.587
time_mclapply_IN 1.329 31.843 37.426 5.108 28.879
times_lapply
user.self sys.self elapsed user.child sys.child
time_mclapply 0.324 0.121 9.108 0.000 0.000
time_lapply 1.060 0.049 1.108 0.000 0.000
time_mclapply_OUT 0.211 0.092 1.155 10.791 19.632
time_mclapply_IN 1.221 22.196 27.089 5.130 23.032
最佳答案
设 N 为您机器的线程数。一些建议:
mc.cores = parallel::detectCores() / 2
) 时,
time_mclapply_OUT
是
time_lapply
的两倍.
关于r - mclapply() 的性能明显比 lapply() 差。我怎样才能加快速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54649608/
我正在尝试从许多格式不整洁的 excel 电子表格中提取一些数据。我想我需要在 lapply 内运行 lapply,但似乎无法使其工作。这是一个例子: 这是两个数据框,其格式与我在 excel 表中找
显然,我仍然不完全理解 lapply 到底是如何工作的。当然,它对列表元素应用一个函数并返回一个列表。然而,当将它与自定义函数一起使用时,我不太确定如何有效地使用它。例如,我想在使用 dcast 的自
我创建了一个名为“列表”的数据框列表,并且只想选择列表中每个数据集的某些列。 library(dplyr) new_list <- lapply(list, select(list, Date)) 它
我想使用 lapply 同时运行四个多级模型(使用 lmer)。 将 lm() 与一个因变量和一组自变量一起使用的简单示例是: data(mtcars) varlist <- names(mtcars
我编写了一个函数,可以将字符输入转换为数字输出。 votedIndicated votedIndicated("V") [1] 1 > votedIndicated("D") [1] 0 但是,当我
简介 我一直在编写一个程序来处理一些原始数据,然后通过几个统计过程来传递它。总而言之,它使用了多个“lapply”实例。 例如 :在脚本的一部分中,我使用了一个称为 Maxstat 的函数(请注意,该
我有一个 list l ,具有以下特点: 它有 3 个元素 每个元素都是一个长度为 5 的数值向量 每个向量包含从 1 到 5 的数字 l = list(a = c(2, 3, 1, 5, 1), b
我有一个功能列表 functions flist arg arg [1] 6.123234e-17 > Funcall ## Compute log(exp(acos(cos(0)) > Re
我有一个字符向量中的 url 列表,我想暂停之间的过程 查询,因为如果不是 x 查询被拒绝。 urls=c('url1','url2','url3') 这是我想做的事 htmlpages=lapply
我有一个具有以下结构的 6 个列表,我正在尝试提取特定元素并将它们存储在数据 data.frame 中。 我已经应用了这个, lapply(rmseErrorsHyperparameters, '[[
关闭。这个问题需要debugging details .它目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and th
我正在阅读 Wickham 的 Advanced R 书。此问题与解决第 12 章 - 泛函中的问题 5 有关。该练习要求我们: Implement a version of lapply() tha
有没有办法使用lapply()以某种方式强制它在单步执行列表的下一个元素之前等待用户的“输入”?如果是这样,你能提供一个简单的例子吗? 最佳答案 这是示例: es <- list(1, 2, 3) l
我有一个我想摆脱的循环,但我也不太明白怎么做。假设我有一个数据框: tmp = data.frame(Gender = rep(c("Male", "Female"), each = 6),
我已经生成了一个模型列表,并想创建一个汇总表。 例如,这里有两个模型: x <- seq(1:10) y <- sin(x)^2 model1 <- lm(y ~ x) model2 <- lm(y
我在对数据帧列表运行稳健的线性回归模型(使用 MASS 库中的 rlm)时遇到问题。 可重现的示例: var1 <- c(1:100) var2 <- var1*var1 df1 <- data.f
我正在清理一组文本文件,目前将它们作为具有相同结构的数据框列表进行操作。 鉴于文本文件的结构,每个 df 中最终都会有一个不规则的单元格。该单元格包含一个包含列名和值的字符串。我需要提取该值并将其分配
我有一个包含字符数据的 data.frame,我希望最终得到一个具有相同列标题但每个值都有计数的矩阵。到目前为止,我可以获得一个我想要的维度的空矩阵,但是当我尝试用计数填充 myMatrix 时,它不
如何在 lapply 中指定多行语法。我的语法也没有替换第一行中的 text_query。提前谢谢你。 text_query<-lapply(text_query, function(x) { g
您可以通过运行重置数据框中的行名 >rownames(df) newlist <- llply(mylist, function(df) { rownames(df) <- NULL }) 但 tit
我是一名优秀的程序员,十分优秀!