问题标签 [domc]
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.
r - 使用foreach时是否在R中导入“并行”包
我正在使用R 包foreach()
中的函数进行并行计算。foreach
除了那个功能,我认为还需要使用包registerDoMC()
中的功能doMC
。
但是,当我编写DESCRIPTION
文件时,该Imports
部分包含doMC (>= 1.3.0), foreach (>= 1.4.1)
,但是当我运行我的代码时,错误指示:找不到iter
函数。于是,我也包import
了iterators
。
好像还是报错:mclapply()
function is to be used by foreach()
,而且这个函数同时出现在和包parallel
中multicore
。我将这两个包都包含在该Imports
部分中,但是当我运行时search()
,会出现警告:
这很奇怪:即使我显式地使用了和imports
的包,但在加载自己的包后我仍然无法使用它们的功能......相反,我必须显式运行:iterators
multicore
为了在我的包中使用我自己的函数,该函数利用了并行计算。我的包裹写作有什么问题吗?太感谢了!
r - R doMC中的文件锁定
我有一些我想并行化的非并行代码。除了文件操作(写入多个文件以及写入哪个文件有点随机,并且在不同的处理器中可能相同)之外,代码应该是令人尴尬的可并行化的。使用doMC
andforeach
包,我必须处理文件锁定还是已经由包处理?我没有被束缚doMC
,我选择它是因为我仍然会对我的代码进行很多更改,而且它看起来很容易使用。
r - 一次并行处理 1 条线路
我正在阅读一个大文件,一次一行。为了加快速度,我想做的是并行处理多条生产线。但是我现在这样做的方式行不通。我从未尝试过,所以我不确定它是如何工作的。
r - 使用多核打印日志
使用 foreach 和 doMC,有没有办法在并行运行时获取cat
和/或message
打印到屏幕?例如:
谢谢,
最大限度
r - How to kill a doMC worker when it's done?
The documentation for doMC seems very sparse, listing only doMC-package and registerDoMC(). The problem I'm encountering is I'll spawn several workers via doMC/foreach, but then when the job is done they just sit there taking up memory. I can go and hunt their process IDs, but I often kill the master process by accident.
I've tried following with registerDoSEQ() but it doesn't seem to kill off the processes.
r - R并行使用doMC库:如何为后续并行进程重用内核?
在 R 中运行以下脚本时:
我想知道foreach
在运行第二个时如何重用第一个的线程,以便整个脚本始终使用 3 个内核运行。
r - 为什么使用 %dopar% 的 foreach 循环不会产生所有结果
我正在运行下面的代码,只得到 i=1 的结果。
如何获得所有结果的行矩阵 - i=2 和 i=3?
r - doMC:只和foreach一起?
我想运行一个 R 脚本来使用计算机集群上插入符号包中的反向功能消除。理想情况下,我想在多个内核上并行运行它。在一个同事的脚本中,我发现了这个doMC
包的用途。我读到这个包是和foreach
包一起使用的。但是在我得到的脚本中,只有导入的库,并且在rfe
命令之前的行中有一个registerDoMC(5)
. foreach
整个脚本中没有一次使用。
会在doMC
这里做任何事情还是只与 一起工作foreach
?
有没有办法rfe
在多个核心上分配资源消耗进程?
r - RStudio 服务器环境的有效并行后端
我在大型服务器环境中工作。例如,当我从并行库运行 detectCores() 时,我得到了 48 的打印结果。我想有效地使用这个环境。在这种环境中应该使用什么并行后端?
我四处搜索,似乎某些软件包最适合服务器环境,而其他软件包在 gui 环境中效果最好。但是像 RStudio Server 这样的混合环境呢?
r - 在使用 doMC 的并行模拟研究中需要组合功能的帮助
我想就为 foreach() 编写组合函数寻求一些帮助。考虑下面的函数:
现在我想使用 foreach() %dopar% 运行上面的代码 1000 次,并且在每次迭代中我想:
- 按原样返回 myNum
- 获取 myVec 的平均值并返回
- 获取 myMat 的 colMeans() 并返回它。
我希望 foreach() %dopar% 返回一个最终列表,包括:
- 长度为 1000 的向量,包括 1000 个 myNum,每个对应于一次迭代
- 长度为 1000 的向量,包括每次迭代中 myVec 的 1000 个平均值
- 具有 1000 行的矩阵,其中每行包含该迭代中 myMat 的 colMeans
我的理想解决方案
我理想的解决方案是找到一种 foreach() 行为与 for 完全相同的方式,以便我可以简单地定义:
但是,不幸的是,似乎不可能用 foreach() 做到这一点,所以我认为唯一的解决方案是编写一个类似于上面结果聚合的组合函数。
挑战
1)我如何编写一个组合函数来返回我上面解释的内容?
2)当我们执行 %dopar% (假设使用 doMC 包)时,doMC 是将每次迭代分配给 CPU 还是进一步将每次迭代划分为更多部分并分配它们?
3)有没有比使用 doMC 和 foreach() 更好(更有效)的方法? 想法 在这个问题中, Brian提到了一种处理包含数值的列表的绝妙方法。就我而言,我有数值以及向量和矩阵。我不知道如何在我的情况下扩展布赖恩的想法。
非常感谢您的帮助。