问题标签 [snow]
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 初始化集群,但它不会将工作分配给处理器。换句话说,我可以创建工人,但它不使用 CPU 容量。我的问题是由
我编辑完成表格
我需要发挥作用来生成数据。
出现问题的功能
更具体地说,在foreach
.
感谢您的任何提示!
r - 如何指定在 R 中运行的 MPI 的核心数和节点数
我想使用 MPI 在 HPC 集群上并行运行 R。我了解包snow中的 makeCluster 函数可用于指定节点数。例如:makeCluster(2,type="MPI")
表示 2 个节点。如果不将类型指定为“MPI”,则makeCluster(2)
意味着单个节点上有 2 个核心。
有没有办法同时指定节点和核心的数量?
如果将类型指定为 MPI,默认情况下每个节点上将使用多少个内核?
r - 检查远程错误时出错 (val):5 个节点产生错误:找不到对象
我尝试进行 10 倍交叉验证并通过使用并行处理(parLapply)来估计联合模型的模型性能。我试图找出我收到错误消息的原因:“checkForRemoteErrors(val) 中的错误:五个节点产生错误:找不到对象‘周’”
代码如下所示:
函数本身被接受,但是在运行集群命令时我遇到了这个错误,它提到它无法识别函数中给出的对象..它们应该在函数本身中定义吗?还是我没有正确使用 parLapply 函数?
PS:数据如下(dfL 是一个长度为 ~ 1000 和 dfC ~ 200 的数据帧):
谢谢 :)
r - Rmpi 程序在产生正确的输出后挂起。如何以编程方式退出?
我正在使用的代码是:
我试过mpi.exit()
了,但它仍然挂起。
r - 包雪:makeCluster挂起
我在 Windows 机器上使用 R 3.4.2 上的 snow 包初始化集群时遇到问题。
当我运行以下代码时,R 在最后一行之后挂起,而没有设置集群:
版本和操作系统的规格(取自 sessionInfo()):
- R 版本 3.4.2 (2017-09-28)
- 平台:x86_64-w64-mingw32/x64(64位)
- 运行于:Windows 7 x64(内部版本 7601)Service Pack 1
- 雪:snow_0.4-2
看来我的问题与 R 的版本有关,因为如果我在同一台机器上的 R 3.3.1(2016-06-21)上运行它,一切正常(即集群已设置并且可以使用)雪包。
有人知道如何解决这个问题吗?提前非常感谢!
r - 与降雪平行 - 本地速度与远程速度
我snowfall
在我的台式机上使用并行处理没有任何问题。我想在办公室使用几台备用机器来提高计算速度,并希望在远程机器上分配并行处理。
我有它工作,但遇到一个问题,即通过远程分发比仅在本地运行或在另一台(远程)机器上手动(即本地)运行代码要慢得多。
我的测试表明,远程集群上的并行处理比本地运行慢大约 14 倍。我意识到通过网络分发会有一些开销,但我认为它不会如此低效。
示例速度测试
本地机器 - 没有并行处理
本地机器 - 并行处理
远程机器 - 直接在远程机器上运行
本地机器 - 分发到远程
我的函数显然比这更密集,并且多次调用sfSapply
. 我注意到分发到远程机器时运行时间的增加相同 - 大约是在远程机器上直接在 R 中运行时的 12 到 15 倍。
问题
我在做傻事吗?有一个更好的方法吗?
或者这是由于本地和远程机器之间的网络通信而不可避免的?
本地机器:Windows 10;R 3.4.3 远程机器:Ubuntu 17.10;R 3.4.3
r - R + snow + cluster:主人死后杀死奴隶
我在 Ubuntu 16 LTS 中使用集群(SOCK 类型)将我的 R 代码与雪并行化。下面是一个更简单的代码示例:
任务功能可能需要很长时间(几分钟或几小时),但是当我的应用程序中由于某些原因不需要继续计算任务时,应用程序无法停止所有从属进程。我可以杀死主 R 进程,但 R 从进程会一直保留到它们完成(即在一段时间内继续使用 CPU)。
我无法杀死从属进程,因为它们的父进程是系统一(PPID = 1),所以我不知道哪些从属进程与我要停止的主进程相关。我还尝试使用一种中断让主 R 进程执行stopCluster
函数而不成功。
经过深度搜索,我没有找到解决方案。那么,有没有人知道阻止/杀死奴隶的方法或有解决这个问题的想法?
提前致谢!
r - 将不同的 data.tables 子集导出到集群中的每个节点
我正在编写一个处理几个非常大的 data.tables 的函数,我想在 Windows 机器上并行化这个函数。
我可以使用snow
包来执行此操作clusterExport
,以便为集群中的每个节点创建每个 data.tables 的副本。但是,这不起作用,因为它使用了太多内存。
我想通过将 data.tables 的不同子集导出到每个节点来解决此问题,但是,我看不到如何在雪包中执行此操作。
这是一个有效但内存效率低的代码的玩具示例:
这是一个不起作用的代码示例,但解释了我们希望如何将子集分发dd
到节点:
r - 使用 np 和降雪并行估计多个非参数模型
我正在尝试使用降雪量来估计多个非参数模型。到目前为止,我没有任何问题,但现在我遇到了一个我觉得无法解决的问题。
在下面的 MWE 中,我们简单地估计一个节点上的一个模型。在我的应用程序中,结构是相同的。当我尝试绘制模型结果或使用np
包中的另一个函数(如npsigtest()
)时,我收到错误
is.data.frame(data) 中的错误:..1 在不正确的上下文中使用,没有 ... 要查看
有谁知道是什么导致了这个问题?我对另一种关于并行估计多个模型的方法持开放态度。
MRE: