问题标签 [mclapply]
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 - 在 R 中创建任务列表时如何传递函数参数?
我正在尝试使用 mclapply 创建要在 R 中并行运行的任务列表。
其中 y 是例如:
创建列表时,它使用参数执行函数,而不是仅将其存储为列表。(所以这是在实际到达之前mclapply
。)如果我使用y
没有任何参数的函数,这种方法运行良好:
其中 y 是例如:
那么如何在不执行函数的情况下将带参数的函数存储在列表中(直到我在 mclapply 中告诉它们)?
r - R tm In mclapply(content(x), FUN, ...) : 所有计划的核心在用户代码中遇到错误
当我将以下代码运行到倒数第二行时,我收到了警告消息:
在 mclapply(content(x), FUN, ...) 中:所有计划的核心在用户代码中遇到错误
当我运行最后一行时,我得到了
"UseMethod(\"words\") 中的错误:\n 没有适用于 'words' 的方法应用于类 \"character\"\n" attr(,"class") "try-error" attr(, “健康)状况”)
以下链接是一个可重现的示例,我们可以将其复制/粘贴到 R 中并运行。
https://github.com/weijia2013/mclapply-issue/blob/master/codes
我刚开始学习 R,我会很感激你的帮助。
r - 如何在“mclapply”中转换“for”?
我有这个:
如何为“ScriptR”函数传递索引“i”?
Tks
r - 将 mclapply() 应用于写入全局变量的函数
我正在尝试使用parallel::mclapply
以下代码来加快计算速度:
执行上面的代码时,一切都很好。如果使用 mclapply(如下),结果与我想要获得的结果相差甚远:直方图都是错误的。
我觉得将并行计算应用于此功能时,我缺少一些重要的东西。
r - 如何在并行包中跟踪 R 中 mclapply 的进度
我的问题与这个问题有关。然而,上面提到的问题使用multicore
包被替换为parallel
. 响应中的大多数功能无法在parallel
包中复制。有没有办法跟踪进度mclapply
。在查看mclapply
文档时,有一个名为 的参数mc.silent
,我不确定这是否能够跟踪进度,如果可以,我们如何以及在哪里可以看到日志文件?我在ubuntu
linux操作系统上运行。请参阅下面的一个可重复的示例,我想对其进行改进。
任何帮助将不胜感激。
r - R、mclapply 的环境及移除变量
我无法理解 mclapply 的行为(或者可能是其他东西)。
我做类似的事情:
loadResult
从之前保存的 BatchJob 会话中加载一个结果。因此,该res
对象需要 ~170MB(大约所有 100 个对象的大小都相同 +/-5MB)。执行这段代码时,内存占用符合预期:170MB*20= ~3.5GB(我使用了 20 个内核)。第二次执行这段代码时,我的机器会吸入大量内存(超过可用内存 - 所以我停止执行)。这是预期的,因为再次为每个孩子分叉了完整的环境,而我的环境现在有大约 10GBmclapply
的大变量。opt.Models
因此需要 10*20=200GB。
当我删除 opt.Models, 时rm(opt.Models)
,我仍然遇到同样的问题。mclapply 消耗的内存多于可用内存(顺便说一句:90GB)。那么,mclapply fork 哪个环境,或者 opt.Models 没有完全消失?我看不到它使用ls()
.
也许你们中的一个人已经观察到类似的事情。
最好的祝福,
马里奥
r - R中的应用计算中的非线性
我已经编写了相对庞大的函数(大约 500 行;包括一些数据节省、学习 ANN 并进行预测),它的输出是 data.frames 列表,但问题是当输出应该是更大的列表时(例如 30 000 个数据.frames 在这个列表中)。我以这种方式使用该功能
当我将它用于
大约需要 100 秒,每秒 10 个数据帧。但是当我使用它时,可以说
它显着减慢,大约需要 6500 秒。随着向量 c() 的增加,它越来越慢。
我试图通过减少 FUN 来解决它(对小向量 c() 的影响不大,但在更大的计算上也有同样的问题)
A 还尝试通过创建 for 循环来修复它,该循环计算 200 个案例并将它们放入空列表中,然后再计算 200 个计算,加入这个空列表(它还不是空的,它涉及最后一次计算的帧),然后再次直到最后都一样。
但结果是一样的,它再次急剧减速。我想该错误将在环境中的某个地方或某些内存问题中。有没有人有这方面的经验?任何建议如何解决它?计算仍然相同,所以我不明白为什么它对较小的计算效果很好,而对大型计算则减慢。谢谢你的建议。
r - 拆分数据以与 R 尴尬地并行?
我有一个大的 RDS 文件,我想使用 R 并行处理它。加载时该文件需要 7.3 GB 的内存。
如果我尝试使用多个内核,R 会因为内存不足而崩溃。有没有办法告诉 mclapply 使用共享内存而不是复制对象?
这是我拥有的代码:
我在具有 32 个内核和 64GB 内存的 linux 机器中运行它。
谢谢!
r - R中的快速ANOVA计算
我有一个具有以下维度的数据框:
这些列代表我想要运行 ANOVA 的变量(即,我想要运行 433,685 ANOVA)。样本大小为 974。最后一列是“组”变量。
我想出了 3 种不同的方法,但由于测试的数量,所有方法都太慢了。
首先,让我们生成一个小的练习数据集来玩:
方法 1(基于'sapply'):
方法2(基于'parallel'包中的'mclapply'):
方法 3(基于'cbind'-ing LHS):
在实践数据集中,方法 3 是明显的赢家。但是,当我对实际数据执行此操作时,使用方法 3 仅计算 10(433,685)列需要很长时间:
不知道为什么我的实际数据需要更长的时间。我可以访问具有 16 个以上内核和 72GB RAM 的 Linux 集群。
有什么方法可以更快地计算吗?