Parallel processing 什么是所谓的;“细粒度并行性”;在这本书的上下文中是什么意思?

Parallel processing 什么是所谓的;“细粒度并行性”;在这本书的上下文中是什么意思?,parallel-processing,operating-system,terminology,Parallel Processing,Operating System,Terminology,我正在阅读操作系统:内部和设计原则。在第10.1节“多处理器调度”中,作者介绍了同步粒度表,如下所示: 精细:单个指令流固有的并行性 中等:单个应用程序中的并行处理或多任务处理 粗糙:多道程序设计环境中并发进程的多处理 非常粗糙:跨网络节点的分布式处理,以形成单一的计算环境 独立:多个不相关的进程 他这样解释细粒度的并行性: 细粒度并行性代表了一个更为复杂的过程 并行性的使用比线程的使用更复杂。虽然很多 已经在高度并行的应用程序上完成了工作,这是迄今为止的一个专门的 各自为政的领域,有许多不

我正在阅读操作系统:内部和设计原则。在第10.1节“多处理器调度”中,作者介绍了同步粒度表,如下所示:

  • 精细:单个指令流固有的并行性
  • 中等:单个应用程序中的并行处理或多任务处理
  • 粗糙:多道程序设计环境中并发进程的多处理
  • 非常粗糙:跨网络节点的分布式处理,以形成单一的计算环境
  • 独立:多个不相关的进程
他这样解释细粒度的并行性:

细粒度并行性代表了一个更为复杂的过程 并行性的使用比线程的使用更复杂。虽然很多 已经在高度并行的应用程序上完成了工作,这是迄今为止的一个专门的 各自为政的领域,有许多不同的方法

我可以理解中等粒度是关于线程和其他粒度,除了所谓的细粒度并行性。我在互联网上搜索的信息也不多。你能帮我澄清一下吗?一些例子会很有帮助


提前谢谢

它引用了所谓的指令级并行性,即可以从同一线程并行执行的指令

例如,如果您有两个说明,例如

a = b*2
c = d+5 
这些指令可以由处理器并行执行,没有任何问题,因为它们之间没有任何依赖关系

另一方面,如果你有这样的指示

a = b*2
c = a+5
在这种情况下,第二条指令依赖于第一条指令,在第一条指令的结果可用之前无法处理。这是指令级并行性的限制因素,因为大多数指令依赖于其他指令

细粒度并行表示对 比线程的使用更具并行性

这是因为为了识别同一线程中的独立指令,您必须能够查看指令管道,这不是一项容易的任务,需要特殊的硬件和编译器优化


另一方面,线程级并行很容易,因为您知道,来自两个不同线程的两条指令不可能相互依赖。

SIMD
是这个概念的另一个词。实现可能是SSE、SSE2、AVX谢谢,mightyWOZ。根据你的回答,我刚刚读了ILP的维基。我可以这样说吗:是编译器或处理器处理ILP,所以它与操作系统的调度模块无关?是的,你是对的。操作系统的调度模块与ILP无关。它只关心哪个进程获得cpu的问题?我建议您阅读有关流水线、超标量和无序执行单元的内容。