- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我一直在一台安装了 linux mint (debian) 的旧笔记本电脑上玩 rstudio 服务器。
我一直在 windows 上运行,所以我从来没有利用过 parallel
或 multicore
包,我的目标是学习 rstudio server
以及 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))
)
中值时间是 21.8
毫秒
或者:
library(parallel)
microbenchmark(
do.call(rbind, mclapply(letters, f))
)
中值时间为 120.9
毫秒。
为什么会有这么大的差异?
该机器是一个 2 核恐龙。是不是在使用 >= 4 核机器之前看不到好处?我的用例(data.frame 的按列计算)是否不适合查看 yield ?
谢谢!
最佳答案
你的数据太小了,以对抗开销,试试
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))
而是检查结果。您的示例花费了我的笔记本电脑 7 和 17 毫秒的中位数,但我更大的示例将其更改为 120 和 80。所以在我看来,它(不仅)是内核的数量,而且在这种情况下更多的是数据的大小。
关于linux - mclapply 的不当用例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32468136/
我最近购买了《C 编程语言》并尝试了 Ex 1-8这是代码 #include #include #include /* * */ int main() { int nl,nt,nb;
早上好!我有一个变量“var”,可能为 0。我检查该变量是否为空,如果不是,我将该变量保存在 php session 中,然后调用另一个页面。在这个新页面中,我检查我创建的 session 是否为空,
我正在努力完成 Learn Python the Hard Way ex.25,但我无法理解某些事情。这是脚本: def break_words(stuff): """this functio
我是一名优秀的程序员,十分优秀!