我有一个很大的计算问题。并行计算将其分解并与其他处理器共享,所有处理器模拟计算指令。
集群计算就像一组处理器,它们的作用相同,但一个集群充当一个处理器。
是吗? 有人可以解释一下吗?
我在网上搜索但找不到任何明确的信息。都是一样的事情
计算可以在不同级别上并行化。首先,我们需要比“处理器”和“集群”的定义更深入。
让我们从并行计算开始。并行计算是一种同时执行许多计算或过程的计算类型。
好吧,我们以某种方式采用了我们的算法以并行方式进行计算。但是什么硬件可以让我们实现这一目标呢?并行计算机需要:
完美的并行计算机拥有可供所有计算单元统一访问的内存。但在我们的现实世界中,内存通常是阻碍我们充分利用计算能力的瓶颈。
计算单元之间交换信息有多种模式:
根据我们需要解决的任务,我们在计算单元上使用不同的数字。
有时我们甚至可以使用单核来获得某种并行计算。这称为数据级并行,其示例之一是单指令多数据(简称 SIMD)。大多数现代 CPU 内核可以通过将一条指令应用于 8 个不同的数据来执行 8 个同时操作。
但是当我们需要更多功率时,我们使用多核。在这种规模上,另一种类型的并行性出现了:单程序多数据(SPMD)及其子类型:共享内存并行性。最常见的例子是 Fork Join 模型。主线程创建多个线程来共享一些工作负载(fork),当该线程完成其工作时,控制权返回到主线程(join)。
好的。但如果我们需要更多的计算能力怎么办?每一台计算机的处理单元数量是有限的(单个计算节点)。为了打破这个限制,我们可以使用更多的计算节点。这样一组一起工作的计算机称为集群。在集群中,所有节点并不共享所有内存的单个命名空间。这就是我们从共享内存并行转向分布式内存并行的方式。这样,我们就能以延迟为代价获得更高的吞吐量。因为通信的开销变大了。
我希望您现在更好地理解集群计算只是旨在实现更大规模并行的方法之一。如果您还有任何其他问题或仍有不清楚的地方,请随时留下您的问题/评论,我将尝试扩展此答案或提供一些链接。