Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 对称多处理和分布式系统?_C_Operating System_Cpu_Multiprocessing_Distributed Computing - Fatal编程技术网

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

C 对称多处理和分布式系统?,c,operating-system,cpu,multiprocessing,distributed-computing,C,Operating System,Cpu,Multiprocessing,Distributed Computing,与对称多处理相比,分布式系统是一个完全独立的概念吗(因为在分布式系统中,每个CPU有单独的内存/磁盘存储,而在对称系统中,有许多CPU使用相同的内存/磁盘存储)?我不认为它们是完全不同的概念,因为您可以在分布式系统中获得共享内存(使用),并且在同一台计算机上运行的多个进程不共享其地址空间。因此,这两种环境可以同时存在于两种体系结构上,但成本很高。一般来说,共享内存更容易编程但更难构建(从硬件的角度来看),分布式系统更难编程但更容易构建 因此,不同的概念实际上是共享内存和非共享内存,至少从编程的角

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

我不认为它们是完全不同的概念,因为您可以在分布式系统中获得共享内存(使用),并且在同一台计算机上运行的多个进程不共享其地址空间。因此,这两种环境可以同时存在于两种体系结构上,但成本很高。一般来说,共享内存更容易编程但更难构建(从硬件的角度来看),分布式系统更难编程但更容易构建


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

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

SMP系统是一种具有紧密耦合的CPU和内存的机器,它得益于低延迟内存访问,并在计算过程中在CPU之间共享数据

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

  • 存储:不需要共享存储
  • 共享内存:不需要,因为用于查找所需结果的FFT例程在独立数据块上工作
  • 工作负载分配:在异构机器池上完成
对称多处理示例:
在大型表/矩阵上运行计算需要计算节点(“CPU”/“DC节点”)的一定距离才能完成计算。如果计算结果取决于“相邻”节点的结果,那么分布式计算范式对您的帮助不大

  • 存储:应尽可能快地共享和访问
  • 共享内存:需要交换临时结果
  • 工作负载分配:在for循环化合物中进行;程序员必须注意以某种方式设计他的循环,相关的计算几乎同时发生
希望这有助于。。。 亚历克斯