gpt4 book ai didi

r - 创建一组同事的 Windows 7 PC 以在 R 中进行并行处理?

转载 作者:行者123 更新时间:2023-12-04 00:47:32 28 4
gpt4 key购买 nike

我正在 R 中运行 termstrc yield 曲线分析包,涵盖 5 个不同国家的 10 年每日债券价格数据。这是高度计算密集型的,每个国家/地区在标准 lapply 上需要 3200 秒,如果我在 2009 i7 mac 上使用 foreach 和 %dopar%(带 doSNOW),使用所有 4 个内核(8 个带超线程),我将其归结为850 秒。每次添加一个国家/地区(计算国家间利差)时,我都需要重新运行此分析,而且我有 19 个国家/地区待处理, future 还会有更多的信贷 yield 曲线。花费的时间开始看起来像一个主要问题。顺便说一下,有问题的 termstrc 分析函数是在 R 中访问的,但是是用 C 编写的。

现在,我们是一个 12 人的小公司(阅读预算有限),全部配备 8GB 内存,i7 PC,其中至少一半用于日常文字处理/电子邮件/浏览风格的任务,即使用 5%发挥他们的最大作用。它们都使用千兆(但不是 10 千兆位)以太网联网。

我是否可以使用 MPI 对这些未充分利用的 PC 进行集群并在它们之间运行我的 R 分析?网络会受影响吗? yield 曲线分析函数的每次迭代大约需要1.2秒,所以我假设如果并行处理的粒度是将整个函数迭代传递给每个集群节点,与千兆以太网滞后相比,1.2秒应该相当大?

这能做到吗?怎么样?对我的同事会有什么影响。当我对他们的机器征税时,他们可以继续阅读他们的电子邮件吗?

我注意到 Open MPI 似乎不再支持 Windows,而 MPICH 似乎支持。如果有的话,你会用哪个?

也许在每台 PC 上运行一个 Ubuntu 虚拟机?

最佳答案

是的,你可以。有多种方法。最简单的方法之一是使用 redis作为后端(就像在 Ubuntu 机器上调用 sudo apt-get install redis-server 一样简单;有传言说你也可以在 Windows 机器上有一个 redis 后端)。

通过使用 doRedis包,你可以很容易地在 redis 中的任务队列上排队作业,然后使用一个、两个、......空闲的工作人员来查询队列。最重要的是,您可以轻松混合操作系统,所以是的,您同事的 Windows 机器符合条件。此外,您可以使用一个、两个、三个……您认为合适和需要的客户端,并扩大或缩小规模。队列不知道也不关心,它只是提供工作。

最重要的是,doRedis 中的小插图有混合 Linux 和 Windows 客户端的工作示例,以使引导示例运行得更快。

关于r - 创建一组同事的 Windows 7 PC 以在 R 中进行并行处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15039039/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com