Skip to content

Latest commit

 

History

History
33 lines (18 loc) · 2.42 KB

探索并行化的几种模式.md

File metadata and controls

33 lines (18 loc) · 2.42 KB

##探索并行化的几种模式

当我们试图定义并行系统的主要模式时,有困惑很正常。常常会有人提到并发系统和并行系统,这两个术语看起来像是讲的同一件事。然而实际上有着轻微的差异。

在并发程序中,我们有这么一个场景,在这个场景中,一个程序分派几个workers,这些workers争着使用CPU来执行任务。在纷争发生的阶段将被CPU调度器所控制,CPU调度器的功能是决定在一个特定的时刻,哪个worker更适合使用资源。在大多数情况下,CPU调度器执行清理过程的任务太快以至于我们会有伪并行的印象。因此,并发编程是来自并行编程的一种抽象。

并发系统允许多个任务争夺同一个CPU。

下图显示了一个并发程序方案:

并行编程可以被定义为一种方法,在那个方法中,程序数据创造workers在多核环境中同时执行指定的任务,在这些任务中它们不需要并发的接触CPU。

并行系统同时的运行任务。

下面的图显示了并行系统的概念:

分布式编程旨在在物理分离的计算机器(节点)之间通过消息交换数据来分享进程

分布式编程变得越来越受欢迎的原因有很多,下面是被探讨的受欢迎的原因:

  • 容错性:由于系统是去中心化的,我们可以分发执行到同一个网络的不同机器,从而执行指定机器的个人维护而不影响整个系统的功能。
  • 横向扩展:通常我们可以在分布式系统中增加处理的性能。我们可以在不需要终止正在执行的应用的情况下连接新的设备。
  • 云计算:随着硬件成本的降低,我们需要这种业务类型的增长,在这种增长中,我们可以获得巨大的机器集群,这些集群对用户来说以一种合作的方式运行并且以一种透明的方式运行程序。

分布式系统在物理隔离的节点上运行任务。

下图显示了一个分布式系统的方案: