我们可以将计算分布到多台机器上,而无需 运行 每台机器上都有一个软件实例吗?

Can we distribute computations to multiple machines without running an instance of the software in every machine?

我是一名建筑设计专业的学生,​​使用 3D 程序(如 Blender、Rhino 等)。我通常发现计算繁重的几何体需要花费很多时间。因此,我考虑是否可以将计算分布到多台机器上以快速完成工作。

现在的问题是,我想在不实际 运行我在每台机器上使用的软件实例的情况下分发计算。 因为,我已经阅读许多分布式系统都是这样工作的,通过 运行 在每个执行工作的节点中安装一个软件实例。但是,我的问题是,我们能不能只在一台机器上 运行 'master software',并通过 运行 宁一个 'supporting software' 来使用许多机器的资源(我们写的)在每台机器上完成工作。所以它就像将 'n' 台机器视为 'one'.

有没有可能...?

不要从机器的角度来考虑它们,而是从资源的角度来考虑它们。 因此,不需要 运行 机器上的软件,您需要您的软件能够使用软件可及范围内的机器资源(比如您的 "server" 所在的网络),而不是运行正在运行的实际机器。

遗憾的是,大多数工作站不会将其显卡作为服务公开。除非你实施类似 vGPU (https://www.nvidia.com/en-us/design-visualization/technologies/virtual-gpu/) 的东西,否则我看不到你需要发生什么。

取决于 supporting software 的确切含义。无论如何,执行实际工作的代码必须驻留在每个节点中,才能完成工作。

但是,您可以使用主从架构,其中主处理分发、收集和整合结果的工作,而每个工作人员只坚持纯粹的数字运算。在这种情况下,master 和 worker 上的软件 运行 可能会有所不同,因为 master 做了更多的管理工作,但 worker 仍然拥有执行实际工作的代码。