我们正在运行一些繁重的计算,可能会花费很多时间(甚至几天)。我们有一个类似于编译器的架构(编译器+链接器):
- 需要计算的许多数据块(它们由solver.exe可执行文件计算)-类似于编译器
- 一个将所有结果组合成最终形式的收集应用程序-类似于链接器
我看到的是distcc很好地完成了网络上的分发。遗憾的是,distcc只能在unix环境下工作。
是否有一个平台可以提供类似distcc所做的事情,但在Windows(7+)平台?
后编辑:添加c++标签,因为如果这样的框架存在,我们将受益于我们的c++编码经验。
我不知道有什么免费/开源的Windows解决方案,但有两个商业产品可能会有所帮助:
ElectricAccelerator from Electric Cloud。ElectricAccelerator最初是为了加速软件构建而设计的,但它可以将任意进程分配到计算机网络中并行执行。根据您所说的,使用Accelerator满足您的需求应该是很简单的。Linux和Windows都可以使用。
Xoreax Incredibuild最初也是为了加速软件构建而设计的,但是像Accelerator一样,Incredibuild可以分发任意进程。它只适用于Windows。
免责声明:我是ElectricAccelerator的架构师
FastBuild是免费和开源的。适用于Windows/Linux/OSX。它有自己的构建配置文件语言。您可以在本地网络上设置worker和一个连接到worker并向它们交付工作的客户端。FastBuild适用于c++,并且可能适用于任何语言,因为您可以设置任何编译器可执行文件和依赖项(编译器分发给工作器,因此您不需要在每台机器上设置编译器)。我发现的唯一缺点是,为了将工作人员与客户端连接起来,你需要设置一个带有可写文件夹的Windows网络共享,我认为这是非常不方便的设置构建集群的方式,更好的方法是编写一个配置服务器列表,也许它将在未来得到修复。此外,FastBuild集群只能在本地网络上运行,如果可以通过互联网设置许多计算机,它应该不难实现,而且互联网连接应该加密以保护秘密来源。