Skip to content

关于本工程

Parallel computingDistributed computingConcurrent computing 这三个computing是软件工程师经常碰到的,它们紧密关联又各有不同,正如在Distributed computingParallel and distributed computing 章节所述:

The terms "concurrent computing", "parallel computing", and "distributed computing" have a lot of overlap, and no clear distinction exists between them. The same system may be characterized both as "parallel" and "distributed"; the processors in a typical distributed system run concurrently in parallel. Parallel computing may be seen as a particular tightly coupled form of distributed computing, and distributed computing may be seen as a loosely coupled form of parallel computing.

所以,有必要对它们进行研究。本工程按照维基百科的Parallel computing进行组织,它将Distributed computingConcurrent computing都归入Parallel computing的范轴,本工程对相关理论知识进行梳理。

时代背景、发展趋势 以及 why need parallel computing

关于当前的时代背景、发展趋势,在下面章节中进行了描述:

1、工程hardwareModern-CPU\Tendency-toward-parallel-computing章节

2、Book-Designing-Data-Intensive-Applications

下面是截取自 Book-Designing-Data-Intensive-Applications:

4、CPU clock speeds are barely increasing, but multi-core processors are standard, and networks are getting faster. This means parallelism is only going to increase.

NOTE: CPU clock speed几乎不增加,multi-core processors被广泛采用,网络越来越快,这些都意味着“parallelism”将会增加。

Why need parallel computing ?

重复发挥computation power,克服越来越多的挑战。

Unit of parallel computing

"Unit of parallel computing"即"并行的单位"(参见<文章Unit>),类似于在维基百科Parallel computing所述的Types of parallelism、或者说是:并发的级别。unit是一个更加抽象/概括的概念,能够让我们正在更加高的角度来理解和分析在parallel computing中的各种问题,能够让我们清楚地看到在不同层级的parallel computing中,都会面临的问题,比如无论是multiple process、multiple thread都涉及通信问题。在后面我们有时候也会使用“entity”来表示,后面我们将使用unit/entity的概念来描述在各种parallel computing中的各种问题,如:

  • parallel的entity/unit是什么?
  • 这些entity之间如何进行通信?这在Inter-entity-communication中进行了总结。
  • 这些entity之间如何进行synchroniz?这在Synchronization中进行了总结。
  • 有哪些通用的model?这在Model中进行了总结。
  • 这些entity之间如何达成共识?