在群集计算中,似乎有两个选项:任务重定向和任务拆分。任务重定向似乎很容易,您只需将主调数用于群集中的其他节点以进行处理(例如WebServer群集(我认为))。然而,任务分裂似乎更加复杂。由于我认为您不能在不同的机器上运行同一程序的两个线程,这意味着您必须将工作拆分。

尽管如何将工作分开?我可以看到一些诸如渲染或视频编码之类的内容,只是因为您可以告诉每个节点在视频的另一部分工作,但是当您想做诸如此类的事情时 计算派的5万亿位数字, ,您将如何拆分?甚至在您需要模拟天气或其他资源密集型任务的科学中?

简而言之,您如何将不是真正设计用于分裂的任务?

有帮助吗?

解决方案

并非每个任务都适合并行处理。保理是,但长期不是。我们使用该术语 平行算法 描述旨在并行执行的任务(可能在多台计算机上或使用单个计算机的多个内核)。

其他提示

计算机科学家一直在梦见可以实现并行处理的那一刻,然后出乎意料地发现,将并行处理应用于许多问题并不那么有利,甚至不可能。除了必须以线性方式解决一些问题之外,还有一个事实,即回报率降低,也就是说,简单地划分工作并分发工作然后使工作意义的工作量之后由集群完成的工作实际上变得比其价值更大。

不幸的是,该阈值主要取决于问题,因此很难知道使用簇何时会更快地进行计算,从而导致一些非常复杂的算法。

回到您的原始问题,这实际上取决于您想完成的工作要做什么。尽管应该说,如果我们的程序员知道一种构建程序来分析问题的方法,那么我们都会失业。

许可以下: CC-BY-SA归因
scroll top