【发布时间】:2017-12-20 21:13:20
【问题描述】:
我正在尝试更多地了解并行性,但我注意到那里有很多不同的术语,有些似乎意思相同,而另一些则有显着差异。那么,所有不同类型的并行性是什么,它们之间有何不同,是否有特定的应用程序或目的?
(为了让这一点更加集中,我希望得到一个能够提供的答案清楚所有与并行性相关的术语,包括下面未列出的术语;每种不同类型之间的技术比较会很好,但可能会导致这个问题变得离题 - 再说一次,我真的不知道,因此问题).
注意:
这不是关于并发的问题,并且超出了“简单”问题:“什么是并行性?”,尽管可能需要一个明确的定义。
首先,我注意到了parallelism and threading之间的区别,但是以下术语之间的一些区别仍然令人困惑。
为了澄清我的问题,这里列出了我发现的与并行性相关的术语列表:并行计算、并行处理、多线程、多处理、多核编程、超线程(英特尔)2、同时多线程(SMT)3,开启事件多线程3。 (如果可能,还应感谢这些术语中的每一个的定义或对定义的引用)。
我非常具体的问题:线程级并行、指令级并行和进程级并行之间有什么区别? (以及任何其他 x 级并行性)?
在多核处理器中,是否可以在单核内进行并行处理?这就是超线程吗?这是否需要一个具有例如两个可以并行使用的 ALU 的单核?
最后一个:硬件与软件并行性之间是否存在差异,除了一个发生在硬件中而另一个发生在软件中的明显区别之外?
相关资源:
- Process vs Thread,
- Parallelism on a GPU,
- Hyper-threading,
- Concurrency vs Parallelism,
- Hyper-threading and gaming.
【问题讨论】:
-
通俗地说,都是同一个意思,只是具体的作者对不同的词有不同的含义,不同的作者对同一个词有不同的含义。所有这些都意味着您需要注意上下文。
-
你错过了
SIMD。
标签: multithreading parallel-processing multicore hyperthreading