对称多处理和分布式系统?

时间:2011-10-02 12:24:25

标签: c operating-system cpu multiprocessing distributed-computing

与对称多处理相比,分布式系统是一个完全独立的概念(因为在分布式中,我们每个CPU都有单独的内存/磁盘存储,而在对称中我们有许多CPU使用相同的内存/磁盘存储)?

2 个答案:

答案 0 :(得分:2)

我不会说它们是完全不同的概念,因为您可以在分布式系统中获得共享内存(使用Distributed shared memory),并且在同一台机器上运行的多个进程不共享其地址空间。因此,两种环境都可以存在于两种体系结构中,但需要付出代价。通常,共享内存更容易编程,但更难构建(从硬件的角度来看),分布式系统更难编程,但更容易构建。

因此,不同的概念实际上是共享内存和非共享内存,至少从编程的角度来看。

答案 1 :(得分:0)

虽然DC可能使用SMP,但分布式计算和SMP并不相同。 DC是一种如何将独立工作负载数据并行化到异构和松散耦合的不同系统的方法。

SMP系统是一台具有紧密耦合的CPU和内存的计算机,受益于低延迟内存访问以及在计算发生时在CPU之间共享数据。

分布式计算的示例:
Einstein @ Home是一个试图从巨大的激光干涉仪收集的实验数据中寻找引力波的项目。要压缩的数据是非常独立的,因此将数据分发到几台不同的机器是没有问题的。

  • 存储:不需要共享存储。
  • 共享内存:不需要,因为用于查找所需结果的FFT例程可以处理独立的数据块。
  • 工作量分配:通过异构机器池完成。

对称多处理的示例:
在大型表/矩阵上运行计算需要计算节点(“CPU”/“DC节点”)的某种接近度才能够完成计算。如果计算结果取决于“相邻”节点的结果,那么“分布式计算”范例对您没有多大帮助。

  • 存储:应尽快共享并可访问
  • 共享内存:需要交换中期结果
  • 工作量分配:在环状化合物中进行;程序员必须关心以某种方式设计他的循环,相关的计算几乎同时发生

希望有帮助...... 亚历克斯。