- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 R 中创建了一个顺序模拟来迭代一个过程 10,0000 次。这需要大约 70 分钟,所以我决定与 doParallel 包并行尝试相同的事情。
我的 foreach 循环调用了一个名为“inv.predict”的函数,该函数不在任何现有包中。当我运行代码时,出现错误。
cl <- makeCluster(4)
registerDoParallel(cl)
ptm <- proc.time()
clupeaformis_cr <- foreach(i = 1:100, .packages = c("spider", "investr", "mgcv")) %dopar% {
clupeaformis_cr <- rep(NA, i)
clupeaformis_haplo_rand <- haploAccum(clupeaformis_aligned, method = "random", permutations = 1000)
N <- clupeaformis_haplo_rand$sequences
H <- clupeaformis_haplo_rand$n.haplotypes
d <- data.frame(N, H)
clupeaformis_cr <- gam(H ~ s(N, bs = "cr", k = 20), optimizer = c("outer", "bfgs"), data = d)
clupeaformis_cr[i] <- inv.predict(clupeaformis_cr, y = 21, x.name = "N", interval = TRUE,
lower = 1, upper = 1000000)
}
proc.time() - ptm
stopCluster(cl)
Error in { :
task 1 failed - "no applicable method for 'inv.predict' applied to an object of class "c('gam', 'glm', 'lm')""
最佳答案
我已经找到了解决方案。
一般的解决方法如下:
cl <- makeCluster(4) # set number of cluster/cores for parallelization
registerDoParallel(cl) # register clusters
ptm <- proc.time() # start timer
my_function <- foreach(i = 1:1000, .packages = c(...)) %dopar% { # foreach loop
my_vec <- rep(NA, i) # preallocate results to a empty vector
cl <- makeCluster(detectCores() - 1) # set number of cluster/cores for parallelization
registerDoParallel(cl) # register clusters
my_vec[i] <- YOUR CODE HERE # filled vector with results
}
proc.time() - ptm # stop timer
stopCluster(cl)
关于r - doParallel 与自己创建的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44685755/
registerDoParallel 中的集群和核心有什么区别?使用 doParallel 包时? 我的理解是否正确,在单台机器上这些是可以互换的,我会得到相同的结果: cl library(doP
以下问题是与此处描述的问题相关的非常详细的问题。 Previous Question 使用在 R 版本 3.2.3 的 c4.8xlarge(36 核)上启动的 Ubuntu Server 14.04
我正在尝试编写一个具有多线程功能的 CRAN 包。我使用 doSNOW 实现了完美的解决方案,但该软件包已被 CRAN 团队标记为“取代”,他们要求我切换到 doParallel 解决方案。这很好,但
我在 R 中创建了一个顺序模拟来迭代一个过程 10,0000 次。这需要大约 70 分钟,所以我决定与 doParallel 包并行尝试相同的事情。 我的 foreach 循环调用了一个名为“inv.
我在局域网上有两台服务器,全新安装了 Centos 6.4 minimum 和 R 3.0.1。两台计算机都安装了 doParallel、snow 和 snowfall 包。 服务器可以通过 ssh
我正在尝试使用 doParallel 包来估计多个非参数模型。我的问题似乎与 np 包有关。看看这个可重现的例子: library(np) library(doParallel) df 修复
我一直在使用apply将data.frame的每一行提交到R中的function使用Windows 10。这种方法有效。然而,随着函数变得更加复杂并且数据集更大,这种方法变得不可行。因此,我希望使用并
考虑使用并行 foreach 生成随机值的非常基本(且效率低下)的代码: cl <- makeCluster(2) registerDoParallel(cl) foreach(i = 1:100)
我一直在使用apply将data.frame的每一行提交到R中的function使用Windows 10。这种方法有效。然而,随着函数变得更加复杂并且数据集更大,这种方法变得不可行。因此,我希望使用并
我正在尝试设置一个并行任务,其中每个工作人员都需要进行数据库查询。我正在尝试为每个工作人员设置一个连接,如 this question 中所示但每次我尝试它都会返回 无论我注册了多少 worker 。
我正在一个 12 节点集群上运行一个并行进程。 并且想知道是否有办法在 foreach 期间获取节点 ID 或节点编号或节点名称称呼? 像这样的东西: foreach(i = 1:12, .combi
我有这段代码用于并行写入我的结果。我在 R 中使用 foreach 和 doParallel 库。 output_location='/home/Desktop/pp/' librar
我编写了一个运行良好的脚本,但它似乎并未进行并行处理。我尝试将内核从 3 个更改为 16 个,但生成数据的速度没有改变。谁能告诉我我做错了什么以及如何让它发挥作用? setwd("E:/Infecti
当我将 caret 与新配方包一起使用时,即 caret::train.recipe(),如果 doParallel 也用于注册并行后端,我会收到一条错误消息。附件是一个可重现的示例(插入符号文档中官
我正在尝试合并一个大 data.frame用一个小的,并并行计算。下面的代码完美运行,最大化了我机器的所有内核: len <- 2000000 set.seed(666) dat = paste(sa
我正在使用发布的示例代码 here使用 doParallel + foreach 显示 progress_bar(来自 progress 包)。然而,那里的解决方案使用 doSNOW(例如我用于测试的
我正在为 R 构建一个包,我希望它能够跨平台。我在Linux下开发,函数mclapply将从 parallel 开始使用包裹。 Windows(使用 doParallel )不支持此软件包。我真的很喜
如果我运行 foreach... %dopar%在不注册集群的情况下,foreach 会引发警告,并按顺序执行代码: library("doParallel") foreach(i=1:3) %dop
我有一个包含循环的函数 myfun = function(z1.d, r, rs){ x = z1.d[,r] or.d = order(as.vector(x), decreasing=TR
我必须运行大量随机森林模型,因此我想在我的 8 核服务器上使用 doParallel 来加快进程。 然而,某些模型需要比其他模型更长的时间,甚至可能会抛出错误。我想并行运行 8 个模型,如果一个模型抛
我是一名优秀的程序员,十分优秀!