什么是并行计算

来源:互联网 发布:八达岭老虎咬人 知乎 编辑:程序博客网 时间:2024/05/21 10:53

 

什么是传统的串行计算?

  • 传统的软件是按照串行计算的编程思想来编写的。
  • 串行计算程序是运行在具有一个核心(或CPU)的单机上。
  • 一个等待解决的问题被分解为一串独立的命令执行流(instructions 命令执行流,也可以是线程)。
  • 命令执行流会一个挨一个的,顺序执行。并且在任一时刻都只有一个命令执行流正在执行中。 换句话说,任何时候只有一个线程在执行。

 

什么是并行计算?

  • 最简单的话来解释并行计算就是同时使用多个计算资源(就是多个CPU)去运行程序来解决一个需要大量计算的问题
  • 并行计算程序运行在一个多核心(或多CPU)的计算机、或者由多台计算机组成的网络上。
  • 需要进行大量计算的问题,需要被分解成多个独立的、能够同时运行的部分。
  • 每个部分将来还将继续分解成一串独立的命令执行流(instructions 命令执行流,也可以是线程)。
  • 不同部分的命令执行流可以同时在不同的CPU上得到执行。 换句话说,在同一时间可以有多个线程在执行。


计算资源包括:

  • 多核处理器中的单个运算核心。
  • 通过网络连接在一起地任意数量的计算机。
  • 以上两种类型的一个组合。


那些计算性问题适合使用并行计算来解决:

  • 可开发的并发性”。在一个计算性问题中,如果该问题能够被分解成多个子问题,并且这些子问题能够在相同的时间内同时安全地执行,则该问题中就存在并发性
  • 获得计算结果的时间将缩短”。当最终的并行程序运行在一个具有多个处理器的系统上时,获得计算结果的时间将缩短。
  • 可解决大型问题

 

 

原创粉丝点击