问题标签 [doparallel]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
3146 浏览

r - 仅在包的说明中导入foreach时如何使用%dopar%

当只在包的描述中导入(不依赖)foreach时,如何避免在包的函数中“找不到函数“%dopar%””?当我在函数中使用 foreach::foreach 时,有没有类似 foreach::%dopar% 的方法?谢谢你。

代码如:

在功能

在描述中

0 投票
3 回答
1316 浏览

r - 打开时,Rstudio 启动许多进程(在上一个会话中从并行包开始)——如何杀死它们?

我已经通读了这个 SO 问题和答案(R 并行计算和僵尸进程),但它似乎并没有完全解决我的情况。

我有一台运行 Mac OS X 10.10.3、R 3.2.0 和 RStudio 0.99.441 的 4 核 MacBook Pro。

昨天,我正在试用“foreach”和“doParallel”包(我想在我正在处理的包中使用它们)。我这样做了:

我很清楚,在我的 4 核机器上拥有 14 个进程没有意义,但该软件实际上将在 16 核机器上运行。这时我的电脑停了下来。我打开活动监视器,发现 16 个(或更多,也许?)R 进程。我试图强迫他们从活动监视器中退出——没有运气。我关闭了 RStudio,这杀死了所有的 R 进程。我重新打开了 RStudio 并重新启动了所有 R 进程。我重新启动计算机并重新启动 RStudio,然后重新启动所有 R 进程。

如何在不重新启动所有这些进程的情况下启动 RStudio?

编辑:我忘了提到我还重建了我当时正在处理的包(所有进程可能在构建期间一直在运行)

EDIT2:另外,我不能 StopCluster(cl) 因为 cl 不再在环境中......我关闭了那个 R 会话。

EDIT3:当我打开 R.app(R 随附的 R GUI)或在终端中打开 R 时,不会出现此类问题。所以我认为它必须与RStudio相关。

EDIT4:打开 RStudio 和开始所有这些不需要的进程之间似乎存在随机延迟。在 15 秒到 2 分钟之间。

EDIT5:似乎这些过程只有在我打开它们开始的项目后才开始。

EDIT6:我一直在挑选 .Rproj.user 文件寻找要删除的东西。我删除了 ctx、pcs 和 sdb 中的所有文件(但没有删除目录)。问题仍然存在。

EDIT7:当我在命令行运行“killall R”时,它会杀死所有这些进程,但是当我重新启动 RStudio 并重新打开项目时,所有进程都会重新启动。

EDIT8:我使用“killall -s R | wc -l”发现R进程的数量在项目打开时不断增长。它升至 358,然后我运行“killall R”,因为我的计算机发出可怕的声音。

EDIT9:RStudio 目前完全无法使用。每次我“killall R”时,它都会在 15 秒内重新启动所有进程。

EDIT10:当我启动一个也启动大量 R 进程的构建时——最后一次检查为 109。当构建显示“为延迟加载准备包”时,这些过程都会启动。在这一点上,计算机几乎停止运行。

