问题标签 [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 - 如何在 makeCluster 中指定并行或雪中的选项
我在 Windows 上使用parallel
or包,该函数可以带一个参数来指定它在工作人员上执行的位置。如果我希望它被执行为什么选项?snow
makeCluster
rscript
Rscript
--vanilla
编辑:运行makeCluster(2, rscript='pathToMyRScript --vanilla')
不适用于我的盒子
r - 并行的 R 大型数据帧转换
基本上我有一个大数据框:10,000,000x900(行,列),我正在尝试并行转换每列的类。最终结果需要是一个 data.frame
这是我到目前为止所得到的:
假装df
是已经定义的数据框,所有列都是数字和字符类的混合
cl.out
是我想要的列表,除了我需要的是作为 data.frame 类
所以这就是我卡住的地方......我是否尝试将 cl.out 的所有元素组合到一个不会并行的 data.frame 中?(慢,时间是个问题)
我可以用不同的包实现其他东西吗?(前锋?)
我是否必须对一些 c 进行硬编码才能有效地完成这项工作?
任何帮助,将不胜感激。
谢谢,
r - R snow可以创建的slave数量有限制吗?
我正在尝试在 3 个不同的主机上构建一个包含大约 120 个进程的雪集群。这些是 AMD 服务器,每个服务器有 48 个内核。在构建了大约前 90 个从站后,我收到了这个错误:
我检查了我的系统限制,没有发现任何问题:
雪可以创建的进程数量是否有限制?
r - 雪如何将列表元素分配给工人?
调用 parLapply() 时向每个工作进程发送了多少列表元素?例如,假设我们在雪 SOCK 集群上有一个包含 6 个元素和 2 个工作人员的列表。parLapply() 是在一次发送调用中向每个工作人员发送两个列表元素,还是每次发送一个元素?
我想最小化我的集群通信开销(我有很多列表元素可以被每个 CPU 相对快速地处理),从我在 htop CPU 仪表上看到的情况来看,它看起来像雪,它当时正在发送一个列表元素。是否可以设置在一次发送调用中调度的列表元素的数量?
r - 使用 R 脚本排列作业
我有一个 R 脚本,目前在我们的 linux HPC 上用作交互式会话。
脚本本身基于一组/项目列表进行测试,并使用雪运行 10,000 个测试排列以创建一个集群以对排列进行并行化(为了运行它,我登录到整个节点并使用我可用的所有处理器) IE:
对于列表中的每个项目,使用排列的测试大约需要 3 小时。我有大约 1500 个项目要运行,所以我想:
- 制作一个可以生成大量 R my 脚本的脚本,按顺序编号,每幅画在 1-2 个项目上,每个都可以使用数组作业包装器单独提交。
- 或者更聪明的东西,这意味着我不必生成 750-1500 个 R 脚本,但结果相同。
所以我知道如何在 BASH 脚本中提交 R 脚本,但我不知道如何在 R 脚本中迭代列表。可能这真的很容易,这可能就是为什么我找不到相关的东西(或者我使用了错误的术语?)欢迎任何指针。
r - 如何使对象可用于雪包中的节点以进行 R 并行计算
这是我觉得很难理解的一点:
由于参数的惰性求值,第一个函数不起作用。但什么是惰性评估?执行 mult() 时,不需要评估 x 吗?第二个有效,因为它强制 x 被评估。现在最奇怪的事情发生在第三个函数中,除了让 mult() 接收 x 作为一个额外的参数之外什么也没做,突然一切都正常了!
另一件事是,如果我不想在调用 parLapply() 的函数中定义所有变量和函数,该怎么办?以下绝对行不通:
我可以将所有这些变量和函数作为参数传递:
或者我可以使用clusterExport(),但是当有很多对象要导出时会很麻烦。有没有更好的办法?
r - 工人未正确返回的结果 - 雪 - 调试
我正在使用 R 中的包在Linux 操作系统上运行多台机器 (3)snow
的集群上执行一个函数。SOCK
我尝试使用 和 运行parLapply
代码clusterApply
。
如果工作程序级别出现任何错误,工作程序节点的结果将无法正确返回给主节点,这使得调试变得非常困难。我目前正在使用独立记录工作节点的每个心跳futile.logger
。似乎结果是正确计算的。但是当我尝试在主节点上打印结果时(在收到工作人员的输出后)我收到一个错误,上面写着Error in checkForRemoteErrors(val): 8 nodes produced errors; first error: missing value where TRUE/FALSE needed
.
有没有办法更深入地调试工人的结果?
r - 调用序列化 R 函数时出错
我正在将以下包加载到 R 中:
我“并行化”代码很长一段时间,但最近我在代码运行时遇到了间歇性停止。错误是:
我有根据的猜测是,我使用以下命令打开的连接可能已过期:
查看 makeCluster 手册页,我看到默认情况下连接仅在 30 天后过期!我可以设置 options(error=recover) 以便在代码停止时即时检查连接是否打开,但我决定之前发布这个一般性问题。
重要的:
1)错误确实是间歇性的,有时我重新运行相同的代码并且没有错误。2)我在同一台多核机器(Intel/8 核)上运行所有东西。所以这不是集群之间的通信(网络)问题。3) 我是笔记本电脑和台式机(64 核)上 CPU 和 GPU 并行化的重度用户,不幸的是,这是我第一次遇到此类错误。
有人有相同类型的错误吗?
根据要求,我提供了我的 sessionInfo():
@SeteveWeston,在其中一个调用中的错误下方(同样是间歇性的):
添加更多信息。我设置了 options(error=recover) 并提供了以下信息:
我试图检查连接是否仍然可用,并且有:
由于连接已打开并且错误 0 表示 R 版本(正如@SteveWeston 所指出的那样),我真的无法弄清楚这里发生了什么。
编辑1:
我解决问题的方法
就传递给函数的参数而言,代码很好。因此,@MichaelFilosi 提供的答案并没有带来太多好处。无论如何,非常感谢您的回答!
我无法确切地找到呼叫出了什么问题,但至少我可以解决这个问题。
诀窍是将每个并行线程的函数调用参数分解成更小的块。
神奇地错误消失了。
让我知道这是否对您有用!
r - Windows 集群上的并行 R
我有一个在后端运行一些节点的 Windows HPC 服务器。我想使用后端的多个节点运行 Parallel R。我认为 Parallel R 可能在 Windows 上使用 SNOW,但不太确定。我的问题是,我还需要在后端节点上安装 R 吗?假设我想使用两个节点,每个节点 32 个核心:
现在,它只是挂起。
我还需要做什么?后端节点是否需要某种 sshd 运行才能相互通信?
r - R:在doParallel /降雪中制作集群挂起
我在 LAN 上有两台服务器,全新安装了 Centos 6.4 minimum 和 R 3.0.1。两台计算机都安装了 doParallel、snow 和 snowfall 软件包。
服务器可以很好地相互连接。
当我尝试在任一方向创建集群时,我会提示输入密码,但在输入密码后,它只是不确定地挂在那里。
我该如何解决这个问题?
编辑:
我还尝试在上述计算机上调用 makePSOCKcluster ,该计算机的主机能够用作从机(来自其他计算机),但它仍然挂起。那么,是否可能存在防火墙问题?我还尝试将 makePSOCKcluster 与端口 22 一起使用:
这是我的 iptables