是否有可以使附近设备协同工作的软件?

迄今为止最大的原因是,无论您的计算机速度有多慢(假设计算机还没有使用20年,),您拥有的所有其他产品都将变得更慢,而且它们也不会增加太多,也不值得所有可观的花费实施此技术上的麻烦。

如果您现在拥有一台相当普通的计算机,那么大约是2.5 GHz四核,采用的是某些最新的英特尔架构。

如果您的手机或平板电脑比较普通,则可能会配备1.5 GHz四核Cortex-A9。

在结构上,Cortex-A9的效率约为每个时钟x86的1/4(这意味着它们每个时钟执行的效率更低),因此结合起来,它们将产生相当于2.5 + 1.5 / 4 = 2.8 GHz四倍的频率。 但是,当您必须在多个设备之间协调工作时,您必须做一些额外的工作。 这取决于您正在进行的工作,但是现在可能只有2.6 GHz。 真的不值得。

购买更快的CPU便宜得多。 CPU并不那么昂贵。

再加上马修·赖(Matthew Lai)的观点,说您不仅有几个这样的设备,例如您碰巧有20个,仅出于论证的目的,并且您确实有意让它们互相帮助,您可以实现一些东西像MPI一样,它们通常可在android / ios上使用,并与PC协同工作以解决方案。 但是,所涉及的复杂性并不能证明实施它的开销。 仅仅说这已经存在,并不能以指数方式帮助解决问题。

可以这样做,但是要使其工作起来既昂贵又复杂。

首先,您需要解决一个问题,该问题可以通过某种方式分解为多个独立的块。

在某些类问题中,这很容易实现–存在自然的计算“块”,结果无论如何都不会影响其他结果–而其他问题则更加困难。

接下来,您需要确保您的软件以某种方式在所使用的每个操作系统上运行,并产生完全相同的数值结果。

这可能会更棘手-您确实要进入一个精心设计的科学代码领域,并在功能级别进行许多自动化测试,并确保进行集成测试。 当您处理大量并行运行的浮点计算时,系统之间的舍入差异会变得很重要。

最后,您需要一种方法来划分所有工作并进行交流(最好是通过Internet); 大多数方案都涉及一个“老板节点”,该节点跟踪哪个系统在做什么,并整理结果。

这里也有一些鱼钩–您需要确保您的网络可以有效地发送/接收数据(以及您需要传递的任何消息)而不会造成阻塞。 这可能是优化的挑战,尤其是在速度较慢的网络或以其他方式繁忙的网络上。

使所有这些有价值的东西所需要的优化方法往往高度依赖于算法,这意味着很难开发“通用”和“通用”系统。

我怀疑主要的问题是,完成所有这些操作并将其正确设置将非常昂贵。

我怀疑开发仅在一个操作系统上并行运行的软件然后在云上执行该软件会更具成本效益。

许多软件都以这种方式发生了变化–例如,用于制作动画电影的Pixar的“ Renderman”软件​​已在云上提供:现在,您可以按需使用RenderMan