Linux McLappy的不当使用案例?
我一直在一台安装了LinuxMint(debian)的旧笔记本电脑上玩rstudio服务器 我一直在windows上运行,因此我从未利用过Linux McLappy的不当使用案例?,linux,r,lapply,mclapply,Linux,R,Lapply,Mclapply,我一直在一台安装了LinuxMint(debian)的旧笔记本电脑上玩rstudio服务器 我一直在windows上运行,因此我从未利用过并行或多核软件包,我的目标是学习rstudio服务器以及R linux,以及多核处理如何加速我的进程 我每天使用的lapply的一个主要用途如下: f <- function(x) { x1 <- data[1:50, x] x2 <- data[51:100, x] line <- c(paste0(mean(x1
并行
或多核
软件包,我的目标是学习rstudio服务器
以及R linux
,以及多核处理如何加速我的进程
我每天使用的lapply的一个主要用途如下:
f <- function(x) {
x1 <- data[1:50, x]
x2 <- data[51:100, x]
line <- c(paste0(mean(x1), " (", sd(x1), ")"),
paste0(mean(x2), " (", sd(x2), ")"),
t.test(x1, x2)$p.value)
return(line)
}
data <- data.frame(matrix(rnorm(2600, 85, 19), nrow=100, ncol=26))
names(data) <- letters
do.call(rbind, lapply(letters, f))
microbenchmark(
do.call(rbind, lapply(letters, f))
)
中值时间为120.9
毫秒
为什么会有如此巨大的差异
这台机器是一个2核恐龙。是不是在使用>=4核机器之前,您看不到好处?我的用例(按列计算data.frame)是否不适合看到好处
谢谢大家! 您的数据太小,因此在开销方面具有优势,请尝试
f <- function(x) {
x1 <- data[1:50000, x]
x2 <- data[50001:100000, x]
line <- c(paste0(mean(x1), " (", sd(x1), ")"),
paste0(mean(x2), " (", sd(x2), ")"),
t.test(x1, x2)$p.value)
return(line)
}
data <- data.frame(matrix(rnorm(2600, 85, 19), nrow=100000, ncol=26))
f我刚刚在我的双核处理器上尝试了这个。这个间隔缩短了约0.4毫秒,所以与您收到的更改没有什么相似之处,但至少是在正确的方向上。我决定以两种方式对系统施加压力,同时将要计算的变量数量增加一倍(最多52个),在这一点上,我最终发现McLappy的平均计算时间更快。谢谢
f <- function(x) {
x1 <- data[1:50000, x]
x2 <- data[50001:100000, x]
line <- c(paste0(mean(x1), " (", sd(x1), ")"),
paste0(mean(x2), " (", sd(x2), ")"),
t.test(x1, x2)$p.value)
return(line)
}
data <- data.frame(matrix(rnorm(2600, 85, 19), nrow=100000, ncol=26))