我们可以在不在每台机器上都运行软件实例的情况下将计算分配到多台机器吗?

时间:2019-01-08 08:54:44

标签: python networking network-programming distributed-computing

我是建筑设计专业的学生,​​从事3D程序(如Blender,Rhino等)的工作。我通常会发现计算重型几何需要很多时间。因此,我考虑过是否可以将计算分配到许多机器上,以快速完成工作。

现在的问题是,我想分发计算而没有实际运行我在每台机器上使用的软件的实例。因为,我读到很多分布式系统都可以这样工作,通过在执行此任务的每个节点中运行该软件的实例。但是,我的问题是,我们能否仅在一台计算机上运行“主软件”,并且通过在每台计算机上运行“我们编写的”支持软件”来使用多台计算机的资源来完成工作? 。因此,就像将“ n”台机器视为“一台”一样。

有可能...吗?

2 个答案:

答案 0 :(得分:0)

不要从机器方面来考虑它们,而是从资源方面来考虑。 因此,不需要在计算机上运行软件,而是需要您的软件能够利用软件可及范围内的计算机资源(例如“服务器”所在的网络),而不是要在其上运行的实际计算机上使用资源。 。

不幸的是,大多数工作站不会将其图形卡作为服务公开。除非您实现vGPU(https://www.nvidia.com/en-us/design-visualization/technologies/virtual-gpu/)之类的东西,否则我看不到您需要做什么。

答案 1 :(得分:0)

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

但是,您可以使用master-worker体系结构,其中master负责分配,收集和集成结果的工作,而每个worker都只是坚持纯数字运算。在这种情况下,由于主服务器执行更多的管理工作,因此在主服务器和工作服务器上运行的软件可能会有所不同,但是工作人员仍然拥有执行实际工作的代码。

相关问题