【问题标题】:distcc like framework for Windows [closed]类似 Windows 的 distcc 框架 [关闭]
【发布时间】:2013-05-15 05:47:10
【问题描述】:

我们正在运行一些可能需要大量时间(甚至几天)的繁重计算。我们的架构类似于编译器(编译器 + 链接器):

  • 需要计算的许多数据块(它们由 solver.exe 可执行文件计算) - 类似于 编译器
  • 一个收集器应用程序,将所有结果组合成最终形式 - 类似于 链接器

我看到distcc 在网络上的分发非常好。不幸的是 distcc 在 unix 环境下工作。

是否有一个平台可以提供类似于 distcc 的功能,但在 Windows (7+) 平台下?

后期编辑:添加了 C++ 标签,因为如果存在这样的框架,我们将从我们的 C++ 编码经验中受益。

【问题讨论】:

  • 你可以在 Cygwin 下的 Windows 机器上使用 distcc。
  • 你在使用 Visual Studio 吗?
  • @Adrian 我可以用,是的。
  • 但要明确一点,您不是在为通用的“工作分配器”寻找专有的“C++ 编译器/链接器”解决方案吗?
  • 我不在 Incredibuild 或 Electric-Cloud 工作。如果您没有复杂的跨作业依赖关系,或者如果您可以自动生成依赖关系,即job1: job2 job3 等,那么我会选择 Incredibuild。我一直在使用 Electric-Cloud,唯一的优势是——对于我的 C++ 项目,makefile 写得不好,这是必要的,也是一个很大的优势——EC 可以动态解决作业之间的隐式依赖关系。

标签: c++ windows distributed-computing distcc


【解决方案1】:

我不知道任何适用于 Windows 的免费/开源解决方案,但有两种商业产品可能会有所帮助:

ElectricAccelerator 来自 Electric Cloud。 ElectricAccelerator 最初旨在加速软件构建,但可以将任意进程分发到计算机网络以并行执行。根据您所说的,使用 Accelerator 来满足您的需求应该很简单。它适用于 Linux 和 Windows。

Xoreax Incredibuild 最初也是为加速软件构建而设计的,但与 Accelerator 一样,Incredibuild 可以分发任意进程。它仅在 Windows 上可用。

免责声明:我是 ElectricAccelerator 的架构师

【讨论】:

  • @INS 如果您正在寻找一个简单的“工作分配器”,那么 Incredibuild 就足够了。如果您只需要一个工作分配器,ElectricAccelerator 会更加昂贵且不必要。
  • @Adrian ElectricAccelerator 提供现在称为ElectricAccelerator Huddle 的免费增值服务,它使用即用即付或“基于实用程序”的定价模式——您只需为节省的时间付费。我们只收到了关于这种计费模式的可负担性和“公平性”的良好反馈。
  • @EricMelski 是的 Huddle 很棒,我正在评估它,但只有在 (a) 您需要并行执行 makefile 并且 (b) makefile 具有隐式依赖关系时才需要它,即没有列出所有内容在目标的先决条件中。否则,Incredibuild 会做同样的事情,而且成本要低得多。
  • @INS 我定价了 Huddle 和 Incredibuild,对于我的项目来说,每年要花费数千美元。但是对于 Huddle 所做的 - 在 makefile 中动态发现依赖 - 这是一个公平的价格;我们继承的 makefile 不能与 make--jobs=N 一起使用,因此不能与 Incredibuild 一起使用,因为它要求您的 makefile 是“并行就绪”的。但是,如果您不需要该功能,因为(1)您的 makefile 编写正确或自动生成,或者(2)您的“工作”没有相互依赖关系。 . .那么 Huddle 就太过分了。
【解决方案2】:

FastBuild 是免费和开源的。它适用于 Windows/Linux/OSX。它有自己的语言来构建配置文件。您可以在本地网络上设置工作人员以及连接到工作人员并向他们交付工作的客户端。 FastBuild 适用于 C++ 并且可能适用于任何语言,因为您可以设置任何编译器可执行文件和依赖项(编译器分发给工作人员,因此您无需在每台机器上设置编译器)。我发现的唯一缺点是,为了将工作人员与客户端连接起来,您需要使用可写文件夹设置 Windows 网络共享,我认为这是设置构建集群的非常不方便的方法,更好的方法是编写带有列表的配置服务器,也许它会在未来得到修复。此外,FastBuild 集群只能在本地网络上运行,可以通过互联网设置多台计算机,这应该不难实现,互联网连接也应该加密以保护秘密来源。

【讨论】:

  • 请不要回答公然离题的问题。
猜你喜欢
  • 2013-11-04
  • 2011-10-30
  • 2015-02-20
  • 1970-01-01
  • 1970-01-01
  • 2013-03-25
  • 2011-01-15
  • 2012-04-08
  • 2011-08-19
相关资源
最近更新 更多