我正在研究b / w并行和分布式系统的差异。我被告知这个部门正在模糊。此外,集群可以被视为并行和分布式系统(取决于上下文 - 无论这意味着什么)。
这怎么可能?群集不应仅仅是分散系统吗?
答案 0 :(得分:2)
并行计算:
有各种并行系统。
多处理器并行系统 处理器可以直接访问共享内存(UMA 模型)。处理器紧密放置,由互连网络连接,进程间通信应通过对共享内存的读写操作和 MPI 提供的消息传递原语来完成。这里通常处理器是相同类型的(也运行相同的操作系统),并且应该在具有共享内存的同一台计算机/设备中。硬件和软件非常紧密结合
多计算机并行系统: 在这里,处理器不能直接访问共享内存,多个处理器的内存可能会或可能不会形成公共地址空间(NUMA)。处理器应紧密放置(没有公共时钟),并通过通过公共地址空间或消息传递进行通信的互连网络连接。
分布式计算:
集群不应该只是分布式系统吗?
通常,一个集群由许多不共享内存但统一联网的分布式/独立系统组成。但是,在一个典型的集群中,为了提高集群的性能,应该有应用的并行性。还应该注意的是,并行计算算法可以使用基于共享内存的系统或分布式系统(使用消息传递)来完成。
另外,应该注意的是,分布式计算也可以使用“以数据库为中心”的架构方法来执行,该方法通过利用共享数据库来避免消息机制(进程间通信)。
答案 1 :(得分:1)
正如您所提到的,这取决于具体情况。有两个主要背景:
内部算法本质上是分布式的。考虑主选举和成员算法作为一个例子(当然,集群有更多的任务;这并不意味着没有并行的)。 另一方面,应用程序经常并行化其工作负载以在群集上运行。群集通常提供api或组件(如调度程序)以启用该功能。另一个例子是hadoop类型的工作负载及其apis。使用并行查询在多个节点上同时执行复杂查询的数据库也使用并行性。