EDIT11:我删除了 .Rproj 文件(实际上只是将其作为备份移动)和 .Rproj.user 目录。我在 RStudio 中使用了“从目录创建项目”。当我打开那个新项目时,我仍然得到相同的行为。当我打开一个不包含在 .Rproj 文件或 .Rproj.user 目录中的任何地方的项目时,RStudio 会做什么!?我花了一整天的时间来解决这个问题....:(

0 投票
0 回答
833 浏览

r - 函数(i)中的错误:任务 2 失败 - R 上的“非字符参数”

funcion_2(i) 中的错误是什么:任务 2 失败 - “非字符参数”??

我正在尝试创建一个 list 列表,从名为“lista”的 xml 文件中提取单词。

lista_xmls 是...

类(lista_xmls[1])

[1] “性格”

funcion_2 是...

Rstudio 响应 funcion_2(i) 中的错误:任务 2 失败 - “非字符参数”,但我什至不知道这是什么意思,是什么原因造成的,也不知道如何克服它?

测试 funcion_2 它确实返回了一个带有单词的列表,所以我相信错误在 %dopar% 中,它不适用于 %do% ,也不...

results2 <- foreach(i=lista, .packages='XML') %dopar% funcion_2(as.character(i))

这是我在 Stack 中的第一个问题,我是 R 编程的初学者

0 投票
0 回答
648 浏览

r - 何时在 R 中使用并行编程将函数应用于每一行

有很多方法可以将函数应用于每一行。

这里有一些我知道的方法:

方法一

方法二

方法三

方法四

在前 3 种方法中,我认为更快的是第三种方法。但问题是:方法 4(并行方法)何时比方法 3 快?有没有办法在运行所有代码之前理解它?

0 投票
1 回答
2768 浏览

r - 在 R 中将 fread 与 foreach 和 doParallel 一起使用

我在 ubuntu 14.04 的 R 3.2.0 中使用freadforeach打包doParallel。以下代码工作得很好,即使我没有使用registerDoParallel.

但是,当切换到 Windows 7 时,无论有没有“registerDoParallel”,它都不再工作。

'doSNOW' 包也不起作用。下面是错误信息。

有没有人有类似的经历?


一个后续问题是关于嵌套的foreach。似乎以下行不通。

   

0 投票
1 回答
140 浏览

r - 使 R 计算具有多个 CPU 内核

让我们从上一个问题中做一个简单的练习。

在 R 中输入以下代码,我们最终将P1变量输出为:

我们可以得到我们的结果:

我注意到这是 CPU 的低百分比,所以我调用doParallelpackage 并尝试运行loop并希望输出相同的结果(即 save P1[i])。但我收到一个错误:

GenMatch是找不到的。有什么建议可以改进我的代码吗?

0 投票
1 回答
2014 浏览

r - RPostgreSQL 连接在使用 doParallel clusterEvalQ 启动后立即过期

我正在尝试设置一个并行任务,每个工作人员都需要进行数据库查询。我正在尝试为每个工作人员设置一个连接,如this question中所示,但每次我尝试它都会<Expired PostgreSQLConnection:(2781,0)>为我注册的工作人员返回。

这是我的代码:

如果我尝试运行我foreach的错误,它会失败task 1 failed - "expired PostgreSQLConnection"

当我进入 postgres 服务器状态时,它会显示所有已创建的活动会话。

我在与我的主 R 实例中的 postgres 交互时没有任何问题。

如果我跑

然后它将返回所有客户端端口。它没有给我过期的通知,但是如果我尝试运行我的 foreach 命令,它将失败并出现相同的错误。

编辑:

我已经在 Ubuntu 和 2 台 Windows 计算机上尝试过,它们都给出了相同的错误。

另一个编辑:

现在3台windows电脑

0 投票
1 回答
1661 浏览

r - 具有两个参数的并行 foreach

我有这个代码:

结果

但我想要:10、20、30、20、40、60

0 投票
1 回答
797 浏览

r - R 中的 doParallel - 提高了速度,但 CPU 并不总是被利用到 90%-100%

我正在尝试对它们运行许多线性回归和诊断并加快速度,我正在使用 R 编程语言中的doParallel包。

我遇到了一个有趣的问题。尽管我已经看到了性能的提升——正如预期的那样——CPU 的使用并不一致

例如,如果我运行我的代码,所有内核的 CPU 利用率可能为30-40%

如果我再次运行我的代码,CPU 利用率可能会上升到90%,而同时我没有进行任何更改。

在这两种情况下,我都不会同时运行其他任何东西。

有没有解释为什么核心一次使用 30%,另一次使用 90% 而我没有改变任何东西?

我正在运行 Windows XP、4GB 或 RAM,并且有一个 Inter(R) Xeon(R) CPU X5650 @ 3.67GHz。

我的代码看起来像:

0 投票
1 回答
1156 浏览

r - R foreach并行循环值未保存

执行以下虚拟代码时:

我收到以下输出:

为什么没有保存循环f中分配的值?foreach

特别是,为什么在循环之后f[1]f[2]等于零?foreach

谢谢!