Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 类似distcc的Windows框架_C++_Windows_Distributed Computing_Distcc - Fatal编程技术网

C++ 类似distcc的Windows框架

C++ 类似distcc的Windows框架,c++,windows,distributed-computing,distcc,C++,Windows,Distributed Computing,Distcc,我们正在进行一些繁重的计算,这可能需要很多时间(甚至几天)。我们的体系结构类似于编译器(编译器+链接器): 需要计算的许多数据块(它们由解算器.exe可执行文件计算)-类似于编译器 一个gatherer应用程序,它将所有结果组合成最终形式-类似于链接器 我所看到的是,通过网络进行分发非常好。不幸的是,distcc在unix环境下工作 是否有一个平台可以提供类似于distcc的功能,但在Windows(7+)平台下 后编辑:添加C++标签,因为如果存在这样的框架,我们将从我们的C++编码体验

我们正在进行一些繁重的计算,这可能需要很多时间(甚至几天)。我们的体系结构类似于编译器(编译器+链接器):

  • 需要计算的许多数据块(它们由解算器.exe可执行文件计算)-类似于编译器
  • 一个gatherer应用程序,它将所有结果组合成最终形式-类似于链接器
我所看到的是,通过网络进行分发非常好。不幸的是,distcc在unix环境下工作

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


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

< P>我不知道Windows有任何免费/开源解决方案,但是有两个商业产品可能有帮助:

来自电子云。ElectricAccelerator最初设计用于加速软件构建,但可以将任意进程分发到计算机网络以并行执行。根据您所说的,根据您的需要使用加速器应该很简单。它在Linux和Windows上都可用

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


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

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

您可以在Cygwin下的Windows Box上使用distcc。您使用的是Visual Studio吗?@Adrian I可以使用它,是的。但要明确的是,你不是在为一个通用的“作业分发者”寻找一个专用的“C++编译器/链接器”解决方案?我既不在Incredibuild也不在Electric Cloud工作。如果您没有复杂的跨作业依赖项,或者如果您可以自动生成依赖项,即
job1:job2 job3
等,那么我将使用incredbuild。我一直在使用电云,唯一的优势是,对于我的C++项目,写的文件很糟糕,这是必要的,也是一个大的问题。EC可以动态地解决JasksIn之间的隐式依赖关系。如果你只需要一个工作分配者,ElectricAccelerator的价格就更高,也没有必要了。@Adrian ElectricAccelerator现在有一个名为freemium的产品,它使用现收现付或“基于效用”的定价模式——你只需为节省的时间付费。对于这种计费模式的可承受性和“公平性”,我们只得到了很好的反馈。@EricMelski yes Huddle很棒,我正在评估它,但只有在以下情况下才需要它:(a)您需要并行执行makefiles;(b)makefiles具有隐式依赖性,即并非所有内容都列在目标的prereq中。否则,IncredBuild也会做同样的事情,而且成本要低得多。@INS我把Huddle和IncredBuild的价格计算出来了,对于我的项目来说,每年要几千美元。但是对于Huddle所做的事情——makefiles中的动态依赖发现——这是一个公平的价格;我们继承的makefiles不能与
make
--jobs=N
一起使用,因此不能与IncredBuild bc一起使用。它要求您的makefile为“并行就绪”。但如果您不需要该功能,因为(1)您的makefile编写正确或自动生成,(2)您的“作业”没有相互依赖性。那么挤在一起就太过分了。请不要回答公然离题的问题。