处理执行中的并行类型
数据并行
数据并行是指在多个计算核心上同时执行相同任务。
让我们举个例子,对大小为N的数组求和。对于单核系统,一个线程会简单地对元素[0]…[N-1]求和。然而,对于双核系统,在核心0上运行的线程A可以对元素[0]…[N/2-1]求和,而同时在核心1上运行的线程B可以对元素[N/2]…[N-1]求和。因此,这两个线程将在单独的计算核心上并行运行。
任务并行
任务并行是指在多个计算核心上同时执行不同的任务。
再次考虑我们上面的例子,任务并行的例子可能包括两个线程,每个线程对元素数组执行唯一的统计运算。同样,这些线程在单独的计算核心上并行运行,但每个线程都执行一个唯一的操作。
位级并行
位级并行是一种基于增加处理器字长的并行计算形式。在这种类型的并行中,增加字长减少了处理器必须执行的指令数量,以对大小大于字长的变量执行操作。
例如,考虑一个8位处理器必须添加两个16位整数的情况。首先,处理器必须添加每个整数的8个低位,然后添加8个高位,然后需要两条指令才能完成单个操作。一个具有16位的处理器将能够用单条指令完成该操作。
指令级并行
**指令级并行**是指同时执行程序中的多条指令。虽然流水线是ILP的一种形式,但我们必须利用它才能实现指令流中指令的并行执行。
示例
for (i=1; i<=100; i= i+1) y[i] = y[i] + x[i];
这是一个并行循环。循环的每次迭代都可以与任何其他迭代重叠,尽管在每次循环迭代中几乎没有重叠的机会。
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C编程
C++
C#
MongoDB
MySQL
Javascript
PHP