【问题标题】:Symmetric multiprocessing and Distributed systems?对称多处理和分布式系统?
【发布时间】:2011-10-02 12:24:25
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

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

      • 存储:不需要共享存储。
      • 共享内存:不需要,因为用于查找所需结果的 FFT 例程适用于独立数据块。
      • 工作负载分配:在异构机器池上完成。

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

      • 存储:应尽可能快地共享和访问
      • 共享内存:需要交换临时结果
      • 工作负载分布:发生在 for 循环复合中;程序员必须注意以某种方式设计他的循环,使相关的计算几乎同时发生

      希望对您有所帮助... 亚历克斯。

      【讨论】:

        猜你喜欢
        • 2014-11-22
        • 1970-01-01
        • 2010-10-04
        • 1970-01-01
        • 2011-11-20
        • 1970-01-01
        • 1970-01-01
        • 2023-01-05
        • 1970-01-01
        相关资源
        最近更新 更多